親近感の価値(-)とはどういう意味ですか?

親近感の価値(-)とはどういう意味ですか?

マニュアルページとウィキペディアによると、nice範囲は-20から20です。

しかし、次のコマンドを実行すると、一部のプロセスに(-)などの数値以外の値があることがわかります。 「NI」というタイトルの左側の6番目の列を参照してください。

(-)の好感度とはどういう意味ですか?

 ps axl 
 F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0  19356  1548 poll_s Ss   ?          0:00 /sbin/init
1     0     2     0  20   0      0     0 kthrea S    ?          0:00 [kthreadd]
1     0     3     2 -100  -      0     0 migrat S    ?          0:03 [migration/0]
1     0     4     2  20   0      0     0 ksofti S    ?          0:51 [ksoftirqd/0]
1     0     5     2 -100  -      0     0 cpu_st S    ?          0:00 [migration/0]
5     0     6     2 -100  -      0     0 watchd S    ?          0:09 [watchdog/0]
1     0     7     2 -100  -      0     0 migrat S    ?          0:08 [migration/1]
1     0     8     2 -100  -      0     0 cpu_st S    ?          0:00 [migration/1]
1     0     9     2  20   0      0     0 ksofti S    ?          1:03 [ksoftirqd/1]
5     0    10     2 -100  -      0     0 watchd S    ?          0:09 [watchdog/1]
1     0    11     2 -100  -      0     0 migrat S    ?          0:05 [migration/2]

Ubuntu 12.04、CentOs 6.5、およびMac OsX 10.9を実行している3つのサーバーを確認しました。 UbuntuシステムとCentOsシステムには、数値ではなくおなじみの値があります。

答え1

(-)の好感度とはどういう意味ですか?

それらも持っています。まず原則スコアは-100です。これは、プロセスが次のように予約されたことを示します。リアルタイムプロセス。ライブプロセスは良いスコアを使用せず、通常のプロセスよりも優先順位が高くなりますが、依然として異なります。

chrtコマンド(例)を使用して、各プロセスの詳細を表示できますchrt -p 3。 -100の1つは、「現在の予約優先順位」99を報告できます。niceこことは異なり、高い値はより高い優先順位を表し、おそらく-100最上位の数値が生成される場所です。良い値に関係なく、リアルタイムでないプロセスは常に「現在のスケジューリング優先順位」がゼロchrtで、Linuxでは「現在のスケジューリングポリシー」が表示されます SCHED_OTHER

UbuntuシステムとCentOsシステムには、数値ではなくおなじみの値があります。

一部のバージョンでは、次のようにtopリアルタイムプロセスを報告しているようです。rtまず原則それでは0あなた

答え2

@Goldlilockの答えは、私が正しい方法で研究を行うように導きました。私の研究の詳細は次のとおりです。

プロセスで使用可能なスケジューリングアルゴリズム

Linuxは3つのスケジューリング戦略をサポートしています。SCHED_FIFO、、、SCHED_RRそしてSCHED_OTHERSCHED_OTHERほとんどのプロセスで使用される基本的な汎用時分割スケジューラポリシーは、実行可能なプロセスの選択方法を正確に制御する必要がある時間が重要な特別なアプリケーションにSCHED_FIFO適しています。SCHED_RR

利用可能な優先順位

実行するプロセスを選択するには、Linuxスケジューラは各プロセスの優先順位を考慮する必要があります。実際には2つの優先順位があります。

静的優先順位各プロセスには値が割り当てられ、スケジュールはこの静的優先順位によって異なります。SCHED_OTHERSCHED_FIFOまたはそれ以下に予約されているプロセスは、〜(99が最も高い)の範囲の静的優先順位をSCHED_RR持つことができます。199

このsys_sched_get_priority_max( )ルーチンはプロセスの静的優先順位を返し、0非リアルタイムプロセスを返します。

動的優先順位付けは、非リアルタイムアプリケーションで使用されます。

すべてのリアルタイムプロセスは通常のプロセスよりも優先順位が高くなります。 LinuxはPOSIXに従ってリアルタイムの優先順位を実装します。次の図は、プロセスのスケジュール方法と優先順位の概要を示しています。

HIGH PRIORITY – - – - – > – - – - – > – - – - – > – - – - – > – - – – LEAST PRIORITY
……..real time priority (static priority)…….| …. nice value (dynamic priority) …..
99 ……………………….. 50 ……………………… 1 | -20 …….. -10 …….. 0 …….. 10 ……. 19

これで、次のコマンドを実行してプロセスのリアルタイム優先順位を確認できます。ここでは - で示される良い値を持つウォッチドッグを使用しています。

ps -e -o class,rtprio,pri,nice,cmd | grep watchdog

上記のコマンドの結果です。ご覧のとおり、リアルタイム優先順位は99であり、これは可能な最も高い優先順位です。

FF      99 139   - [watchdog/0]
FF      99 139   - [watchdog/1]
TS       -  21   0 grep watchdog

したがって、私が理解したところによると、リアルタイム優先順位の最大値は99なので、それ以上の値はありません。これが、監視やその他のシステムプロセスに対して良い結果が得られる理由です。

引用する

http://oreilly.com/catalog/linuxkernel/chapter/ch10.html http://atipaday.wordpress.com/2008/08/19/atad-21-linux-process-priority-range/

関連情報