通常のプロセス(非リアルタイムプロセス)には、2種類の優先度がある。
値が「小さい方」が優先度が高い。
・静的優先度
・動的優先度
静的優先度
0~139。
(0~99はリアルタイムプロセスに使用、通常プロセスは100~139。)
プロセスのnice値により固定的に決まる。
niceは-20~19→100~139にずらした値が静的優先度。
動 的優先度
100~139。
静的優先度をベースにCPU使用量に基づいて算出。
スケジューラは動的優先度を使用。
topコマ ンドのPRIフィールド
(カーネル内で使用している値100~139が0~39にずらされて表示)
優先的にプログラムを動作させるには、
・静的優先度/bin/nice値を-20(最優先)。
・動的優先度(priority)を高くする。普段おとなしく(run_time値を低く)しとく。
nice:
デフォルト10
変更できるのはrootのみ。
一般ユーザは自プロセスのみの優先度を下げることが可能。
参考:niceコマンド
$ /bin/nice -n 100 ./priority
参考:psコマンド
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6269 user 38 19 42708 38m 356 R 89.1 1.0 0:02.68 priority
6268 user 18 0 42708 38m 364 R 66.8 1.0 0:02.01 priority
0 件のコメント:
コメントを投稿