sleep 指令下的 CPU 效能

sleep 指令下的 CPU 效能

這是一個初學者問題。sleep例如,我想知道從 bash 腳本觸發命令時會發生什麼。該作業仍會運行,但優先順序較低?

答案1

通常,sleep是個GNUsleep程式.該程式呼叫GNU函數xnanosleep,這又呼叫 Linuxnanosleep系統調用。和:

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.

因此,根據定義,該進程並未運行(無論優先順序如何),而是掛起。

測試一下:

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

行程狀態SN

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

忽略它N,我猜這就是它開始時的樣子。所以 的有效狀態sleepinterruptible sleep

相關內容