Nach der Manpage und Wikipedia; nice
reicht von -20 bis 20.
Bei der Ausführung des folgenden Befehls stelle ich jedoch fest, dass einige Prozesse einen nicht numerischen Wert haben, z. B. (-). Siehe die sechste Spalte von links mit dem Titel "NI".
Was bedeutet eine Nettigkeit von (-)?
ps axl
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 0 1 0 20 0 19356 1548 poll_s Ss ? 0:00 /sbin/init
1 0 2 0 20 0 0 0 kthrea S ? 0:00 [kthreadd]
1 0 3 2 -100 - 0 0 migrat S ? 0:03 [migration/0]
1 0 4 2 20 0 0 0 ksofti S ? 0:51 [ksoftirqd/0]
1 0 5 2 -100 - 0 0 cpu_st S ? 0:00 [migration/0]
5 0 6 2 -100 - 0 0 watchd S ? 0:09 [watchdog/0]
1 0 7 2 -100 - 0 0 migrat S ? 0:08 [migration/1]
1 0 8 2 -100 - 0 0 cpu_st S ? 0:00 [migration/1]
1 0 9 2 20 0 0 0 ksofti S ? 1:03 [ksoftirqd/1]
5 0 10 2 -100 - 0 0 watchd S ? 0:09 [watchdog/1]
1 0 11 2 -100 - 0 0 migrat S ? 0:05 [migration/2]
Ich habe 3 Server überprüft: Ubuntu 12.04 und CentOs 6.5 und Mac OsX 10.9. Nur die Maschinen Ubuntu und CentOs haben nicht-stellige Werte für die Genauigkeit.
[brackets]
sind tatsächlichkthread
s (Kernel-Threads).Antworten:
Beachten Sie, dass diese auch einen PRI- Wert von -100 haben. Dies zeigt an, dass der Prozess als Echtzeitprozess geplant ist. Echtzeitprozesse verwenden keine netten Scores und haben immer eine höhere Priorität als normale, unterscheiden sich jedoch in Bezug aufeinander.
Sie können Details pro Prozess mit dem
chrt
Befehl anzeigen (zchrt -p 3
. B. ). Eine von Ihren -100 wird wahrscheinlich eine "aktuelle Planungspriorität" von 99 melden - im Gegensatz zunice
hier sind hohe Werte höher priorisiert, woraus wahrscheinlich oben die-100
Nummer erstellt wurde. Nicht-Echtzeit-Prozesse zeigen immer eine "aktuelle Planungspriorität" von 0 an,chrt
unabhängig von ihrem Wert, und unter Linux eine "aktuelle Planungsrichtlinie" vonSCHED_OTHER
.Einige Versionen von
top
scheinen Echtzeitprozesse mitrt
unter PRI und dann0
unter NI zu melden .quelle
-100
, konnte es aber nicht herausfinden :)@ Goldlilocks Antwort hat mich angewiesen, die Forschung auf dem richtigen Weg zu betreiben. Dies sind meine Forschungsdetails.
Scheduling-Algorithmen für Prozesse verfügbar
Linux unterstützt 3 Planungsrichtlinien.
SCHED_FIFO
,SCHED_RR
UndSCHED_OTHER
.SCHED_OTHER
ist die Standardrichtlinie für den universellen Zeitverteilungsplaner, die von den meisten Prozessen verwendet wird.SCHED_FIFO
undSCHED_RR
sind für spezielle zeitkritische Anwendungen gedacht, die eine präzise Steuerung der Art und Weise benötigen, in der ausführbare Prozesse zur Ausführung ausgewählt werden.Prioritäten zur Verfügung
Um einen auszuführenden Prozess auszuwählen, muss der Linux-Scheduler die Priorität jedes Prozesses berücksichtigen. Tatsächlich gibt es zwei Arten von Prioritäten.
Jedem Prozess wird ein statischer Prioritätswert zugewiesen, und die Planung hängt von dieser statischen Priorität ab. Geplante Prozesse
SCHED_OTHER
haben statische Priorität 0; Prozesse, die unterSCHED_FIFO
oderSCHED_RR
mit einer statischen Priorität im Bereich1
von99
(99 ist die höchste) geplant sind.Die
sys_sched_get_priority_max( )
Routine gibt die statische Priorität des Prozesses zurück,0
bei Nicht-Echtzeit-Prozessen.Die dynamische Priorität wird für Nicht-Echtzeitanwendungen verwendet.
Alle Echtzeitprozesse haben eine höhere Priorität als normale Prozesse. Linux implementiert Echtzeitprioritäten gemäß POSIX. Das folgende Diagramm kann einen Überblick darüber geben, wie die Prozesse mit ihren Prioritäten geplant sind.
Jetzt können wir den folgenden Befehl ausführen, um die Echtzeitpriorität eines Prozesses zu überprüfen. Hier verwende ich Watchdog, da es einen netten Wert hatte, der als - aufgeführt wird.
Dies ist die Ausgabe des obigen Befehls. Wie wir sehen können, ist die Echtzeitpriorität 99, was die höchstmögliche Priorität ist.
Nach meinem Verständnis kann die Echtzeitpriorität also einen Maximalwert von 99 annehmen und es kann keinen netten Wert darüber geben. Aus diesem Grund erhalten wir die schöne Ausgabe als - für Watchdog und andere Systemprozesse.
Verweise
http://oreilly.com/catalog/linuxkernel/chapter/ch10.html http://atipaday.wordpress.com/2008/08/19/atad-21-linux-process-priority-range/
quelle