カーネルプリエンプションモデル(かーねるぷりえんぷしょんもでる)
最終更新:2026/4/28
カーネルプリエンプションモデルは、リアルタイムOSにおいて、高優先度タスクが低優先度タスクを中断できるスケジューリング方式である。
別名・同義語 プリエンプティブスケジューリング優先度ベーススケジューリング
ポイント
このモデルは、タスクの優先度に基づいてCPUの利用を制御し、時間制約の厳しいタスクの遅延を最小限に抑えることを目的とする。
概要
カーネルプリエンプションモデルは、リアルタイムオペレーティングシステム(RTOS)で広く採用されているスケジューリング手法の一つです。従来の協調型マルチタスクシステムとは異なり、タスク自身がCPUを解放するのを待つのではなく、カーネルが強制的にタスクを中断し、より高優先度のタスクにCPUの制御を移すことができます。
動作原理
このモデルでは、各タスクに優先度が割り当てられます。カーネルは、常に実行可能なタスクの中で最も優先度の高いタスクを選択して実行します。実行中のタスクよりも優先度の高いタスクが利用可能になると、カーネルは現在のタスクを中断(プリエンプト)し、高優先度のタスクにCPUを割り当てます。中断されたタスクは、後で再開されます。
メリット
- リアルタイム性: 高優先度のタスクは、時間制約を満たすために必要なタイミングで確実に実行されます。
- 応答性: システムは、外部イベントに対して迅速に応答できます。
- 優先度制御: タスクの重要度に応じてCPUの利用を調整できます。
デメリット
- コンテキストスイッチのオーバーヘッド: タスクの切り替えには時間がかかり、システム全体のパフォーマンスに影響を与える可能性があります。
- 優先度反転: 低優先度のタスクが、高優先度のタスクがリソースを待っている間にCPUを占有し、高優先度のタスクの遅延を引き起こす可能性があります。(優先度継承プロトコルなどで解決可能)
応用例
カーネルプリエンプションモデルは、産業用制御システム、ロボット工学、航空宇宙システムなど、リアルタイム性が重要なアプリケーションで広く使用されています。