優先度キュー型スケジューラ(ゆうせんどきゅうがたすけじゅーら)
最終更新:2026/4/27
優先度キュー型スケジューラは、プロセスを優先度に基づいてキューに格納し、優先度の高い順に実行するスケジューリングアルゴリズムである。
別名・同義語 優先度スケジューリングプライオリティスケジューリング
ポイント
リアルタイムシステムや組み込みシステムで、時間制約の厳しいタスクを優先的に処理するために用いられる。プロセス間の公平性は必ずしも保証されない。
概要
優先度キュー型スケジューラは、各プロセスに優先度を割り当て、その優先度に基づいてCPUの実行時間を割り当てるスケジューリングアルゴリズムです。高い優先度を持つプロセスが、低い優先度を持つプロセスよりも先に実行されます。これは、緊急性の高いタスクや重要なタスクを優先的に処理する必要があるシステムで有効です。
仕組み
- 優先度の割り当て: 各プロセスには、システム管理者またはプロセス自体によって優先度が割り当てられます。優先度の値が高いほど、優先度が高くなります。
- キューへの格納: プロセスは、その優先度に基づいて優先度キューに格納されます。優先度の高いプロセスはキューの先頭に配置され、優先度の低いプロセスはキューの末尾に配置されます。
- スケジューリング: スケジューラは、キューの先頭にあるプロセスを選択し、CPUの実行時間を割り当てます。プロセスが実行を完了するか、タイムスライスが終了すると、プロセスはキューの末尾に移動し、他のプロセスが実行される機会が与えられます。
メリット
- 応答性の向上: 緊急性の高いタスクを優先的に処理できるため、システムの応答性が向上します。
- 重要なタスクの優先処理: 重要なタスクを優先的に処理できるため、システムの信頼性が向上します。
デメリット
- 優先度反転: 低い優先度のプロセスが、高い優先度のプロセスのリソースを待機している場合、高い優先度のプロセスが実行できなくなることがあります。これを優先度反転と呼びます。
- 飢餓: 低い優先度のプロセスが、常に高い優先度のプロセスによって実行機会を奪われ、実行されない状態になることがあります。これを飢餓と呼びます。
- 公平性の欠如: 高い優先度のプロセスが常に優先されるため、低い優先度のプロセスが実行される機会が少なくなることがあります。