私のps出力の2つのリアルタイムプロセスのうち、どのリアルタイムプロセスがLinuxによって先取りされますか?

私のps出力の2つのリアルタイムプロセスのうち、どのリアルタイムプロセスがLinuxによって先取りされますか?

私は次からいくつかのアイデアを得ました。https://stackoverflow.com/questions/8887531/which-real-time-priority-is-the-highest-priority-in-linux カーネルの異なる識別子に割り当てられたリアルタイム優先順位の値が異なる(反対)ことを意味する方法について説明します。

しかし、ps出力のRTPRIO列値の解釈はまだ不明です。値が高いほど優先順位が高くなり、その逆も同様です。

特に、次のps出力が与えられた場合:キューブ/0(RTPRIO = 1)は優先順位が高くなります(つまり、プリエンプトされる可能性があります)。移行/0(RTPRIO=99) またはその逆です。

ここに画像の説明を入力してください。

ベストアンサー1

~によるとプログラムメーカー:

優先順位は、スケジュールされたプロセスがカーネルモードでサブプロセスを待つ時間で、クロックサイクルで測定されます。 19(低い優先順位)から-20(高い優先順位)までの値です。プロセスはリアルタイムまたは非リアルタイム優先順位で実行できます。

  • リアルタイムスケジューリングポリシーを実行するプロセスの場合(つまり、スケジューラは、CPUが次に実行する実行可能プロセスを決定するカーネルコンポーネントです)、各プロセスには関連するスケジューリングポリシーと静的スケジューリング優先順位sched_priorityがありますsched_setscheduler()。プログラムは、スケジューリングポリシーに関する知識とシステム内のすべてのプロセスの静的優先順位に基づいて決定を下します。これは、負のスケジューリング優先順位から1を引いた値、つまり実際の値に対応する-2から-100の数です。 -時間優先順位は1から99までです。 。
  • これは、非リアルタイムスケジューリングポリシー(つまり、getpriority()呼び出しで取得され、whichおよびwho表示によって設定されたプロセス、プロセスグループ、またはユーザーのスケジューリング優先順位)で実行されるプロセスの元の良い値です。 setpriority() 呼び出しで得たものです。 ) カーネルに示されているとおりです。カーネルは、nice値(テーブルNIの列psなど)を、ユーザーが表示できるnice範囲-20〜19に対応する0(高)〜39(低)の範囲の数字で格納します。

おすすめ記事