El nice
comando le permite ajustar la prioridad de programación ("amabilidad") de un programa. En todos los sistemas tipo Unix que he usado, la simplicidad se especifica mediante un rango de enteros, donde -20 es la prioridad de programación más favorable, 0 es el valor predeterminado y 19 es el menos favorable.
Tener 0 como valor predeterminado es lo suficientemente intuitivo, pero ¿por qué se seleccionaron -20 y 19 como puntos finales del rango? ¿Por qué no -128 y 127, que cabría exactamente en un byte de 8 bits con signo? ¿O por qué no -100 a 100, que es más intuitivo para los humanos con mentalidad decimal, o de manera similar pero ligeramente más ergonómica, -99 a 99? ¿Se seleccionó arbitrariamente el rango de -20 a 19, o tiene alguna relación con las partes internas del planificador que nice
originalmente interactuó? (Entiendo que hoy no existe tal relación, al menos para Linux, cuyo planificador utiliza prioridades en el rango de 0 a 139. Sin embargo, estoy interesado en las razones históricas del rango de -20 a 19).
min(127, (recent CPU usage on a scale of 0 to 15) + 50 + pp->p_nice - 20
), y las prioridades <25 estaban reservadas para procesos que hacen cosas ininterrumpidas. Así que la amabilidad tenía que ser un rango limitado.