Mit dem nice
Befehl können Sie die Planungspriorität ("Nizza") eines Programms anpassen. Auf allen Unix-ähnlichen Systemen, die ich verwendet habe, wird die Genauigkeit durch eine Reihe von Ganzzahlen angegeben, wobei -20 die günstigste Planungspriorität, 0 die Standardeinstellung und 19 die ungünstigste ist.
0 als Standardfeinheit zu haben, ist intuitiv genug, aber warum wurden -20 und 19 als Endpunkte des Bereichs ausgewählt? Warum nicht -128 und 127, die genau in ein 8-Bit-Byte mit Vorzeichen passen? Oder warum nicht -100 bis 100, was für dezimal denkende Menschen intuitiver ist, oder ähnlich, aber etwas ergonomischer, -99 bis 99? Wurde der Bereich -20 bis 19 willkürlich ausgewählt oder besteht eine Beziehung zu den Interna des Schedulers, mit dem nice
ursprünglich eine Schnittstelle bestand? (Ich verstehe, dass es heute keine solche Beziehung gibt, zumindest für Linux, dessen Scheduler Prioritäten im Bereich von 0 bis 139 verwendet. Ich bin jedoch an den historischen Gründen für den Bereich von -20 bis 19 interessiert.)
min(127, (recent CPU usage on a scale of 0 to 15) + 50 + pp->p_nice - 20
) und Prioritäten <25 reserviert wurden Prozesse, die unterbrechungsfreie Dinge tun. Die Freundlichkeit musste also in einem begrenzten Bereich liegen.