応用情報技術者 2017年 秋期 午前2 問16
問題文
リアルタイム OS において、実行中のタスクがプリエンプションによって遷移する状態はどれか。
選択肢
ア:休止状態
イ:実行可能状態(正解)
ウ:終了状態
エ:待ち状態
リアルタイム OS におけるプリエンプションの状態遷移【午前2 解説】
要点まとめ
- 結論:プリエンプションにより実行中のタスクは「実行可能状態」に遷移するのが正解です。
- 根拠:プリエンプションはCPUを強制的に他のタスクに譲るため、実行中から実行可能状態へ切り替わります。
- 差がつくポイント:休止状態や待ち状態はタスクの自発的な状態変化であり、プリエンプションは強制的な割り込みである点を理解しましょう。
正解の理由
プリエンプションは、現在CPUを占有しているタスクを強制的に中断し、他の優先度の高いタスクにCPUを割り当てる機能です。このため、実行中のタスクは「実行可能状態(Ready状態)」に戻り、CPUの割り当てを待つ状態になります。休止状態や待ち状態は、タスクが自らの処理や外部イベント待ちで遷移するため、プリエンプションとは異なります。
よくある誤解
プリエンプションでタスクが「休止状態」や「待ち状態」になると誤解しがちですが、これらはタスクの自発的な状態変化であり、プリエンプションは強制的に「実行可能状態」へ戻す動作です。
解法ステップ
- プリエンプションの意味を確認する(強制的にCPUを奪うこと)。
- タスクの状態遷移を理解する(実行中→実行可能、休止、待ちなど)。
- プリエンプション時の遷移先は「実行可能状態」であることを判断する。
- 選択肢の意味を照らし合わせて正解を選ぶ。
選択肢別の誤答解説
- ア: 休止状態
タスクが終了や停止を待つ状態であり、プリエンプションとは無関係です。 - イ: 実行可能状態
正解。プリエンプションにより実行中のタスクはCPUを離れ、実行可能状態に戻ります。 - ウ: 終了状態
タスクが処理を完了した状態であり、プリエンプションとは異なります。 - エ: 待ち状態
入出力待ちなどで自発的に待機する状態で、プリエンプションによる遷移先ではありません。
補足コラム
リアルタイムOSではタスクの優先度管理が重要で、プリエンプションは高優先度タスクの即時実行を可能にします。これにより応答性が向上し、リアルタイム性が確保されます。プリエンプションがない場合は協調的マルチタスクとなり、応答遅延が発生しやすくなります。
FAQ
Q: プリエンプションと協調的マルチタスクの違いは何ですか?
A: プリエンプションはOSが強制的にCPUを切り替えますが、協調的マルチタスクはタスク自身がCPUを手放すまで切り替わりません。
A: プリエンプションはOSが強制的にCPUを切り替えますが、協調的マルチタスクはタスク自身がCPUを手放すまで切り替わりません。
Q: 実行可能状態とは具体的にどんな状態ですか?
A: CPU割り当てを待っている状態で、すぐに実行可能なタスクの待機状態です。
A: CPU割り当てを待っている状態で、すぐに実行可能なタスクの待機状態です。
関連キーワード: プリエンプション、タスク状態遷移、リアルタイムOS, 実行可能状態、マルチタスク

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

