In ps
Ausgabe von , pri_baz
wird als pp->priority + 100
berechnet , und pp->priority
ist die prio
Wert aus dem Kernel. Dies wird als
Die Priorität eines Prozesses geht von 0..MAX_PRIO
-1, gültige RTpriorität ist 0..MAX_RT_PRIO
-1 und SCHED_NORMAL
/SCHED_BATCH
Aufgaben liegen im Bereich MAX_RT_PRIO
..MAX_PRIO
-1. Prioritätswerte sind invertiert:kleiner p->prio
Wert bedeutet höhere Priorität.
Die MAX_USER_RT_PRIO
value ermöglicht es, dass die tatsächliche MaximumRT-Priorität von dem in den Benutzerbereich exportierten Wert getrennt ist. Dadurch können Kernel-Threads ihre Priorität auf einen höheren Wert als alle Benutzertasks setzen. Hinweis:MAX_RT_PRIO
darf nicht kleiner als MAX_USER_RT_PRIO
sein .
Der Bereich im Kernel umfasst also 140 Werte, von 0 bis MAX_PRIO
–1 (139).
Die minimale FIFO- und RT-Priorität ist jedoch 1, und dies erklärt den fehlenden Wert:die Eingabewerte (zumindest, die vom Benutzerbereich aus mit sched_setscheduler
gesetzt werden können ) gehen von 1 bis 99, und der Kernel konvertiert diese in prio
Werte mit der Formel MAX_RT_PRIO
– 1 – Priorität , mit Werten von 0 bis 98.