まず第一に、答えは少し長いですが、明確にするためだけです。
Linuxカーネルと同様に、すべての従来のプロセスには、静的優先度と呼ばれる100(最高)から139(最低)の優先度があります。そのため、プロセスに割り当てることができる優先度は基本的に 40 あります。
したがって、プロセスが作成されると、その親の優先度が取得されますが、ユーザーがその優先度を変更したい場合は、nice(nice_value) システム コールを使用して実行できます。
&あなたの質問の理由は、すべてのプロセスが、プロセスが実行のためにCPUをミリ秒単位で取得する時間として使用されるベースタイムクォンタムを必要としており、これは次のように計算されるためです。
time={
if static_priority<120
(140-static_priority)*20
if static_priority>=120
(140-static_priority)*5
so sys_nice( ) サービス ルーチンは、nice( ) システム コールを処理します。nice_value には任意の値を指定できますが、40 より大きい絶対値は 40 に切り捨てられます。伝統的に、負の値は優先度の増加の要求に対応し、スーパーユーザー権限が必要ですが、正の値は優先度の減少の要求に対応します。負の nice_value の場合、関数は Capable( ) 関数を呼び出して、プロセスに CAP_SYS_NICE 機能があるかどうかを確認します。さらに、この関数は security_task_setnice( ) セキュリティ フックを呼び出します。最終的に、nice_value を使用して静的優先度を計算し、この静的優先度を使用して基本時間クォンタムを計算します。
したがって、-ve値は優先度を上げるために使用されるため、スーパーユーザーアクセスが必要であり、+ve値は優先度を下げるために使用されるため、スーパーユーザーアクセスは必要ないことは明らかです。