応用情報技術者 2012年 春期 午前2 問22
問題文
プロセスを、実行状態、実行可能状態、待ち状態、休止状態の四つの状態で管理するプリエンプティブなマルチタスクの OS 上で、A, B, Cの三つのプロセスが動作している。各プロセスの現在の状態は,Aが待ち状態、Bが実行状態、Cが実行可能状態である。プロセス Aの待ちを解消する事象が発生すると、それぞれのプロセスの状態はどのようになるか。ここで、プロセス Aの優先度が最も高く,Cが最も低いものとし、CPUは1個とする。

選択肢
ア:
イ:
ウ:
エ:(正解)
プロセス状態遷移問題【午前2 解説】
要点まとめ
- 結論:プロセスAの待ち状態が解消されると、優先度が最も高いためAが実行状態に遷移し、Bは実行可能状態に、Cは実行可能状態のままとなる。
- 根拠:プリエンプティブなマルチタスクOSでは、CPUは最も優先度の高い実行可能プロセスに割り当てられ、待ち状態の解消でAが実行可能となり即座にCPUを奪う。
- 差がつくポイント:優先度の高いプロセスが待ち状態から実行可能になると、CPUを占有中の低優先度プロセスは実行可能状態にプリエンプトされる点を正確に理解すること。
正解の理由
プロセスAは待ち状態から実行可能状態に遷移し、優先度が最も高いためCPUを獲得して実行状態になります。
現在CPUを使っているBは、AにCPUを奪われて実行可能状態に戻ります。
Cは元々実行可能状態であり、状態は変わりません。
したがって、Aが実行状態、BとCが実行可能状態となる「エ」が正解です。
現在CPUを使っているBは、AにCPUを奪われて実行可能状態に戻ります。
Cは元々実行可能状態であり、状態は変わりません。
したがって、Aが実行状態、BとCが実行可能状態となる「エ」が正解です。
よくある誤解
- 優先度が高いプロセスが待ち状態から復帰しても、すぐにCPUを奪わないと誤解しがちです。
- 実行可能状態のプロセスが待ち状態になることは、今回の事象では起こりません。
解法ステップ
- 現在の各プロセスの状態を確認(A:待ち、B:実行、C:実行可能)。
- Aの待ち状態が解消され、Aは実行可能状態になる。
- 優先度を考慮し、最も高いAがCPUを獲得し実行状態に遷移。
- CPUを奪われたBは実行可能状態に戻る。
- Cは状態変化なしで実行可能状態のまま。
- 各プロセスの最終状態を選択肢と照合し、正解を選ぶ。
選択肢別の誤答解説
- ア:Aが実行可能状態のままでCPUを獲得していないため誤り。
- イ:Bが待ち状態になるのは誤り。CPUを奪われても実行可能状態になる。
- ウ:Cが休止状態になる根拠がなく誤り。
- エ:Aが実行状態、BとCが実行可能状態で正しい。
補足コラム
プリエンプティブマルチタスクOSでは、CPUは常に最も優先度の高い実行可能プロセスに割り当てられます。
待ち状態はI/O待ちなどでCPUを使わない状態であり、待ちが解消されると実行可能状態に戻ります。
この仕組みを理解することは、プロセス管理やスケジューリング問題の基本です。
待ち状態はI/O待ちなどでCPUを使わない状態であり、待ちが解消されると実行可能状態に戻ります。
この仕組みを理解することは、プロセス管理やスケジューリング問題の基本です。
FAQ
Q: プリエンプティブとは何ですか?
A: CPUを強制的に他のプロセスに割り当てることができる方式で、優先度の高いプロセスがCPUを奪うことが可能です。
A: CPUを強制的に他のプロセスに割り当てることができる方式で、優先度の高いプロセスがCPUを奪うことが可能です。
Q: 実行可能状態と実行状態の違いは?
A: 実行可能状態はCPUを待っている状態、実行状態はCPUを実際に使用している状態です。
A: 実行可能状態はCPUを待っている状態、実行状態はCPUを実際に使用している状態です。
関連キーワード: プロセス状態、プリエンプティブ、マルチタスク、CPUスケジューリング、優先度、待ち状態、実行可能状態、実行状態

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

