応用情報技術者 2018年 秋期 午前2 問17
問題文
プリエンプション方式のタスクスケジューリングにおいて、タスク Bの実行中にプリエンプションが発生する契機となるのはどれか。ここで、タスクの優先度は、タスクAが最も高く、タスクA > タスクB = タスク C > タスクDの関係とする。
選択肢
ア:タスクAが実行可能状態になった。(正解)
イ:タスクBが待ち状態になった。
ウ:タスクCが実行可能状態になった。
エ:タスクDが実行可能状態になった。
プリエンプション方式のタスクスケジューリングにおけるプリエンプション契機【午前2 解説】
要点まとめ
- 結論:プリエンプションは、より高優先度のタスクが実行可能になると発生します。
- 根拠:プリエンプション方式は、現在実行中のタスクより優先度が高いタスクが現れた場合に割り込みをかける仕組みです。
- 差がつくポイント:優先度の等しいタスクや低いタスクが実行可能になってもプリエンプションは起きず、優先度の高いタスクのみが契機となる点を理解しましょう。
正解の理由
ア: タスクAが実行可能状態になった。が正解です。
タスクB実行中に、より高い優先度を持つタスクAが実行可能状態になると、プリエンプションが発生し、タスクBは中断されてタスクAが実行されます。
タスクCはタスクBと同じ優先度なのでプリエンプションの契機にはなりません。タスクDは優先度が低いため影響しません。タスクB自身が待ち状態になることはプリエンプションの契機ではなく、単に実行が停止する状態変化です。
タスクB実行中に、より高い優先度を持つタスクAが実行可能状態になると、プリエンプションが発生し、タスクBは中断されてタスクAが実行されます。
タスクCはタスクBと同じ優先度なのでプリエンプションの契機にはなりません。タスクDは優先度が低いため影響しません。タスクB自身が待ち状態になることはプリエンプションの契機ではなく、単に実行が停止する状態変化です。
よくある誤解
プリエンプションは「同じ優先度のタスクが実行可能になったとき」や「低優先度のタスクが実行可能になったとき」にも起きると誤解されがちです。実際は高優先度タスクのみが契機となります。
解法ステップ
- タスクの優先度関係を確認する(A > B = C > D)。
- プリエンプションの定義を理解する(高優先度タスクが現れたら割り込み)。
- 各選択肢のタスクの優先度と状態変化を照らし合わせる。
- 優先度が高いタスクが実行可能になる選択肢を選ぶ。
- 優先度が同じか低いタスクの選択肢は除外する。
選択肢別の誤答解説
- イ: タスクBが待ち状態になるのはプリエンプションではなく、タスク自身の状態変化です。
- ウ: タスクCはタスクBと同じ優先度なのでプリエンプションは発生しません。
- エ: タスクDは優先度が低いため、タスクBの実行を妨げることはありません。
- ア: 正解。タスクAは最も高い優先度で、実行可能になるとプリエンプションが発生します。
補足コラム
プリエンプション方式はリアルタイムOSやマルチタスク環境で重要なスケジューリング手法です。優先度ベースのプリエンプションは、システムの応答性を高めるために高優先度タスクを優先的に実行します。逆に、プリエンプションがないノンプリエンプティブ方式では、タスクが自発的にCPUを手放すまで他のタスクは待機します。
FAQ
Q: プリエンプションは同じ優先度のタスクでも発生しますか?
A: いいえ、同じ優先度のタスクが実行可能になってもプリエンプションは発生しません。
A: いいえ、同じ優先度のタスクが実行可能になってもプリエンプションは発生しません。
Q: タスクが待ち状態になることはプリエンプションですか?
A: いいえ、タスクの状態変化でありプリエンプションとは異なります。
A: いいえ、タスクの状態変化でありプリエンプションとは異なります。
関連キーワード: プリエンプション、タスクスケジューリング、優先度、マルチタスク、リアルタイムOS

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

