Loading article…
固定優先度プリエンプティブスケジューリングは、リアルタイムシステムで一般的に使用されるスケジューリングシステムです。[ 1 ]固定優先度プリエンプティブスケジューリングでは、スケジューラは、プロセッサがいつでも、現在実行可能なすべてのタスクの中で最も優先度の高いタスクを実行することを保証します。
プリエンプティブスケジューラにはクロック割り込みタスクがあり、タスクが一定期間(タイムスライス)実行された後にスケジューラが切り替えるオプションを提供できます。このスケジューリングシステムの利点は、どのタスクもタイムスライスよりも長くプロセッサを占有しないことです。ただし、このスケジューリング方式はプロセスまたはスレッドのロックアウトに対して脆弱です。優先度の高いタスクに優先順位が与えられるため、優先度の低いタスクは無期限に待機する可能性があります。この状況を解決する一般的な方法の1つはエイジングです。これは、待機中のプロセスとスレッドの優先度を徐々に増加させ、最終的にすべてが実行されるようにします。ほとんどのリアルタイムオペレーティングシステム(RTOS)にはプリエンプティブスケジューラがあります。また、タイムスライシングを無効にすると、実質的に非プリエンプティブRTOSになります。
プリエンプティブスケジューリングは、協調スケジューリングと区別されることが多い。協調スケジューリングでは、タスクは他のタスクに中断されることなく、開始から終了まで連続して実行できる。タスクを切り替えるには、タスクはスケジューラを明示的に呼び出す必要がある。協調スケジューリングは、 SalvoやTinyOSなどの一部のRTOSで使用されている。