1 / 18

オペレーティングシステム J/K

オペレーティングシステム J/K. 2004 年 10 月 4 日 酒居敬一 ( sakai.keiichi@kochi-tech.ac.jp ) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS2004/. 連絡先. 酒居 居室 : A468 メイル : sakai.keiichi@kochi-tech.ac.jp TA( 福家君 ) メイル : fuk@kikuken.org. 専門科目演習日程. 講義と同じ部屋 A107 で行います。

Download Presentation

オペレーティングシステム J/K

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. オペレーティングシステムJ/K 2004年10月4日 酒居敬一(sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS2004/

  2. 連絡先 • 酒居 • 居室: A468 • メイル: sakai.keiichi@kochi-tech.ac.jp • TA(福家君) • メイル: fuk@kikuken.org 専門科目演習日程 • 講義と同じ部屋A107で行います。 • 演習日10月14日、10月21日、11月1日(中間試験)、11月11日、11月18日 • 教科書を必ず持ってくること。

  3. 予定 • 第1回講義 10月 4日2時限目 • 第2回講義 10月 7日2時限目 •   第1回演習 10月14日2時限目 • 第3回講義 10月18日2時限目 • 第4回講義 10月18日5時限目 •   第2回演習 10月21日2時限目 • 第5回講義 10月25日2時限目 • 第6回講義 10月28日2時限目 • 第7回講義 11月 1日2時限目 •   中間試験 11月 1日5時限目 • 第8回講義 11月 4日2時限目 • 第9回講義 11月 8日2時限目 •   第3回演習 11月11日2時限目 • 第10回講義 11月15日2時限目 • 第11回講義 11月15日5時限目 •   第4回演習 11月18日2時限目 • 第12回講義 11月22日2時限目 • 第13回講義 11月25日2時限目 • 第14回講義 11月29日2時限目 • クオータ末試験 11月29日5時限目※これらは予定なので、変更の可能性があります。

  4. コンピュータのハードウェア • CPU • メモリ • システムデバイス(チップセット、スーパーI/O) • 外部記憶装置(HDD、FDD、USBメモリ) • 通信装置(イーサネット) • 入力装置(キーボード、マウス、タブレット、カメラ) • 表示装置(ビデオカードとディスプレイ)

  5. [Intel, 2003]

  6. ルネサスSH2/7144 • CPU • RAM • ROM • Timer • Serial • A/D Converter [RENESAS, 2003]

  7. OSが無ければ… • ハードウェアをすべて制御しなければならない。 • ファイル操作どころか、キー入力すらままならない。 • 異なるアプリケーションを使えない。 • 共通のインターフェースがないから。 • ハードウェア構成を変えられない。 • プログラムの改造しかないけど、それは困難。 共通の下地を作れば…

  8. OSの位置付け ユーザー アプリケーションソフトウェア 共通のインターフェースを提供 オペレーティングシステム 抽象化 ハードウェア

  9. OSの基本概念 • CPUの抽象化 • プロセスとスレッド • メモリの抽象化 • 仮想記憶 • デバイスの抽象化 • ファイルシステム • ネットワークの抽象化 • ソケット        → 仮想計算機を提供

  10. OSの構成 • カーネル • デバイスドライバ(割込み・入出力・タイマ管理) • 記憶管理 • プロセス管理(生成・消滅・スケジュール) • 同期と通信制御 • ファイルシステム • 管理コマンド • 利用者管理 • ユーザーインターフェース

  11. タスクとジョブ • タスクはコンピュータからみた仕事の単位 • シングルタスクOS • ひとつのタスクしか扱わないOS • マルチタスクOS • 複数のタスクを扱えるようにしたOS • ジョブは人間からみて目的のある一区切りの仕事 • シングルジョブ • シングルタスクOSでもマルチタスクOSでも処理できる • マルチジョブ • マルチタスクOSでないと処理できない

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

  13. OSの構成法 • 情報隠蔽 • モジュール化あるいはカプセル化 • 方針と機構の分離 • スケジューラとディスパッチャ • ページ管理とページング • 階層化

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

  15. モノリシックカーネル • ユーザープログラムからシステムコールによりカーネル内の処理を呼ぶ。 • カーネル内部はモジュール化されている。 • ひとつのプログラムとしてリンクされている。 • 不要なものまで含んでいるため、巨大になる。 • モジュール間は関数呼び出しである。 • オーバーヘッドが少ない。 • デバイスドライバの変更=カーネルの再構成 • 最近は Loadable Kernel Module という機構がある。 • DLLと同じように、動的にオブジェクトファイルをリンクする

  16. マイクロカーネル • カーネルに実装される処理は必要最低限。 • モジュールはシステムサーバーとして実装。 • 各機能は各々プロセスとして実現される。 • モジュールが分離していてシステム設計が容易。 • モジュール間はプロセス間通信である。 • オーバーヘッドが多い。 • デバイスドライバの変更≠カーネルの再構成 • 機能変更や拡張が容易。

  17. タスクとユーザー • マルチタスク・マルチユーザー • 複数の人が同時に並行処理を行うことができる。 • いわゆるUNIX系のOS。 • マルチタスク・シングルユーザー • 利用者という概念がない。並行処理はできる。 • 初期のWindows。組み込み用RTOS。 • シングルタスク・シングルユーザー • 利用者という概念がない。単一処理しかできない。 • PC用ではWindowsより前、DOSなど。

  18. ハードウェアのリセット処理によりプロセッサが働き始める。つまり、リセットベクタで指定されたプログラムを実行するハードウェアのリセット処理によりプロセッサが働き始める。つまり、リセットベクタで指定されたプログラムを実行する 初期化中 稼動状態 電源オン POST I/Oのチェック メモリチェック 初期化 ブートストラップ IPL OS IPLを読み込む コマンドインタプリタ OSを読み込みシステムタスクとして稼動 ユーザ・タスク1 ユーザ・タスク2 OSの初期化終了後、コマンド・インタプリタを起動 ユーザーからのコマンドを処理する ユーザ・タスクn

More Related