9.2. SCHED_DEADLINE および cpusets
カーネルのデッドラインスケジューリングクラス (SCHED_DEADLINE) は、期限が制限された散発的なタスクに対して、Early Deadline First Scheduler (EDF) を実装します。ジョブ期限に従ってタスクに優先順位を付けます。つまり、最も早い絶対期限が最初になります。EDF スケジューラーに加えて、期限スケジューラーは定帯域幅サーバー (CBS) も実装します。CBS アルゴリズムは、リソース予約プロトコルです。
CBS は、各タスクがすべての期間 (T) で実行時間 (Q) を受け取ることを保証します。タスクのすべてのアクティブ化の開始時に、CBS はタスクの実行時間を補充します。ジョブが実行すると、runtime が消費され、タスクが runtime を使い果たした場合、タスクは抑制され、スケジュールが解除されます。スロットリングメカニズムは、単一のタスクがそのランタイムを超えて実行されるのを防ぎ、他のジョブのパフォーマンスの問題を回避するのに役立ちます。
リアルタイムでは、deadline タスクによるシステムの過負荷を回避するために、deadline スケジューラーは、タスクが deadline scheduler で実行するように設定されるたびに実行される受け入れテストを実装します。受け入れテストは、SCHED_DEADLINE タスクが kernel.sched_rt_runtime_us/kernel.sched_rt_period_us ファイルで指定されているよりも多くの CPU 時間を使用しないことを保証します。これは、デフォルトでは 1 秒で 950 ミリ秒です。