O nice
comando permite ajustar a prioridade de agendamento ("gentileza") de um programa. Em todos os sistemas do tipo Unix que usei, a gentileza é especificada por um número inteiro, onde -20 é a prioridade de agendamento mais favorável, 0 é o padrão e 19 é o menos favorável.
Ter 0 como a gentileza padrão é bastante intuitivo, mas por que -20 e 19 foram selecionados como pontos finais do intervalo? Por que não -128 e 127, que caberia exatamente em um byte de 8 bits assinado? Ou por que não -100 a 100, o que é mais intuitivo para humanos de mente decimal, ou similarmente, mas um pouco mais ergonomicamente, -99 a 99? O intervalo de -20 a 19 foi selecionado arbitrariamente ou tem algum relacionamento com os internos do agendador com os quais a nice
interface original era originalmente? (Entendo que hoje não existe esse relacionamento, pelo menos para o Linux, cujo planejador usa prioridades no intervalo de 0 a 139. No entanto, estou interessado nos motivos históricos do intervalo de -20 a 19).
min(127, (recent CPU usage on a scale of 0 to 15) + 50 + pp->p_nice - 20
), e as prioridades <25 foram reservadas para processos fazendo coisas ininterruptas. Então, a gentileza tinha que ser um tipo limitado.