Il nice
comando consente di regolare la priorità di pianificazione ("gentilezza") di un programma. Su tutti i sistemi simili a Unix che ho usato, la gentilezza è specificata da un intervallo di numeri interi, dove -20 è la priorità di pianificazione più favorevole, 0 è il valore predefinito e 19 è il meno favorevole.
Avere 0 come valore predefinito predefinito è abbastanza intuitivo, ma perché -20 e 19 sono stati selezionati come endpoint dell'intervallo? Perché non -128 e 127, che si adatterebbero esattamente in un byte con segno a 8 bit? O perché non da -100 a 100, che è più intuitivo per gli esseri umani decimali, o in modo simile ma leggermente più ergonomico, da -99 a 99? L'intervallo da -20 a 19 è stato selezionato in modo arbitrario o ha qualche relazione con gli interni dello scheduler che nice
originariamente si interfacciavano? (Capisco che non esiste una relazione di questo tipo oggi, almeno per Linux, il cui programmatore utilizza priorità nell'intervallo da 0 a 139. Tuttavia, sono interessato alle ragioni storiche per l'intervallo da -20 a 19).
min(127, (recent CPU usage on a scale of 0 to 15) + 50 + pp->p_nice - 20
), e le priorità <25 erano riservate per processi che fanno cose ininterrotte. Quindi la gentilezza doveva essere una specie di gamma limitata.