応用情報技術者 2015年 秋期 午前2 問16
問題文
プリエンプション方式のタスクスケジューリングにおいて、タスクBの実行中にプリエンプションが発生する契機となるのはどれか。ここで、タスクの優先度は、タスクAが最も高く、タスクA > タスクB = タスクC > タスクDの関係とする。
選択肢
ア:タスクAが実行可能状態になった。(正解)
イ:タスクBが待ち状態になった。
ウ:タスクCが実行可能状態になった。
エ:タスクDが実行可能状態になった。
プリエンプション方式のタスクスケジューリングにおけるプリエンプション発生の契機【午前2 解説】
要点まとめ
- 結論:プリエンプションは、現在実行中のタスクより優先度が高いタスクが実行可能になると発生します。
- 根拠:プリエンプション方式は高優先度タスクの即時実行を保証し、低優先度タスクの割り込みを許します。
- 差がつくポイント:同じ優先度や低優先度のタスクが実行可能になってもプリエンプションは起きず、優先度の比較が重要です。
正解の理由
ア: タスクAが実行可能状態になった。が正解です。
タスクB実行中に、より高い優先度のタスクAが実行可能になると、プリエンプションが発生し、タスクBは中断されてタスクAが実行されます。タスクA > タスクBの優先度関係がこれを決定づけています。
タスクB実行中に、より高い優先度のタスクAが実行可能になると、プリエンプションが発生し、タスクBは中断されてタスクAが実行されます。タスクA > タスクBの優先度関係がこれを決定づけています。
よくある誤解
タスクBと同じ優先度のタスクCが実行可能になってもプリエンプションは起きません。優先度が同じ場合はプリエンプションは発生しないため注意が必要です。
解法ステップ
- 問題文の優先度関係を確認する(タスクA > タスクB = タスクC > タスクD)。
- 現在実行中のタスク(タスクB)と新たに実行可能になるタスクの優先度を比較する。
- より高い優先度のタスクが実行可能になればプリエンプションが発生する。
- 選択肢の中でタスクBより優先度が高いのはタスクAのみであることを確認する。
- よって「ア」が正解と判断する。
選択肢別の誤答解説
- イ: タスクBが待ち状態になるのはプリエンプションの契機ではなく、タスクB自身の状態変化でありプリエンプションとは異なります。
- ウ: タスクCはタスクBと同じ優先度なので、プリエンプションは発生しません。
- エ: タスクDはタスクBより優先度が低いため、プリエンプションの契機にはなりません。
補足コラム
プリエンプション方式はリアルタイムOSやマルチタスク環境で重要なスケジューリング手法です。優先度ベースのプリエンプションは、システムの応答性を高めるために高優先度タスクを即座に実行可能にします。逆に優先度が同じか低いタスクではプリエンプションは発生しません。
FAQ
Q: プリエンプション方式で同じ優先度のタスクが実行可能になった場合はどうなる?
A: 同じ優先度の場合はプリエンプションは発生せず、現在のタスクが継続して実行されることが多いです。
A: 同じ優先度の場合はプリエンプションは発生せず、現在のタスクが継続して実行されることが多いです。
Q: プリエンプションが発生するとタスクBはどうなる?
A: タスクBは中断され、後で再開できる状態(待ち状態など)に遷移します。
A: タスクBは中断され、後で再開できる状態(待ち状態など)に遷移します。
関連キーワード: プリエンプション、タスクスケジューリング、優先度、マルチタスク、リアルタイムOS

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

