01-introduction.ppt

Similar documents
10-vm1.ppt

04-process_thread_2.ppt

DVIOUT

プログラミング基礎

05-scheduling.ppt

PowerPoint プレゼンテーション

slide5.pptx

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

仮想化基礎演習テキスト Ⅰ 第 1.0 版 演習で学ぶ仮想化基礎 ( クライアント仮想化編 ) 九州ラーニングネット株式会社 特定非営利活動法人パソコン整備士協会

Cプログラミング1(再) 第2回

OS

2006年10月5日(木)実施

PowerPoint プレゼンテーション

02: 変数と標準入出力

第1回 プログラミング演習3 センサーアプリケーション

Prog1_6th

memo

PowerPoint Presentation

Prog1_12th

PowerPoint プレゼンテーション

演算増幅器

Microsoft PowerPoint - OS07.pptx

プログラミングI第10回

計算機アーキテクチャ

Operating System 仮想記憶

02: 変数と標準入出力

Microsoft Word - Cプログラミング演習(12)

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

memo

計算機概論

情報システム運用・管理規程

Microsoft Word - no13.docx

情報処理演習 B8クラス

02: 変数と標準入出力

2-3- 基 Linux のシステム管理に関する知識 1 独立行政法人情報処理推進機構

2 データをコピーするフォーマットするダウンしたら資料困ったときにはお使いになる前にもくじお使いになる前に...3 フォーマットする...4 macos ~ OS X の場合 5 OS X 以前の場合 7 データをコピーする...9

OS

ファイル入出力

Microsoft PowerPoint - kougi6.ppt

PowerPoint プレゼンテーション - 物理学情報処理演習

PowerPoint Presentation

プログラミング及び演習 第1回 講義概容・実行制御

Microsoft PowerPoint - 計算機言語 第7回.ppt

program7app.ppt

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

演算増幅器

1

DVIOUT

Taro-ポインタ変数Ⅰ(公開版).j

02: 変数と標準入出力

Taro-リストⅠ(公開版).jtd

Silk Central Connect 15.5 リリースノート

ファイル入出力

Microsoft PowerPoint - pc11.ppt

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft PowerPoint - 第3回目.ppt [互換モード]

KSforWindowsServerのご紹介

Microsoft Word - PCI-3346A_BSP_Release_Notes.doc

GettingStarted.fm

V8.1新規機能紹介記事

PowerPoint Presentation

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1

file"a" file"b" fp = fopen("a", "r"); while(fgets(line, BUFSIZ, fp)) {... fclose(fp); fp = fopen("b", "r"); while(fgets(line, BUFSIZ, fp)) {... fclose

FlashAir 設定ソフトウエア株式会社東芝セミコンダクター & ストレージ社 Copyright 2012 TOSHIBA CORPORATION, All Rights Reserved. 対応 OS: Windows XP SP3 / Vista SP2 / 7 (32bit/64bit)

Dropbox にファイルを追加する Dropbox フォルダの場所を決め 使い始める準備が整いま した さあ ファイルを Dropbox フォルダに入れましょう ステップ 1 ファイルを Dropbox へドラッグアンドドロップします ステップ 2 青色のアイコンが表示され ファイルが Dropb

使用する前に

目次 初めに必ずお読みください ソフトウェアのインストール ソフトウェアの選択 ソフトウェアのインストール レシーバー用ドライバのインストール WindowsXP のインストール方法 Win

Windows Server 2003 Service Pack 適用手順書

Microsoft PowerPoint - kougi9.ppt

Microsoft PowerPoint - 04_01_text_UML_03-Sequence-Com.ppt

Gfarm/MPI-IOの 概要と使い方

PowerPoint プレゼンテーション - 物理学情報処理演習

OS

計算機システム概論

プログラミング基礎

目次 1. はじめに... 1 動作環境... 1 その他 他の人が利用する ID を発行したい... 2 ユーザー ID 作成を作成しましょう パソコンのデータを自動でアップロードしたい... 4 PC 自動保管機能を使用してみましょう 不特定多数の

PowerPoint プレゼンテーション

<4D F736F F D20836F E C C6F6E C EE682E888B582A2837D836A B2E646F63>

slide6.pptx

joho07-1.ppt

Windows Server 2003 Service Pack 適用手順書

Microsoft Word - no202.docx

<4D F736F F F696E74202D2091E63389F15F8FEE95F1835A834C A CC B5A8F FD E835A835890A78CE C CC835A834C A A2E >

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

PowerPoint プレゼンテーション

Taro-ファイル処理(公開版).jtd

Prog1_10th

Proselfの利用方法

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

無線LAN JRL-710/720シリーズ ファームウェアバージョンアップマニュアル 第2.1版

プログラミング演習3 - Cプログラミング -

スライド 1

Microsoft Word 基_シラバス.doc

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

ポインタ変数

B演習(言語処理系演習)第一回

a.net LePo 利用の手引き

AquesTalk for WinCE プログラミングガイド

Transcription:

オペレーティングシステム ~ イントロダクション ~ 山田浩史 hiroshiy @ cc.tuat.ac.jp 2015/04/10 オペレーティングシステム 担当 : 山田浩史 ( やまだひろし ) mail: hiroshiy @ cc.tuat.ac.jp 質問等ありましたら気軽にメールをしてください 専門分野 オペレーティングシステムや仮想マシンモニタといった システムソフトウェア と呼ばれる分野 教科書 河野健二著 : オペレーティングシステムの仕組み 講義用 Web ページ 授業の資料をアップロード, 講義に関する連絡等に使用します http://www.tuat.ac.jp/~hiroshiy/os 1

成績 期末試験 持ち込み不可 勉強せずに試験に挑む学生が出てくるため 持ち込み可にすると試験を難しくしないといけない 演習のレポート 3 回程度を予定 標準課題はやりやすい形で出題する ボーナス課題はやりがいのあるものを出題する 出席は成績に加味しません 講義スケジュール ( 予定 ) 4/10 イントロダクション 4/17 I/O デバイスと割り込み 4/24: 休講 5/1 プロセスとスレッド (1) 5/8 プロセスとスレッド (2) 5/15 演習 (1) 5/22 スケジューリング 5/29 相互排除と同期 (1) 6/5 相互排除と同期 (2) 6/12 演習 (2) 6/19 仮想記憶 (1) 6/26 仮想記憶 (1) 7/3 演習 (3) 7/10 ファイルシステム 7/17 試験対策 2

本講義の意義 オペレーティングシステム (OS) の基本概念 動作原理を学ぶ OS がどのように動作しているかの理解 CS 分野を専門にするならば必須の知識 高度なプログラミングをするためには OS の知識は必須 コンピュータシステムそのものの理解 OS はハードウェアとユーザプログラムとを結びつける要の役割 OS を支える諸概念 原理の理解 OS 研究の成果は他分野でも応用 利用されている OS って何? コンピュータを動作させるための最も基本的なプログラム ハードウェア (CPU メモリ ディスク等 ) 上で動作し制御する ユーザやアプリケーションの要求に適した実行環境を提供する ハードウェアの進化やユーザ / アプリケーションの要求に応じて OS は進化 実は明確な定義は存在しない 例 : Windows 10,Mac OS X,Linux,iOS, ndroid OS などなど PCs や Smart Phones では当たり前のように動作 HDD レコーダやデジタル TV の内部でも動作している 今の OS はこれまでの研究成果の集大成 3

OS の目的 裸のコンピュータを抽象化 (abstraction) し より使いやすく安全なコンピュータとして見せること OS はハードウェアを制御し アプリケーションの効率的 & 安全な動作や容易な開発を支援する OS がないと ユーザはハードウェアを直接制御するプログラムを記述する必要がある ( 超大変 ) 他のプログラムの実行を容易に阻害できる Word Thunder Chrome bird アプリケーション オペレーティングシステム Database ハードウェア (CPU, メモリ, ディスク, etc.) 抽象化の例 ( 自動車 ) マニュアルの車 : クラッチとギアの役割を知らないといけない 状況に応じてクラッチとギアを操作しないといけない クラッチやギアという詳細が運転手に見えている 運転が大変 クラッチとギアを 抽象化 オートマの車 : 運転手からはクラッチとギアの存在が隠蔽されている クラッチ ギアを意識しなくてよい 運転が楽 ( アクセルとブレーキの操作だけでよい ) OS もハードウェアを抽象化することでアプリケーション / ユーザに使いやすいコンピュータを提供する 4

CPU の抽象化 OS がないと ひとつの CPU はひとつのプログラムしか実行できない OS があると ひとつの CPU で複数のプログラムが同時に実行できる ひとつひとつのプログラムが専用の CPU を持っているように見える Keywords プロセス, スレッド, スケジューリング, 相互排除と同期 CPU CPU の抽象化を堪能する cpu.c ( 引数の文字を出力 ) 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <sys/time.h> 4 #include <assert.h> 5 6 int main(int argc, char *argv[]) 7 { 8 if (argc!= 2) { 9 fprintf(stderr, "usage: cpu <string> n"); 10 exit(1); 12 } 13 char *str = argv[1]; 14 while (1) { 15 /* 文字を出力 */ 16 printf("%s n", str); 17 } 18 return 0; 19 } cpu.c を動作させて Control-C で止める prompt >./cpu ^C Control+C を押した prompt > きちんと Control+C が処理された 独占して cpu.c が CPU を利用していない cpu.c を複数動作させると prompt >./cpu & ; >./cpu B &; >./cpu C & ; > /cpu D & [1] 7353 [2] 7354 [3] 7355 [4] 7356 D D C C B 1 つの cpu.c が CPU を独占してない OS が安全性 効率性を考えて CPU を抽象化 5

メモリの抽象化 OS がないと アドレスのついた記憶場所として見える コンピュータに搭載している分量しか使えない OS があると 実行中のプログラムそれぞれに専用の記憶場所 コンピュータに搭載している分量を超えてメモリが使える Keywords 仮想記憶 0 256TB Word 0 256TB Chrome 0 256TB Thunderbird 0 番地 16 GB ( メモリ量 ) メモリ OS による抽象化 メモリの抽象化を堪能する mem.c (malloc() した領域のアドレスを出力 ) 1 #include <unistd.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 5 int main(int argc, char *argv[]) 6 { 7 int *p = malloc(sizeof(int)); 8 assert(p!= NULL); 9 printf("(%d) p: %08x n, getpid(), (unsigned)p); 10 *p = 0; 11 while (1) { 12 sleep(1) 13 *p = *p + 1; 14 printf("(%d) p: %d n", getpid(), *p); 15 } 16 return 0; 17 } mem.c を 2 つ動作させると prompt >./mem & ;./mem &; [1] 24113 [2] 24114 (24113) memory address of p: 00200000 (24114) memory address of p: 00200000 (24113) p: 1 (24114) p: 1 (24114) p: 2 (24113) p: 2 (24113) p: 3 (24114) p: 3 (24113) p: 4 (24114) p: 4 同じアドレスのメモリを更新しているがプログラム間で独立している OS が安全性 効率性を考えてメモリを抽象化 6

ディスクの抽象化 OS がないと 固定長の記憶領域が並んだもの OS があると ファイル, ディレクトリ ( フォルダ ) など Keywords ファイルシステム OS が提供する 保護 機能 OS の提供する重要な機能のひとつ 1 つのプログラムが CPU を独占使用できない 1 つのプログラムが他の走行中のプログラムのメモリを自由に読み書きすることはできない 権利のない人のプログラムが自由にコンピュータの電源を切ることはできない 権利のない人がコンピュータを使うことはできない 権利のない人が他人のファイルを読み書きすることはできないなどなど 操作ミスまたは悪意があっても, できないようにする 7

Tips (OS を理解するには ) ハードウェアとソフトウェアとの機能とをきちんと整頓する OS の動作はハードウェアの機能と密接に絡んでいる ハードウェアの機能を使わないと実現が不可能な OS の機能がある 割り込み MMU 実行モード等 説明時に明確に言います 学習時にはこの点に気をつけること OS の機能が必要な理由をきちんと整頓する OS がサポートする機能の中には複雑なものがある 仮想アドレス変換 説明時に理由を明確に言います 学習時にはこの点に気をつけること まとめ OS を学ぶ意義 OS がどのように動作しているかの理解 コンピュータシステムそのものの理解 OS を支える諸概念 原理の理解 OS の目的 裸のコンピュータを抽象化 (abstraction) し より使いやすいコンピュータとして見せること OS の機能と抽象化 CPU プロセス, スレッド, スケジューリング メモリ 仮想記憶 ディスク ファイルシステム 保護機能 8