Desempenho da CPU no comando sleep

Desempenho da CPU no comando sleep

Esta é uma questão bastante iniciante. Eu me pergunto o que acontece quando sleepo comando é acionado a partir de um script bash, por exemplo. Esse trabalho ainda estaria em execução, com menos prioridade?

Responder1

Tipicamente,sleepé oGNUsleepprograma. Este programa chama a função GNUxnanosleep, que por sua vez chama o Linuxnanosleepchamada do sistema. E:

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.

Portanto, o processo não está, por definição, em execução (qualquer que seja a prioridade), mas suspenso.

Testando isso:

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

Oestado do processoé SN:

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

Ignore o N, acho que era assim quando começou. Portanto, o estado efetivo de sleepé interruptible sleep.

informação relacionada