2024-04-12 のものと同じ。
https://lsnl.jp/~ohsaki/lecture/os/2024/#12-1
- プロセスの状態遷移図を描き、なぜそうなるかを他人に説明できるようになる。
- ミニ CPU の動作を手作業でトレースすることにより、「プロセス」と「スレッド」の違いを理解する。
- プロセスとスレッドの原理から、それぞれの利点・欠点を理解する。
プロセスの状態が running から waiting に遷移するのはどの場合か。
+--------------->
|
+-----------+
+----->| running |-----+
| +-----------+ |
v v
+-----------+ +------------+
----->| waiting |<----------| blocked |
+-----------+ +------------+
1. プロセスが生成された。
2. プロセスが終了した。
3. プロセスが入出力要求を行った。
4. 入出力要求による処理が完了した。
5. より優先度の高いプロセスが waiting 状態となった。
課題 1 におけるプロセスの状態遷移図では、 状態数が 3 であるため、 合計 6 (= 3 x 2) 通りの遷移が考えられる。 状態遷移図に 4 通りの遷移しか示されていないのはなぜかを説明せよ。
以下の資料を読み、 2024-04-19 の課題 3 と同じように、 資料中の E4 (2 スレッド版) および E5 (2 プロセス版) におけるプリエンプティブ・マルチタスキングの動作を、 「ミニ CPU 係」と「オペレーティングシステム係」の 2 人がペアになってシミュレートせよ。
資料: 「ミニ CPU」 によるスレッドとプロセスの理解
https://lsnl.jp/~ohsaki/lecture/os/2024/priv/mini-cpu-process.pdf
課題 3 におけるスレッドとプロセスのトレース結果をもとに、 スレッドの利点・欠点が以下のように説明される理由を説明せよ。
Threads vs processes
https://en.wikipedia.org/wiki/Thread_%28computing%29#Threads_vs_processes
- Lower resource consumption of threads
- Simplified sharing and communication of threads
- Thread crashes a process
5
※ 5 が正解であること、 それ以外が正解でないことを論理的に説明できるようにせよ。
blocked → running: blocked 状態は OS のスケジューリング対象ではないから
waiting → blocked: waiting 状態では OS に入出力を要求できないから
省略
- Lower resource consumption: E4 (2 スレッド版) では 「ノート」(メモリ) を切り替える必要がないから。
- Simplified sharing and communication: E4 (2 スレッド版) では 「ノート」上の値を 2 つのスレッドが共有できるから。
- Thread crashes a process: E4 (2 スレッド版) では一方のスレッドが他方のスレッドが使う「ノート」を破壊できるから。
「レポート課題 2024-04-12」と同じ。
https://lsnl.jp/~ohsaki/lecture/os/2024/#12-7
なし
- 講義の最初に「前回何をしたか」といった簡単な復習があればうれしいです。
- スレッドが他方のスレッドが使う「ノート」を破壊する瞬間が見たい。
- 講義ありがとうございました。グループワークが残り5分くらいの時にタイマーの音がなって私たちに分かればいいなと思いました。
- 楽しかったです
- ファイル大きすぎて貼れませんでした(泣)
[<11. 2. CPU の原理] [>13. 4. プロセス間通信]