La nice
commande vous permet d'ajuster la priorité de planification ("gentillesse") d'un programme. Sur tous les systèmes de type Unix que j'ai utilisés, la gentillesse est spécifiée par une plage d'entiers, où -20 est la priorité de planification la plus favorable, 0 est la valeur par défaut et 19 est la moins favorable.
Avoir 0 comme finesse par défaut est assez intuitif, mais pourquoi -20 et 19 ont-ils été sélectionnés comme points de terminaison de la plage? Pourquoi pas -128 et 127, ce qui correspondrait exactement à un octet 8 bits signé? Ou pourquoi pas -100 à 100, ce qui est plus intuitif pour les humains décimaux, ou de manière similaire mais légèrement plus ergonomique, -99 à 99? La plage de -20 à 19 a-t-elle été choisie arbitrairement, ou a-t-elle une relation avec les éléments internes de l'ordonnanceur qui ont nice
initialement interagi avec? (Je comprends qu'il n'y a pas une telle relation aujourd'hui, du moins pour Linux, dont le planificateur utilise des priorités dans la plage de 0 à 139. Cependant, je suis intéressé par les raisons historiques de la plage de -20 à 19.)
min(127, (recent CPU usage on a scale of 0 to 15) + 50 + pp->p_nice - 20
), et les priorités <25 étaient réservées pour processus faisant des choses sans interruption. La gentillesse devait donc être une sorte de gamme limitée.