17
オオオオオオオオオオオオ オオオオオオオオオオオオ (OS (OS オオオオオオ オオオオオオ ) ) 2008 2008 10 10 2 2 オオオオオオ( ([email protected] ) ) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2007/ http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2007/

オペレーティングシステム (OS の機能と構造 )

  • 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

Page 1: オペレーティングシステム (OS の機能と構造 )

オペレーティングシステムオペレーティングシステム(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/

Page 2: オペレーティングシステム (OS の機能と構造 )

連絡先連絡先酒居

居室 : A468メイル : [email protected]

専門科目演習日程専門科目演習日程•部屋A 107・A-WS(不定期なので直前の講義で連絡 )

•演習候補日通常の月木2時限目の他に月木 4 時限目

•教科書を必ず持ってくること。

Page 3: オペレーティングシステム (OS の機能と構造 )

コンピュータのハードウェアコンピュータのハードウェア

• CPU•メモリ•システムデバイス(チップセット、スーパー I/O)•外部記憶装置(HDD、 FDD、USBメモリ)•通信装置(イーサネット)•入力装置(キーボード、マウス、タブレット、カメラ)

•表示装置(ビデオカードとディスプレイ)

Page 4: オペレーティングシステム (OS の機能と構造 )

[Intel, 2005]

Page 5: オペレーティングシステム (OS の機能と構造 )

ルネサスH8/3292

CPURAMMROMTimerSerialADC

Page 6: オペレーティングシステム (OS の機能と構造 )

OSOSが無ければが無ければ……•ハードウェアをすべて制御しなければならない。

–ファイル操作どころか、キー入力すらままならない。•異なるアプリケーションを使えない。

– 共通のインターフェースがないから。•ハードウェア構成を変えられない。

–プログラムの改造しかないけど、それは困難。

共通の下地を作れば共通の下地を作れば……

制御プログラムとしての OSのはじまり

Page 7: オペレーティングシステム (OS の機能と構造 )

OSOSの位置付けの位置付け

アプリケーションソフトウェア

オペレーティングシステム

ハードウェア

ユーザー

共通のインターフェースを提供

抽象化

Page 8: オペレーティングシステム (OS の機能と構造 )

OSOSの基本概念の基本概念 (2(2ページページ ))• CPUの抽象化

–プロセスとスレッド•メモリの抽象化

– 仮想記憶•デバイスの抽象化

–ファイルシステム•ネットワークの抽象化

–ソケット

       → 仮想計算機を提供

Page 9: オペレーティングシステム (OS の機能と構造 )

OSOSの構成の構成 (13(13ページページ ))•カーネル

–デバイスドライバ ( 割込み・入出力・タイマ管理 )

– 記憶管理–プロセス管理 ( 生成・消滅・スケジュール )– 同期と通信制御–ファイルシステム

•管理コマンド– 利用者管理

•ユーザーインターフェース

Page 10: オペレーティングシステム (OS の機能と構造 )

タスクとジョブタスクとジョブ•タスクはコンピュータからみた仕事の単位

–シングルタスクOS•ひとつのタスクしか扱わないOS

–マルチタスクOS•複数のタスクを扱えるようにしたOS

•ジョブは人間からみて目的のある一区切りの仕事–シングルジョブ

•シングルタスクOSでもマルチタスクOSでも処理できる–マルチジョブ

•マルチタスクOSでないと処理できない

Page 11: オペレーティングシステム (OS の機能と構造 )

プロセスはプロセッサを抽象化• プロセスどおしは互いに影響を及ぼさないほうがよい• デバイスはカーネルの管理下に置きたい

Page 12: オペレーティングシステム (OS の機能と構造 )

OSOSの構成法の構成法 (18(18ページページ ))1. 情報隠蔽

モジュール化あるいはカプセル化

2. 方針と機構の分離 スケジューラとディスパッチャ ページ管理とページング

3. 階層化

Page 13: オペレーティングシステム (OS の機能と構造 )

情報隠蔽の例情報隠蔽の例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);

};

Page 14: オペレーティングシステム (OS の機能と構造 )

モノリシックカーネルモノリシックカーネル (20(20ページページ ))•ユーザープログラムからシステムコールによりカーネル内の処理を呼ぶ。

•カーネル内部はモジュール化されている。•ひとつのプログラムとしてリンクされている。

– 不要なものまで含んでいるため、巨大になる。–モジュール間は関数呼び出しである。

•オーバーヘッドが少ない。–デバイスドライバの変更≒カーネルの再構成

• 最近は Loadable Kernel Module という機構がある。• DLLと同じように、動的にオブジェクトファイルをリンクする

Page 15: オペレーティングシステム (OS の機能と構造 )

マイクロカーネルマイクロカーネル (21(21ページページ ))•カーネルに実装される処理は必要最低限。•モジュールはシステムサーバーとして実装。

– 各機能は各々プロセスとして実現される。–モジュールが分離していてシステム設計が容易。–モジュール間はプロセス間通信である。

•オーバーヘッドが多い。

–デバイスドライバの変更≠カーネルの再構成•機能変更や拡張が容易。

Page 16: オペレーティングシステム (OS の機能と構造 )

タスクとユーザータスクとユーザーマルチタスク・マルチユーザー

複数の人が同時に並行処理を行うことができる。いわゆる UNIX 系の OS。

マルチタスク・シングルユーザー利用者という概念がない。並行処理はできる。初期のWindows。組み込み用 RTOS。

シングルタスク・シングルユーザー利用者という概念がない。単一処理しかできない。PC用ではWindowsより前、 DOSなど。

Page 17: オペレーティングシステム (OS の機能と構造 )

電源オン POST

ブートストラップ

IPL

OS

コマンドインタプリタ

ユーザ・タスク 2

ユーザ・タスク 1

ユーザ・タスクn

ハードウェアのリセット処理によりプロセッサが働き始める。つまり、リセットベクタで指定されたプログ

ラムを実行する

I/Oのチェック

メモリチェック

初期化

IPLを読み込む

OSを読み込みシステムタスクとして稼

OSの初期化終了後、コマンド・インタプリタを

起動

ユーザーからのコマンドを処理する

初期化中 稼動状態