プリエンプティブスケジューラ(ぷりえんぷてぃぶすけじゅーら)
最終更新:2026/4/27
プリエンプティブスケジューラは、実行中のプロセスを中断し、別のプロセスにCPUの制御を譲るスケジューリング方式を提供するソフトウェアである。
別名・同義語 先取り型スケジューラ
ポイント
リアルタイムOSなどで用いられ、高い優先度のタスクを優先的に実行することで、システムの応答性を向上させる。
プリエンプティブスケジューリングとは
プリエンプティブスケジューリングは、マルチタスクオペレーティングシステムにおいて、CPUを複数のプロセスで共有するための重要な技術です。従来の協調型スケジューリングとは異なり、プロセス自身がCPUを解放するのを待つのではなく、スケジューラが強制的に実行中のプロセスを中断し、別のプロセスにCPUの制御を移します。この中断を「プリエンプション」と呼びます。
プリエンプティブスケジューラの仕組み
プリエンプティブスケジューラは、通常、各プロセスに優先度を割り当てます。スケジューラは、常に最も優先度の高いプロセスをCPUに割り当て、実行させます。もし、より優先度の高いプロセスが到着した場合、スケジューラは現在のプロセスを中断し、新しいプロセスにCPUを譲ります。中断されたプロセスは、後で再開されるのを待ちます。
プリエンプティブスケジューリングの利点
- 応答性の向上: 高優先度のタスクを迅速に実行できるため、システムの応答性が向上します。
- 公平性の確保: CPU時間を公平に分配し、特定のプロセスがCPUを長時間占有することを防ぎます。
- リアルタイム処理: リアルタイムOSにおいて、時間制約の厳しいタスクを確実に実行するために不可欠です。
プリエンプティブスケジューリングの欠点
- コンテキストスイッチのオーバーヘッド: プロセスを切り替える際に、CPUレジスタやメモリの内容を保存・復元する必要があり、オーバーヘッドが発生します。
- 優先度の逆転: 低優先度のプロセスが、高優先度のプロセスが依存するリソースを占有し、高優先度のプロセスの実行を妨げる可能性があります。