ps
で の出力、pri_baz
pp->priority + 100
として計算されます 、および pp->priority
prio
です カーネルからの値。これは次のように記述されます
プロセスの優先度は 0..MAX_PRIO
から -1、有効な RTpriority は 0..MAX_RT_PRIO
-1、および SCHED_NORMAL
/SCHED_BATCH
タスクは MAX_RT_PRIO
の範囲にあります ..MAX_PRIO
-1.優先順位の値が反転:低い p->prio
値は優先度が高いことを意味します。
MAX_USER_RT_PRIO
value により、実際の maximumRT 優先度を、ユーザー空間にエクスポートされた値とは別にすることができます。これにより、カーネル スレッドは優先度をどのユーザー タスクよりも高い値に設定できます。注:MAX_RT_PRIO
MAX_USER_RT_PRIO
未満であってはなりません .
したがって、カーネルの範囲は、0 から MAX_PRIO
までの 140 の値をカバーします。 –1 (139).
ただし、FIFO と RT の最小優先度は 1 であり、これは欠落している値を説明しています:入力値 (少なくとも、sched_setscheduler
を使用してユーザー空間から設定できます) ) 1 から 99 まで移動し、カーネルはそれらを prio
に変換します 式 MAX_RT_PRIO
を使用した値 – 1 – 優先度 、0 から 98 までの値を与えます。