Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / Prozesse und IPC / Prioritäten einstellen

Prioritäten einstellen

Kategorie: Prozesse und IPCErstellt: 02.10.2007 - 23:58 Geändert: 23.10.2007 - 23:20
Autor: Stefan Abu Salah
0Wie wir bereits gelernt haben besitzt jeder Prozess neben der statischen Priorität eine dynamische. Diese dynamische Priorität (auch nice-Wert genannt) können inerhalb eines Wertebereichs von -20 bis +19 eingestellt werden. -20 ist hierbei der Wert für die höchste, +19 ist der Wert für die geringste Priorität. Dynamische Prioritäten kleiner Null (höherer Prioritäten) können ausschließlich von root vergeben werden. Ein normaler Benutzer kann seine Prozessprioritäten nur verschlechtern. Die dynamische Priorität kann auch vom Scheduler während der Laufzeit geändert werden, wenn dies nötig erscheint.

nice


Mit nice ist es möglich die dynamische Priorität eines zu startenden Prozesses einzustellen. Hierzu stellt man vor den eigentlichen Kommandoaufruf das Programm nice gefolgt von der gewünschten Priorität (z.B. nice -n WERT KOMMANDO). Normalen Benutzern ist es ausschließlich möglich die Priorität ihrer Prozesse zu verschlechtern. Insbesondere bei langwierigen, startk CPU-belastenden Aktionen (z.B. Compilieren etc.) ist es guter Stil eine niedrigere Priorität einzustellen, damit andere Benutzer nicht bei Ihrer Arbeit am System gestört werden. Dem Benutzer root ist es jedoch auch erlaubt Prozesse mit höherer Priorität zu starten.
Beispiel:

stefan@london:~$ nice -n +19 sleep 60 &
[1] 13200
stefan@london:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 13131 13130 0 75 0 - 1411 wait pts/2 00:00:00 bash
0 S 1000 13200 13131 0 95 19 - 688 - pts/2 00:00:00 sleep
0 R 1000 13201 13131 0 76 0 - 575 - pts/2 00:00:00 ps

stefan@london:~$ nice -n -1 sleep 20 &
nice: cannot set priority: Permission denied
[1] 5275
[1] Exit 1 nice -n -1 sleep 20

root@london:/home/stefan# nice -n -1 sleep 20 &
[1] 13260
root@london:/home/stefan# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 13247 13131 0 77 0 - 925 wait pts/2 00:00:00 su
0 S 0 13248 13247 0 75 0 - 999 wait pts/2 00:00:00 bash
4 S 0 13260 13248 0 76 -1 - 687 - pts/2 00:00:00 sleep
0 R 0 13261 13248 0 76 0 - 575 - pts/2 00:00:00 ps

Dynamische Prioritäten kleiner Null (höhere Prioritäten) können ausschließlich von root vergeben werden. Ein normaler Benutzer kann seine Prozessprioritäten nur verschlechtern.


Einige Optionen von nice:
-n N KOMMANDO - Einstellen der Prozesspriorität des KOMMANDOs (default 10)


renice


Wenn nötig kann man mit dem Programm renice zur Laufzeit eines Programmes dessen Priorität ändern. Die Handhabung von renice entspricht im Wesentlichen der von nice, jedoch wird hier nicht das Kommado übergeben, sondern die dem Prozess zugehörige ID.
Beispiel:

stefan@london:~$ nice -n +19 sleep 60 &
[1] 13298
stefan@london:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 13131 13130 0 75 0 - 1411 wait pts/2 00:00:00 bash
0 S 1000 13298 13131 0 99 19 - 687 - pts/2 00:00:00 sleep
0 R 1000 13299 13131 0 77 0 - 575 - pts/2 00:00:00 ps

stefan@london:~$ renice +15 13298
13298: old priority 19, new priority 15
stefan@london:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 13131 13130 0 75 0 - 1413 wait pts/2 00:00:00 bash
0 S 1000 13298 13131 0 95 15 - 687 - pts/2 00:00:00 sleep
0 R 1000 13304 13131 0 76 0 - 574 - pts/2 00:00:00 ps


Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / Prozesse und IPC / Prioritäten einstellen
simplum