En ps salida de, pri_baz se calcula como pp->priority + 100 y pp->priority es el prio valor del núcleo. Esto se describe como
La prioridad de un proceso va de 0..MAX_PRIO -1, la prioridad RT válida es 0..MAX_RT_PRIO -1 y SCHED_NORMAL /SCHED_BATCH las tareas están en el rango MAX_RT_PRIO ..MAX_PRIO -1. Los valores de prioridad están invertidos:menor p->prio valor significa mayor prioridad.
El MAX_USER_RT_PRIO El valor permite que la prioridad de RT máximo real sea independiente del valor exportado al espacio del usuario. Esto permite que los subprocesos del núcleo establezcan su prioridad en un valor superior al de cualquier tarea del usuario. Nota:MAX_RT_PRIO no debe ser menor que MAX_USER_RT_PRIO .
Entonces, el rango en el kernel cubre 140 valores, de 0 a MAX_PRIO –1 (139).
Sin embargo, la prioridad mínima FIFO y RT es 1, y esto explica el valor faltante:los valores de entrada (al menos, eso se puede configurar desde el espacio de usuario, usando sched_setscheduler ) van de 1 a 99, y el kernel los convierte a prio valores usando la fórmula MAX_RT_PRIO – 1 – prioridad , dando valores de 0 a 98.