GNU/Linux >> Linux の 問題 >  >> Linux

プロセスの優先度はどのように計算されますか?

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


Linux
  1. Linuxでゾンビプロセスを強制終了する方法

  2. Linuxにvtopをインストールする方法

  3. プロセスIDの最大値は?

  1. / etc / shadowのタイムスタンプ番号はどのように計算されますか?

  2. Linux の Nice および Renice の例を使用してプロセスの優先度を変更する方法

  3. UNIX / Linux :プロセスのナイスネス (優先度) を変更する方法

  1. CHILD PROCESSから戻り値を取得するには?

  2. ゾンビプロセスを強制終了する方法

  3. プロセスへのポートを識別する方法は?