プロセスを、実行状態、実行可能状態、待ち状態、休止状態の四つの状態で管理するプリエンプティブなマルチタスク上で、A,B,Cの三つのプロセスが動作している。各プロセスの現在の状態は、Aが待ち状態、Bが実行状態、Cが実行可能状態である。プロセスAの待ちを解消する事象が発生すると、それぞれのプロセスの状態はどのようになるか。ここで、プロセスAの優先度が最も高く、Cが最も低いものとし、CPUは1個とする。
解答・解説を見る
解答:エ
マルチタスク管理機能においてタスク状態には、「待ち状態(Wait)」,「実行可能状態(Ready)」,「実行状態(Run)」がある。
- 待ち状態
- 先行タスクの入出力動作の完了を待っている状態
- 実行可能状態
- 実行準備が整っているものの,ほかの優先度の高いタスクが実行状態にあるため実行されていない状態
- 実行状態
- CPUの使用権が割り当てられ実行されている状態
Aが待ち状態、Bが実行状態、Cが実行可能状態である。プロセスAの待ちを解消する事象が発生すると、
- プロセスAは、待ち状態が解消されたので実行可能状態になる。このときプロセスBは実行状態にあるが、プロセスAよりも優先度が低いのでCPUの使用権がプロセスAに移り実行状態になる。
- プロセスBは、実行状態にあるが、プロセスAよりも優先度が低いのでCPUの使用権がプロセスAに移り、実行可能状態になる。
- プロセスCは、実行可能状態にあるが、プロセスA,プロセスBに比べて優先度が低いので状態は遷移せず実行可能状態のままとなる。