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 までの値を与えます。