OS の中核機能であるプロセス・スレッド・状態遷移を理解しましょう。AP科目Aで 1〜2問、科目B問4 (アーキテクチャ) でも前提知識として必要です。
OS の役割は『ハードウェアの抽象化』『リソース管理』『プロセス間調整』など。
プロセス は実行中のプログラム、スレッド はその内部の実行単位です。
プロセスとスレッドって、何が違うの?
プロセスはメモリ空間を持つ独立した実行体で、スレッドは同一プロセス内のメモリを共有する軽量な実行体なのよ。
Web サーバが複数リクエストを同時に処理するときは、プロセス分離 (安全) にするか、スレッド (軽量) にするかを選ぶのね。
プロセスって、どんな状態があるんですかぁ?
状態遷移は、実行 (Running) ↔ 実行可能 (Ready) ↔ 待機 (Wait/Block) ですね。
CPU 使用権を待つのが Ready、I/O や同期を待つのが Wait。
状態遷移図は AP科目Aで頻出です。
Linux なら ps aux でプロセス一覧、top で CPU/メモリ使用率を見るのが基本ね。
実機を触れる環境があれば、確認しておきましょう。
確認クイズ
プロセスの状態遷移で、I/O 完了を待つために実行中のプロセスが移る状態として最も適切なものはどれか。
- 実行可能 (Ready)
- 実行 (Running)
- 待機 (Wait/Block)
- 終了 (Terminated)
こたえを見る
正解: 3. 待機 (Wait/Block)
実行中のプロセスが I/O 完了を待つ場合、CPU を解放して『待機 (Wait/Block)』状態に遷移します。I/O が完了すると『実行可能 (Ready)』状態に戻り、スケジューラの選択待ちとなります。