スリープコマンドでのCPUパフォーマンス

スリープコマンドでのCPUパフォーマンス

sleepこれはかなり初心者的な質問です。たとえば、bash スクリプトからコマンドがトリガーされるとどうなるのか疑問に思います。そのジョブは優先度は低くなりますが、引き続き実行されますか?

答え1

通常、sleepそれはGNUsleepプログラム。このプログラムはGNU関数を呼び出すxnanosleep、これはLinuxを呼び出しますnanosleepシステムコール。そして:

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。最初はそのようになっていたと思います。したがって、 の有効な状態はsleepですinterruptible sleep

関連情報