応用情報技術者 2021年 春期 午前2 問17
問題文
リアルタイム OS において、実行中のタスクがプリエンプションによって遷移する状態はどれか。
選択肢
ア:休止状態
イ:実行可能状態(正解)
ウ:終了状態
エ:待ち状態
リアルタイム OS におけるプリエンプションの状態遷移【午前2 解説】
要点まとめ
- 結論:プリエンプションにより実行中のタスクは「実行可能状態」に遷移するのが正解です。
- 根拠:プリエンプションはCPUを強制的に他のタスクに割り当てるため、実行中のタスクは実行可能状態に戻り待機します。
- 差がつくポイント:休止状態や待ち状態は自発的な待機や入出力待ちであり、プリエンプションとは異なる状態遷移です。
正解の理由
プリエンプションは、リアルタイムOSで高優先度タスクがCPUを必要とした際に、現在実行中のタスクを強制的に中断し、CPUを割り当て直す仕組みです。このため、実行中のタスクは「実行可能状態(Ready状態)」に戻り、再びCPU割り当てを待つ状態になります。休止状態や待ち状態はタスクが自発的にCPUを放棄した場合やI/O待ちの状態であり、プリエンプションとは異なります。
よくある誤解
プリエンプションでタスクが「休止状態」や「待ち状態」になると誤解しがちですが、これらはタスクの自発的な状態変化であり、プリエンプションは強制的に「実行可能状態」へ戻す動作です。
解法ステップ
- プリエンプションの意味を理解する(CPUの強制割り当て変更)。
- タスク状態の種類(実行中、実行可能、待ち、休止)を確認する。
- プリエンプション時のタスクの状態遷移を考える。
- 強制的にCPUを奪われたタスクは「実行可能状態」に戻ることを確認。
- 選択肢の中から「実行可能状態」を選ぶ。
選択肢別の誤答解説
- ア: 休止状態
タスクが終了や停止を待つ状態であり、プリエンプションとは無関係です。 - イ: 実行可能状態
正解。プリエンプションにより実行中のタスクはCPUを奪われ、再び実行可能状態に戻ります。 - ウ: 終了状態
タスクが完了した状態であり、プリエンプションとは関係ありません。 - エ: 待ち状態
入出力待ちなどで自発的にCPUを放棄した状態で、プリエンプション時の遷移先ではありません。
補足コラム
リアルタイムOSではタスクの優先度管理が重要で、プリエンプションは高優先度タスクの即時実行を可能にします。これにより応答時間の短縮やシステムのリアルタイム性が確保されます。プリエンプションがない場合は協調的マルチタスクとなり、応答性が低下します。
FAQ
Q: プリエンプションと割り込みは同じですか?
A: 割り込みはハードウェアからの信号で処理を中断する仕組み、プリエンプションはOSがCPU割り当てを強制的に切り替える仕組みです。関連しますが異なります。
A: 割り込みはハードウェアからの信号で処理を中断する仕組み、プリエンプションはOSがCPU割り当てを強制的に切り替える仕組みです。関連しますが異なります。
Q: 実行可能状態のタスクはCPUを使っていますか?
A: いいえ、実行可能状態はCPU割り当てを待っている状態で、実際にCPUを使っているのは「実行中」のタスクです。
A: いいえ、実行可能状態はCPU割り当てを待っている状態で、実際にCPUを使っているのは「実行中」のタスクです。
関連キーワード: プリエンプション、タスク状態、リアルタイムOS, CPUスケジューリング、マルチタスク

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

