Rendimiento de la CPU en el comando de suspensión

Rendimiento de la CPU en el comando de suspensión

Esta es más bien una pregunta para principiantes. Me pregunto qué sucede cuando sleepel comando se activa desde un script bash, por ejemplo. ¿Ese trabajo seguiría ejecutándose, con menos prioridad?

Respuesta1

Típicamente,sleepes elÑUsleepprograma. Este programa llama a la función GNUxnanosleep, que a su vez llama a Linuxnanosleepllamada al sistema. Y:

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.

Entonces, el proceso, por definición, no está en ejecución (cualquiera que sea la prioridad), sino suspendido.

Probando esto:

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

Elestado del procesoes SN:

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

Ignora el N, supongo que así era cuando empezó. Entonces el estado efectivo de sleepes interruptible sleep.

información relacionada