プロセスを、実行状態、実行可能状態、待ち状態、休止状態の四つの状態で管理するプリエンプティブなマルチタスクのOS上で、A、B、Cの三つのプロセスが動作している。
各プロセスの現在の状態は、Aが待ち状態、Bが実行状態、Cが実行可能状態である。
プロセスAの待ちを解消する事象が発生すると、それぞれのプロセスの状態はどのようになるか。
ここで、プロセスAの優先度が最も高く、Cが最も低いものとし、CPUは1個とする。
|
A |
B |
C |
ア |
実行可能状態 |
実行状態 |
待ち状態 |
イ |
実行可能状態 |
待ち状態 |
実行可能状態 |
ウ |
実行状態 |
実行可能状態 |
休止状態 |
エ |
実行状態 |
実行可能状態 |
実行可能状態 |
答え エ
【解説】
Aが待ち状態、Bが実行状態、Cが実行可能状態で、プロセスAが実行可能状態になると、プロセスAの優先度は実行状態のプロセスBより高いのでプリエンティブが発生し、プロセスAが実行可能状態から実行状態に、プロセスBは実行状態から実行可能状態に遷移するので
|
A |
B |
C |
エ |
実行状態 |
実行可能状態 |
実行可能状態 |
になる。
【キーワード】
・プリエンプティブ
【キーワードの解説】
- プリエンプティブ(preemptive)
システムによって、複数のタスクで処理の優先度を付け、優先度の高いタスクは、優先度の低いタスクを停めても処理する必要がある場合、処理中の優先度の低いタスクを止めて、優先度の高いタスクを動作させることをプリエンプティブな処理という。
処理の横取りと考えるとわかりやすい。
もっと、「プリエンプティブ」について調べてみよう。
戻る
一覧へ
次へ
|