Команда nice
позволяет вам настроить приоритет планирования («правильность») программы. Во всех Unix-подобных системах, которые я использовал, милость определяется диапазоном целых чисел, где -20 - наиболее предпочтительный приоритет планирования, 0 - по умолчанию, а 19 - наименее благоприятный.
Наличие 0 в качестве точности по умолчанию достаточно интуитивно понятно, но почему в качестве конечных точек диапазона были выбраны -20 и 19? Почему бы не -128 и 127, которые бы точно вписались в 8-битный байт со знаком? Или почему бы не от -100 до 100, что более интуитивно понятно для людей с десятичными мыслями, или аналогично, но немного более эргономично, от -99 до 99? Был ли выбран диапазон от -20 до 19 произвольно, или он имеет какое-то отношение к внутренним компонентам планировщика, с которым nice
первоначально взаимодействовал? (Я понимаю, что сегодня таких отношений нет, по крайней мере для Linux, чей планировщик использует приоритеты в диапазоне от 0 до 139. Однако меня интересуют исторические причины диапазона от -20 до 19.)
min(127, (recent CPU usage on a scale of 0 to 15) + 50 + pp->p_nice - 20
), а приоритеты <25 были зарезервированы для процессы делают бесперебойные вещи. Так что милость должна была быть ограниченным диапазоном.