1.2. スレッドスケジューリングポリシー
Linux では、3 つの主要なスレッドスケジューリングポリシーが使用されます。
SCHED_OTHER
(SCHED_NORMAL
とも呼ばれます)これはデフォルトのスレッドポリシーで、カーネルが制御する動的な優先度を持ちます。優先度はスレッドアクティビティーに基づいて変更されます。このポリシーを持つスレッドは、リアルタイム優先度が 0 と見なされます。
SCHED_FIFO
(先入れ先出し)優先度の範囲が
1 - 99
までのリアルタイムポリシー。ここでは、1
が最も低く、99
が最も高くなります。SCHED_FIFO
スレッドは常にSCHED_OTHER
スレッドよりも優先度が高くなります (たとえば、優先度が1
のSCHED_FIFO
スレッドは どのSCHED_OTHER
スレッドよりも優先度が高くなります)。SCHED_FIFO
スレッドとして作成されたスレッドの優先度はどれも固定され、優先度の高いスレッドによってブロックまたはプリエンプションされるまで実行されます。SCHED_RR
(ラウンドロビン)SCHED_RR
は、SCHED_FIFO
を変更したものです。同じ優先度のスレッドにはクォンタムがあり、同じ優先度のすべてのSCHED_RR
スレッド間でラウンドロビン方式でスケジュールされます。このポリシーはほとんど使用されません。