私は「良い」ことが何であるか、それが優先順位とどのようにつながるかを知っています。それは問題ではありません。
Linuxの優先順位の範囲は0〜139です。 0-99はリアルタイムで、100-139はユーザースペースです。優先順位の良いマッピング:
- -20→100
- 0→120
- +19→139
私が理解するのはユーザースペースであり、優先順位はカーネルスペースです。
ところで、なぜ「良い」という概念に気を使うのでしょうか?これは重複したアクションのようです。どのような状況で優先順位に直接影響を与えるよりも「良い」ものを持つ方が良いですか?
ただ便宜のために存在するのでしょうか、それとも技術的な理由があるのでしょうか?
答え1
これ悪くない(2)システムコールが変更されています比較的優先順位(原本から今後対応するシステムコール)。しかし、優先順位の設定(2)変える純粋な優先順位。
だから私の理解はnice(x)
(x
非常に小さい数字、例えば0から9の間)は次のようなものです。原子的に行為:
// asssume both getpriority & setpriority syscalls are successful
int n = getpriority(PRIO_PROCESS, 0);
n += x;
setpriority(PRIO_PROCESS, 0, n);
複数のプロセスが同じプロセスで同様の操作(たとえばsetpriority(PRIO_PROCESS, somepid, n);
...呼び出し)を実行できるため、原子これを組み合わせて作業を行います。悪くない(2)
ただし、主な理由はレガシーと歴史(および以前のバージョンとの互換性)です。 IIRC、1980年代の古いUnix(例:SunOS3.2)にはありましたが、ありませんでしたnice
(setpriority
しかし私が間違っている可能性があります)。