SPONSORED

プリエンプティブスケジューラ(ぷりえんぷてぃぶすけじゅーら)

最終更新:2026/4/27

プリエンプティブスケジューラは、実行中のプロセスを中断し、別のプロセスにCPUの制御を譲るスケジューリング方式を提供するソフトウェアである。

別名・同義語 先取り型スケジューラ

ポイント

リアルタイムOSなどで用いられ、高い優先度のタスクを優先的に実行することで、システムの応答性を向上させる。

プリエンプティブスケジューリングとは

プリエンプティブスケジューリングは、マルチタスクオペレーティングシステムにおいて、CPUを複数のプロセスで共有するための重要な技術です。従来の協調型スケジューリングとは異なり、プロセス自身がCPUを解放するのを待つのではなく、スケジューラが強制的に実行中のプロセスを中断し、別のプロセスにCPUの制御を移します。この中断を「プリエンプション」と呼びます。

プリエンプティブスケジューラの仕組み

プリエンプティブスケジューラは、通常、各プロセスに優先度を割り当てます。スケジューラは、常に最も優先度の高いプロセスをCPUに割り当て、実行させます。もし、より優先度の高いプロセスが到着した場合、スケジューラは現在のプロセスを中断し、新しいプロセスにCPUを譲ります。中断されたプロセスは、後で再開されるのを待ちます。

プリエンプティブスケジューリングの利点

  • 応答性の向上: 高優先度のタスクを迅速に実行できるため、システムの応答性が向上します。
  • 公平性の確保: CPU時間を公平に分配し、特定のプロセスがCPUを長時間占有することを防ぎます。
  • リアルタイム処理: リアルタイムOSにおいて、時間制約の厳しいタスクを確実に実行するために不可欠です。

プリエンプティブスケジューリングの欠点

  • コンテキストスイッチのオーバーヘッド: プロセスを切り替える際に、CPUレジスタやメモリの内容を保存・復元する必要があり、オーバーヘッドが発生します。
  • 優先度の逆転: 低優先度のプロセスが、高優先度のプロセスが依存するリソースを占有し、高優先度のプロセスの実行を妨げる可能性があります。

プリエンプティブスケジューリングの応用例

  • リアルタイムOS: ロボット制御航空機制御、医療器など、時間制約の厳しいシステムで使用されます。
  • 汎用OS: Windows、macOS、Linuxなどの汎用OSでも、マルチタスクを実現するためにプリエンプティブスケジューリングが採用されています。

SPONSORED