Dans ps la sortie, pri_baz est calculé comme pp->priority + 100 , et pp->priority est le prio valeur du noyau. Ceci est décrit comme
La priorité d'un processus va de 0..
MAX_PRIO-1, la priorité RT valide est 0..MAX_RT_PRIO-1, etSCHED_NORMAL/SCHED_BATCHles tâches sont dans la plageMAX_RT_PRIO..MAX_PRIO-1. Les valeurs de priorité sont inversées :p->prioinférieur la valeur signifie une priorité plus élevée.Le
MAX_USER_RT_PRIOpermet à la priorité maximaleRT réelle d'être séparée de la valeur exportée dans l'espace utilisateur. Cela permet aux threads du noyau de définir leur priorité sur une valeur supérieure à toute tâche utilisateur. Remarque :MAX_RT_PRIOne doit pas être inférieur àMAX_USER_RT_PRIO.
Ainsi, la plage dans le noyau couvre 140 valeurs, de 0 à MAX_PRIO –1 (139).
Cependant, la priorité minimale FIFO et RT est de 1, ce qui explique la valeur manquante :les valeurs d'entrée (au moins, qui peuvent être définies depuis l'espace utilisateur, en utilisant sched_setscheduler ) vont de 1 à 99, et le noyau les convertit en prio valeurs utilisant la formule MAX_RT_PRIO – 1 – priorité , donnant des valeurs de 0 à 98.