Почему значения достоинства обратно связаны с приоритетом процесса?

 [приятность](https://en.wikipedia.org/wiki/Nice_%28Unix%29)  процесса уменьшается с увеличением приоритета процесса.

Извлечение из программирования Linux 4  th  Edition, стр. 169:

>  По умолчанию приоритет равен 0. Положительные приоритеты используются для фона
>   задачи, которые выполняются, когда другая задача с более высоким приоритетом не готова к запуску.
>   Отрицательные приоритеты заставляют программу работать чаще, принимая
>   большую долю доступного времени процессора. Диапазон действительных приоритетов
>   от -20 до +20. Это часто путает, поскольку чем выше
>   числовое значение, тем ниже приоритет выполнения. 
> 
> 

Есть ли какая-либо особая причина для отрицательных значений, соответствующих более высокому приоритету процесса (в отличие от увеличения приоритета для процессов с более высокой стоимостью)?

Ответ Эвальда верен, что подтверждается Jerry Peek  *и др.*  в  *Unix Power Tools*  (O'Reilly, 2007, стр. 507):

>  Вот почему номер  *nice*  обычно называется  *niceness* : работа с высокой долей очень любезна для пользователей вашей системы (т. е. работает на низких приоритет), в то время как работа с небольшой любовью обучает CPU. Термин «приятность» неудобен, как сама система приоритетов. К сожалению, это единственный термин, который является точным (цифры  *nice*  используются для вычисления приоритетов, но не являются самими приоритетами) и избегают ужасных кругооборотов («увеличение приоритета означает снижение приоритета ...» ). 
> 
> 

Ницца имел это значение, по крайней мере,  [V6 Unix](http://www.tuhs.org/Archive/PDP-11/Distributions/research/Dennis_v6/) , но руководство V6 никогда не объясняет это явно. Диапазон допустимых значений был от -220 до +20, а отрицательные числа зарезервированы для суперпользователя. Диапазон был изменен на -20 до +20 в 

[2](http://www.tuhs.org/Archive/PDP-11/Trees/V7/usr/man/man2/nice.2)[добавлено 28 Декабрь 2012 в 01:56](http://www.tuhs.org/Archive/PDP-11/Trees/V7/usr/man/man2/nice.2)[Fred Foo](https://stackoverflow.com/users/166749 "Пользователь Fred Foo")

[источник](https://stackoverflow.com/a/14070601)



Истерические причины - я имею в виду исторические ... Я почти уверен, что это началось с чисел, поднимающихся от 0 .. 20, и самый низкий доступный был взят первым. Затем кто-то пришел к выводу, что «Хм, что, если нам нужно сделать что-то БОЛЬШЕ важным», - мы должны пойти отрицательно.

Вы хотите, чтобы приоритет был сортируемым значением, поэтому, если вы начинаете с «по умолчанию равна нулю», вы должны либо сделать более высокий приоритет более высоким числом (но «приоритет 1» в ежедневном разговоре выше «приоритет 2» - когда ваш босс говорит: «Сделайте это своим приоритетом номер 1», это означает, что это важно, правильно?). Будучи компьютером, явно приоритет 0 выше приоритета 1, а приоритет -1 выше приоритета 0.

В конце концов, это произвольный выбор. Возможно, Кен Томсон, Деннис Ритчи или один из этих парней, смогут точно сказать, почему они выбирают именно эту последовательность, а не 0..255, например.



Прежде всего, ответ немного длинный, но это только для разъяснения.

Как и в ядре linux, каждый обычный процесс может иметь приоритеты, которые называются статическим приоритетом, от 100 (самый высокий) до 139 (самый низкий). поэтому есть в основном 40 приоритетов, которые могут быть отнесены к процессу.

поэтому, когда какой-либо процесс создается, он получает приоритет своего родителя, но если пользователь хочет изменить его приоритет, то это можно сделать с помощью хорошего (nice\_value) системного вызова.

& the reason for your question is that **every process wants base time quantum which is used as how much time the process will get the CPU for its execution in milliseconds and this is calculated as**

```
time={
     if static_priority<120

       (140-static_priority)*20 

     if static_priority>=120

       (140-static_priority)*5

```

**so The sys\_nice( )service routine handles the nice( )system call. Although the nice\_value may have any value, absolute values larger than 40 are trimmed down to 40. Traditionally, negative values correspond to requests for priority increments and require superuser privileges, while positive ones correspond to requests for priority decreases. In the case of a negative nice\_value, the function
invokes the capable( ) function to verify whether the process has a CAP\_SYS\_NICE capability. Moreover, the function invokes the security\_task\_setnice( )security hook.** so in the end the nice\_value is used to calculate the static priority & then this static priority is used for calculation of base time quantum.

**so it's clear that -ve values are used for increment the priority so needs super user access & +ve values are used for decrease the priority so no need of super user access.**



Да - он получает NICER по мере увеличения числа и MEANER по мере того, как число уменьшается. Таким образом, этот процесс рассматривается как «более дружелюбный», когда он не берет на себя все ресурсы и «противный», поскольку он становится более жадным с ресурсами.

Думайте об этом как о «хороших» точках - чем лучше вы относитесь к другим, тем больше у вас очков.