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

1. URL
2. 担当教員
3. 講義目的
4. 到達目標
5. 授業方法
6. 参考書
7. 成績評価
8. スケジュール
9. 大崎が担当する科目に共通の連絡事項・アドバイス
10. 1. オペレーティングシステムの概要
11. 2. CPU の原理
12. 3. プロセスとスレッド
13. 4. プロセス間通信
14. 5. スケジューリング (1)
15. 6. スケジューリング (2)

3. プロセスとスレッド

授業の流れ

1. 解説 (40 分)
2. グループワーク (30 分)
3. オペレーティングシステム CTF (10 分)
4. グループワーク (10 分)
5. リフレクションシート記入 (10 分)

チーム分けの方針・態度目標

2025-04-11 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/os/2025/#10-1

内容目標

- プロセスの状態遷移図を描き、なぜそうなるかを他人に説明できるようになる。

- ミニ CPU の動作を手作業でトレースすることにより、「プロセス」と「スレッド」の違いを理解する。

- プロセスとスレッドの原理から、それぞれの利点・欠点を理解する。

課題

課題 1

プロセスの状態が running から waiting に遷移するのはどの場合か。

                        +--------------->
                        |
                  +-----------+
           +----->|  running  |-----+
           |      +-----------+     |
           v                        v
      +-----------+           +------------+
----->|  waiting  |<----------|   blocked  |
      +-----------+           +------------+

1. プロセスが生成された。
2. プロセスが終了した。
3. プロセスが入出力要求を行った。
4. 入出力要求による処理が完了した。
5. より優先度の高いプロセスが waiting 状態となった。

課題 2

課題 1 におけるプロセスの状態遷移図では、 状態数が 3 であるため、 合計 6 (= 3 x 2) 通りの遷移が考えられる。 状態遷移図に 4 通りの遷移しか示されていないのはなぜかを説明せよ。

課題 3

以下の資料を読み、 2025-04-18 の課題 3 と同じように、 資料中の E4 (2 スレッド版) および E5 (2 プロセス版) におけるプリエンプティブ・マルチタスキングの動作を、 「ミニ CPU 係」と「オペレーティングシステム係」の 2 人がペアになってシミュレートせよ。

資料: 「ミニ CPU」 によるスレッドとプロセスの理解
https://lsnl.jp/~ohsaki/lecture/os/2025/priv/mini-cpu-process.pdf

課題 4

課題 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

略解

課題 1

5

※ 5 が正解であること、 それ以外が正解でないことを論理的に説明できるようにせよ。

課題 2

blocked → running: blocked 状態は OS のスケジューリング対象ではないから

waiting → blocked: waiting 状態では OS に入出力を要求できないから

課題 3

省略

課題 4

- Lower resource consumption: E4 (2 スレッド版) では 「ノート」(メモリ) を切り替える必要がないから。

- Simplified sharing and communication: E4 (2 スレッド版) では 「ノート」上の値を 2 つのスレッドが共有できるから。

- Thread crashes a process: E4 (2 スレッド版) では一方のスレッドが他方のスレッドが使う「ノート」を破壊できるから。

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

[授業中に使用] オペレーティングシステム CTF (パスワードが必要です)
https://lsnl.jp/~ohsaki/lecture/os/2025/priv/ctf.html

レポート課題 2022-04-25

「レポート課題 2025-04-11」と同じ。

https://lsnl.jp/~ohsaki/lecture/os/2025/#10-10

質問

- runningになったプロセスがrunning→blocked→waitingに遷移する時は、プロセス内のスレッドが全く実行されないのか、それともスレッドの実行途中でもblockedに遷移されることがあるのでしょうか。

スレッドはプロセスの一部です。プロセスが blocked 状態の時はスレッドも停止し
ます。

山田家 (プロセス) に、長男の山田一郎 (スレッド 1) と次男の山田次郎 (スレッド
2) がいるようなものです。山田家 (プロセス) が活動していない時は、一郎 (スレッ
ド 1) と次郎 (スレッド 2) も活動していません (活動できません)。

要望

- 席移動までの40分間の時間で、これからやる課題を解くにあたってのヒントをもう少し具体的にお願いしたいです。席移動してからお互い分からなさすぎて話し合えない事が多いので。

グループワークの時間を確保したいので、アクティブラーニングで解決してください。
つまり、わからないことがあれば (グループワークの早い段階で) わかっている人を
探して教えてもらってください。

コメント

- CTFの問題と解答をセットで何度もチャレンジできると(そして問題がどんどん増えていくと)ゲーム感覚で学習が進んでいいなと思いました。

- 次の授業も色んな人とお話ししながら学んでいきたいと思います。

- プロセスとスレッドについて、そのどちらの方式を用いるかは自動で決めることができるのかあるいは何によって決まるのかが気になりました。

  将来的にそういうプログラミング言語ができるかもしれませんが、現状はプロセスを
  使うかスレッドを使うかはプログラマが決めます (プログラムをどう設計するかで決
  まります)。


[<11. 2. CPU の原理] [>13. 4. プロセス間通信]