なぜ「良い」という概念がありますか?

なぜ「良い」という概念がありますか?

私は「良い」ことが何であるか、それが優先順位とどのようにつながるかを知っています。それは問題ではありません。

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)にはありましたが、ありませんでしたnicesetpriorityしかし私が間違っている可能性があります)。

関連情報