ソフトウェア
マルチプロセス環境でのプロセス状態遷移に関して、次のシナリオを考える。プロセスAは実行中(Running)にI/O要求を発行した。I/O完了後にスケジューラがプロセスBを実行中のまま維持した。このときプロセスAの状態遷移として正しいものはどれか。
ア.実行中 → 待機(Waiting)→ 実行可能(Ready)正解
イ.実行中 → 実行可能(Ready)→ 待機(Waiting)
ウ.実行中 → 停止(Terminated)→ 実行可能(Ready)
エ.実行中 → 実行可能(Ready)→ 実行中(Running)
解説
プロセスは「走る→待つ→準備できた→また走る」のサイクルを繰り返す。I/O待ちは「バスを待っている状態」。バスが来たら(I/O完了)乗れる準備ができる(Ready)!
なぜ ア が正解か
Step1: プロセスAはI/O要求を発行→CPUを手放し「待機(Waiting/Blocked)」状態へ。Step2: I/Oデバイスが処理完了→割り込みが発生→OSがプロセスAを「実行可能(Ready)」キューへ移動。Step3: スケジューラが現在プロセスBを実行中なのでプロセスAはReadyキューで待機。遷移: 実行中→待機→実行可能。
出典: AI生成問題(学習用)