Upload
feryal
View
69
Download
1
Embed Size (px)
DESCRIPTION
オペレーティングシステム (OS の機能と構造 ). 2008 年 10 月 2 日 酒居敬一 ( [email protected] ) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2007/. 連絡先. 酒居 居室 : A468 メイル : [email protected]. 専門科目演習日程. 部屋 A 107・A-WS(不定期なので直前の講義で連絡 ) 演習候補日 通常の月木2時限目の他に月木 4 時限目 教科書を必ず持ってくること。. - PowerPoint PPT Presentation
Citation preview
オペレーティングシステムオペレーティングシステム(OS(OSの機能と構造の機能と構造 ))
20082008年年 1010月月 22 日日酒居敬一酒居敬一 (([email protected]))
http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2007/http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2007/
連絡先連絡先酒居
居室 : A468メイル : [email protected]
専門科目演習日程専門科目演習日程•部屋A 107・A-WS(不定期なので直前の講義で連絡 )
•演習候補日通常の月木2時限目の他に月木 4 時限目
•教科書を必ず持ってくること。
コンピュータのハードウェアコンピュータのハードウェア
• CPU•メモリ•システムデバイス(チップセット、スーパー I/O)•外部記憶装置(HDD、 FDD、USBメモリ)•通信装置(イーサネット)•入力装置(キーボード、マウス、タブレット、カメラ)
•表示装置(ビデオカードとディスプレイ)
[Intel, 2005]
ルネサスH8/3292
CPURAMMROMTimerSerialADC
OSOSが無ければが無ければ……•ハードウェアをすべて制御しなければならない。
–ファイル操作どころか、キー入力すらままならない。•異なるアプリケーションを使えない。
– 共通のインターフェースがないから。•ハードウェア構成を変えられない。
–プログラムの改造しかないけど、それは困難。
共通の下地を作れば共通の下地を作れば……
制御プログラムとしての OSのはじまり
OSOSの位置付けの位置付け
アプリケーションソフトウェア
オペレーティングシステム
ハードウェア
ユーザー
共通のインターフェースを提供
抽象化
OSOSの基本概念の基本概念 (2(2ページページ ))• CPUの抽象化
–プロセスとスレッド•メモリの抽象化
– 仮想記憶•デバイスの抽象化
–ファイルシステム•ネットワークの抽象化
–ソケット
→ 仮想計算機を提供
OSOSの構成の構成 (13(13ページページ ))•カーネル
–デバイスドライバ ( 割込み・入出力・タイマ管理 )
– 記憶管理–プロセス管理 ( 生成・消滅・スケジュール )– 同期と通信制御–ファイルシステム
•管理コマンド– 利用者管理
•ユーザーインターフェース
タスクとジョブタスクとジョブ•タスクはコンピュータからみた仕事の単位
–シングルタスクOS•ひとつのタスクしか扱わないOS
–マルチタスクOS•複数のタスクを扱えるようにしたOS
•ジョブは人間からみて目的のある一区切りの仕事–シングルジョブ
•シングルタスクOSでもマルチタスクOSでも処理できる–マルチジョブ
•マルチタスクOSでないと処理できない
プロセスはプロセッサを抽象化• プロセスどおしは互いに影響を及ぼさないほうがよい• デバイスはカーネルの管理下に置きたい
OSOSの構成法の構成法 (18(18ページページ ))1. 情報隠蔽
モジュール化あるいはカプセル化
2. 方針と機構の分離 スケジューラとディスパッチャ ページ管理とページング
3. 階層化
情報隠蔽の例情報隠蔽の例struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char *, size_t, loff_t *); ssize_t (*write) (struct file *, const char *, size_t, loff_t *); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, struct poll_table_struct *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); int (*release) (struct inode *, struct file *); int (*fsync) (struct file *, struct dentry *, int datasync); int (*fasync) (int, struct file *, int); int (*lock) (struct file *, int, struct file_lock *); ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int);
unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long,unsigned long);
};
モノリシックカーネルモノリシックカーネル (20(20ページページ ))•ユーザープログラムからシステムコールによりカーネル内の処理を呼ぶ。
•カーネル内部はモジュール化されている。•ひとつのプログラムとしてリンクされている。
– 不要なものまで含んでいるため、巨大になる。–モジュール間は関数呼び出しである。
•オーバーヘッドが少ない。–デバイスドライバの変更≒カーネルの再構成
• 最近は Loadable Kernel Module という機構がある。• DLLと同じように、動的にオブジェクトファイルをリンクする
マイクロカーネルマイクロカーネル (21(21ページページ ))•カーネルに実装される処理は必要最低限。•モジュールはシステムサーバーとして実装。
– 各機能は各々プロセスとして実現される。–モジュールが分離していてシステム設計が容易。–モジュール間はプロセス間通信である。
•オーバーヘッドが多い。
–デバイスドライバの変更≠カーネルの再構成•機能変更や拡張が容易。
タスクとユーザータスクとユーザーマルチタスク・マルチユーザー
複数の人が同時に並行処理を行うことができる。いわゆる UNIX 系の OS。
マルチタスク・シングルユーザー利用者という概念がない。並行処理はできる。初期のWindows。組み込み用 RTOS。
シングルタスク・シングルユーザー利用者という概念がない。単一処理しかできない。PC用ではWindowsより前、 DOSなど。
電源オン POST
ブートストラップ
IPL
OS
コマンドインタプリタ
ユーザ・タスク 2
ユーザ・タスク 1
ユーザ・タスクn
ハードウェアのリセット処理によりプロセッサが働き始める。つまり、リセットベクタで指定されたプログ
ラムを実行する
I/Oのチェック
メモリチェック
初期化
IPLを読み込む
OSを読み込みシステムタスクとして稼
動
OSの初期化終了後、コマンド・インタプリタを
起動
ユーザーからのコマンドを処理する
初期化中 稼動状態