優先度プリエンプション(ゆうせんど ぷりえんぷしょん)
最終更新:2026/4/27
優先度プリエンプションは、リアルタイムOSにおいて、高優先度のタスクが低優先度のタスクの実行を中断し、CPUを奪取する仕組みである。
別名・同義語 タスクプリエンプションスケジューリング
ポイント
この仕組みにより、システム全体の応答性を維持し、重要なタスクを遅延なく実行することが可能となる。割り込み処理と密接に関連する。
優先度プリエンプションの概要
優先度プリエンプションは、マルチタスク環境におけるスケジューリングアルゴリズムの一種であり、タスクに優先度を割り当て、優先度の高いタスクから順にCPU時間を割り当てる。低優先度のタスクが実行中に、より高優先度のタスクが実行可能になると、現在のタスクの実行は中断され、高優先度のタスクがCPUを占有する。中断されたタスクは、後で再開される。
優先度プリエンプションの利点
- 応答性の向上: 高優先度のタスクを優先的に実行することで、システム全体の応答性を向上させることができる。特に、リアルタイムシステムにおいては、重要なタスクを遅延なく実行する必要があるため、優先度プリエンプションは不可欠な機能となる。
- 重要なタスクの保証: 高優先度のタスクは、常にCPUを割り当てられるため、確実に実行されることが保証される。
- 柔軟なスケジューリング: タスクに優先度を割り当てることで、システムの要件に合わせて柔軟なスケジューリングが可能となる。
優先度プリエンプションの欠点
- 優先度反転: 低優先度のタスクが、高優先度のタスクが依存するリソースを占有している場合、高優先度のタスクの実行が遅延する可能性がある。これを優先度反転と呼び、解決策として優先度継承プロトコルなどが存在する。
- オーバーヘッド: タスクの切り替えにはオーバーヘッドが発生するため、過度なプリエンプションはシステムのパフォーマンスを低下させる可能性がある。