親切度の範囲が-20から19までの理由は何ですか?

親切度の範囲が-20から19までの理由は何ですか?

このniceコマンドを使用すると、プログラムの予約優先順位(「niceness」)を調整できます。私が取り組んでいるすべてのUnixシリーズシステムでは、nicenessは一連の整数として指定されています。ここで、-20は最も有利なスケジューリング優先順位、0はデフォルト、19は最も不利な優先順位です。

基本的な親近感としてゼロを持つことは十分に直感的ですが、範囲の終点として-20と19を選択するのはなぜですか?符号付き8ビットバイトに正確に収まる-128と127はどうですか?それとも、小数点を考える人間にとってより直感的な-100から100、または似ていますが、より人間工学的な-99から99はどうですか? -20から19までの範囲が任意に選択されていますか、それとも最初にインターフェースしたスケジューラの内部とどのような関係があるのでしょうかnice。 (私が知る限り、この関係は現在のスケジューラが0から139の範囲の優先順位を使用するLinuxの場合には存在しません。しかし、私は-20から19の範囲の歴史的理由に興味があります。)

ベストアンサー1

内部親和性は0〜39ですが増加肯定的か否定的か。 源泉。したがって、答えは、コマンドが受け入れる数字(正数と負数)をnice使用して、基本レベルの20から0から39までの数字に移動できることです。

では、なぜ0-39なのでしょうか?特定の範囲は、デザイナーが最初に実装した範囲です。正の値が大きいほど良い理由は、優先順位付け時にプロセスの最近のCPU使用率に良いレベルが追加されるためです。おおよそのラウンドロビンスケジューリングを提供するために、カーネルは各プロセスが最近消費したCPUの量を追跡し、それほど多くのCPUを消費しないプロセスに切り替えます。良好なレベルが高いほど、プロセスのCPU時間が長くなり、スケジューラがプロセスをスリープモードに設定するか、スリープ状態を維持する頻度が高くなります。バラよりUNIXオペレーティングシステムの設計Maurice J. Bach、Prentice-Hall、1986、セクション2 8.1(特に審美的な理由から8.1.4)。 ISBN 0-13-201799-7.

おすすめ記事