nice (Unix)

nice
Basisdaten

EntwicklerBell Laboratories
BetriebssystemUnix und unixoide Systeme
KategorieSystemsoftware

nice ist ein Befehl von Unix-ähnlichen Betriebssystemen. Das Programm wird direkt auf einen Systemaufruf abgebildet.[1] Mit nice ist es möglich, ein Kommando mit einer bestimmten Priorität zu starten, sodass der dann ausgeführte Prozess im Gegensatz zu anderen Prozessen mehr oder weniger CPU-Zeit erhält.[2] Der nice-Wert wird als Ganzzahl angegeben und erstreckt sich von −20 bis 19: hierbei ist −20 die höchste Priorität und 19 die geringste. Der Wert ist standardmäßig 0 und beschreibt eine statische Priorität für jeden Thread.[3]

Einsatz und Wirkung

Der Einsatz von nice ist immer dann sinnvoll, wenn auf Mehrbenutzersystemen wie Unix Nutzer ihren Prozessen eine Gewichtung zuordnen möchten. So ist es möglich, einem rechenintensiven Prozess eine geringere Priorität und somit einen hohen nice-Wert zuzuordnen, um andere Nutzer nicht zu beeinträchtigen. Hohe Prioritäten, d. h. −1 bis −20, können nur vom Superuser vergeben werden.[3]

Um z. B. einen rechenintensiven Prozess wie die Berechnung des Speicherplatzverbrauchs der Dateien eines Verzeichnisses (hier: du -s /) im Hintergrund auszuführen, ohne andere Programme zu beeinträchtigen, kann dem Prozess ein höherer Nice-Wert zugewiesen werden:

nice -n 19 du -s /

Ähnliche Befehle

Das ähnliche Kommando renice kann genutzt werden, um die Priorität eines laufenden Prozesses zu ändern.[4]

Unter Linux ist darüber hinaus der Befehl ionice verfügbar, um auf ähnliche Weise das Scheduling der I/O statt der CPU-Zeit zu beeinflussen.[5]

Einzelnachweise

  1. nice(2) – Debian GNU/Linux Systemaufrufe Handbuchseite
  2. nice(1) – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite
  3. a b Andrew S. Tanenbaum, Herbert Bos: Modern Operating Systems. Hrsg.: Pearson. 2014, ISBN 978-1-292-06142-9, 10.3 Proccesses in Linux, S. 747.
  4. renice(1) – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite
  5. ionice(1) – Debian GNU/Linux Ausführbare Programme oder Shell-Befehle Handbuchseite