2024年度 学院等開講科目 情報理工学院 情報工学系
システムソフトウェア
- 開講元
- 情報工学系
- 担当教員
- 渡部 卓雄
- 授業形態
- 講義 (対面型)
- メディア利用科目
- -
- 曜日・時限
(講義室) - 月7-8 (S4-201(S421)) / 木7-8 (S4-201(S421))
- クラス
- -
- 科目コード
- CSC.T371
- 単位数
- 200
- 開講時期
- 2024年度
- 開講クォーター
- 3Q
- シラバス更新日
- 2025年3月14日
- 使用言語
- 日本語
シラバス
授業の目的(ねらい)、概要
オペレーティングシステムの役割,オペレーティングシステムカーネルの構成と実現方式,およびオペレーティングシステムカーネルにおいて用いられるアルゴリズムを理解する.
到達目標
オペレーティングシステムの中心概念であるカーネルの役割とそこで用いられるアルゴリズムを学ぶ.具体的には,割り込みによるカーネルの実現手法,プロセス管理,同期と排他制御,メモリ管理,ファイルシステム,I/Oシステムなどについて学ぶ,また,Unixを簡素化した教育用オペレーティングシステムxv6(RISC-V版)を教材として,これらの諸機構がどのように実現されるかについて理解する.
キーワード
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システムとその実現方式について理解する |
準備学修(事前学修・復習)等についての指示
学修効果を上げるため,教科書や配布資料等の該当箇所を参照し,「毎授業」授業内容に関する予習と復習(課題含む)をそれぞれ概ね100分を目安に行うこと。
教科書
特になし (資料はT2SCHOLAで配布する)
参考書、講義資料等
Russ Cox, Frans Kaashoek and Robert Morris, "xv6: a simple, Unix-like teaching operating system" (xv6付属ドキュメント)
成績評価の方法及び基準
プログラミング課題(2回): 60%
期末試験: 40%
関連する科目
- CSC.T243 : 手続き型プログラミング基礎
- CSC.T253 : 手続き型プログラミング発展
- CSC.T344 : システムプログラミング
- CSC.T262 : アセンブリ言語
- CSC.T363 : コンピュータアーキテクチャ
履修の条件・注意事項
履修者は関連科目を履修しているか,同等の知識があること.
履修者はUnix系OSの基本的なコマンドライン操作に慣れていることが望ましい.
その他
https://titech-os.github.io