CPU-Leistung beim Sleep-Befehl

CPU-Leistung beim Sleep-Befehl

Dies ist eher eine Anfängerfrage. Ich frage mich, was passiert, wenn sleepder Befehl beispielsweise von einem Bash-Skript ausgelöst wird. Würde dieser Job weiterhin ausgeführt, allerdings mit niedrigerer Priorität?

Antwort1

Normalerweisesleepist derGNUsleepProgramm. Dieses Programm ruft die GNU-Funktionxnanosleep, das wiederum den LinuxnanosleepSystemaufruf. Und:

nanosleep()  suspends  the execution of the calling thread until either
at least the time specified in *req has elapsed, or the delivery  of  a
signal  that triggers the invocation of a handler in the calling thread
or that terminates the process.

Der Prozess wird also per Definition nicht ausgeführt (unabhängig von der Priorität), sondern ist angehalten.

Das hier testen:

sleep 10 & ps aux | grep $!
[1] 25682
muru  25682  0.0  0.0   7196   620 pts/13   SN   04:10   0:00 sleep 10

DerProzesszustandIst SN:

   S    interruptible sleep (waiting for an event to complete)
   N    low-priority (nice to other users)

Ignorieren Sie das N, ich nehme an, so war es am Anfang. Der effektive Zustand von sleepist also interruptible sleep.

verwandte Informationen