図はプロセスの状態と遷移を表している。
a,b,cの状態の適切な組合せはどれか。
〔状態遷移の要因〕
① 実行優先度の高いほかのプロセスにCPU使用権が移された。
② CPU使用権が与えられた。
③ 入出力動作の完了を待つ。
④ 入出力動作が完了した。
正答3
解説
正解は3です。
プロセスの3つの状態と、その間の遷移を図から読み取る問題です。
プロセスは、実行状態、実行可能状態、待ち状態の3つを行き来します。
図では、aからbへ①、bからaへ②、aからcへ③、cからbへ④の矢印があります。
【選択肢別解説】
1:× aを実行可能状態とすると、aからcへの③「入出力動作の完了を待つ」が説明できません。
入出力待ちに入れるのは、実行中のプロセスだけです。
2:× aを実行可能状態、cを実行状態とすると、cからbへの④「入出力動作が完了した」が実行状態から出る遷移になります。
入出力の完了は待ち状態から出る遷移なので矛盾します。
3:○ ①はCPUを奪われる遷移なので、aが実行状態、bが実行可能状態です。
②はbのプロセスにCPUが与えられてaの実行状態に戻ります。
③で実行中のaが入出力待ちのcに移り、④で入出力が完了してcから実行可能状態のbに移ります。
4:× bを待ち状態とすると、aからbへの①「CPU使用権がほかに移った」で待ち状態に入ることになります。
CPUを奪われたプロセスは、待ち状態ではなく実行可能状態になります。
【ポイント】
待ち状態から直接実行状態に移ることはなく、必ず実行可能状態を経由します。
出ていく矢印が2本ある状態は実行状態だけなので、そこに注目すると実行状態をすぐに特定できます。