オペレーティングシステムの役割,オペレーティングシステムカーネルの構成と実現方式,およびオペレーティングシステムカーネルにおいて用いられるアルゴリズムを理解する.
オペレーティングシステムの中心概念であるカーネルの役割とそこで用いられるアルゴリズムを学ぶ.具体的には,割り込みによるカーネルの実現手法,プロセス管理,同期と排他制御,メモリ管理,ファイルシステム,I/Oシステムなどについて学ぶ,また,Unixを簡素化した教育用オペレーティングシステムxv6を教材として,これらの諸機構がどのように実現されるかについて理解する.
OSカーネル, システムコール, プロセス, スケジューリング, 同期, 相互排除アルゴリズム, メモリ管理, 仮想記憶, ファイルシステム, 保護機構, セキュリティ機構
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | 展開力(実践力又は解決力) |
座学およびプログラミング演習
授業計画 | 課題 | |
---|---|---|
第1回 | オペレーティングシステムの役割と機能 | オペレーティングシステムの役割と機能 |
第2回 | Unixオペレーティングシステムの概要とxv6 | Unixオペレーティングシステムの概要およびxv6の操作方法について理解する |
第3回 | 割り込みとシステムコール | 割り込みとシステムコールについて理解する |
第4回 | プロセスとスレッド(1): 基本概念,マルチプロセス | プロセスとスレッドの基本概念およびマルチプロセス方式について理解する |
第5回 | プロセスとスレッド(2): プロセスのスケジューリング | プロセスのスケジューリングアルゴリズムおよびそれらの実現方式について理解する |
第6回 | プロセスとスレッド(3): 同期と排他制御アルゴリズム | 同期に関する諸概念と排他制御アルゴリズムについて理解する |
第7回 | プロセスとスレッド(4): 同期と排他制御機構の実現方式 | 同期と排他制御機構の実現方式を理解する |
第8回 | メモリ管理(1):メモリ管理の目的と基本概念 | メモリ管理の目的と基本概念を理解する |
第9回 | メモリ管理(2): 仮想記憶システムの概要とアルゴリズム | 仮想記憶システムの概要と関連するアルゴリズムを理解する |
第10回 | メモリ管理(3): 仮想記憶システムの実現方式 | 仮想記憶システムの実現方式について理解する |
第11回 | ファイルシステム(1): ファイルシステムの目的と基本概念 | ファイルシステムの目的と基本概念について理解する |
第12回 | ファイルシステム(2): ファイル管理アルゴリズム | ファイル管理アルゴリズムについて理解する |
第13回 | ファイルシステム(3): ファイルシステムの実現方式 | ファイルシステムの実現方式について理解する |
第14回 | I/Oシステムとその実現方式 | I/Oシステムとその実現方式について理解する |
第15回 | 保護機構とセキュリティ | 保護機構とセキュリティについて理解する |
特になし (資料はOCW-iで配布する)
"Xv6: a simple, Unix-like teaching operating system", Russ Cox, Frans Kaashoek and Robert Morris, 2017. (xv6付属ドキュメント)
プログラミング課題(3回): 60%
期末試験: 40%
履修者は関連科目を履修しているか,同等の知識があること.
履修者はUnix系OSの基本的なコマンドライン操作に慣れていることが望ましい.