スリープ状態のプロセスは同じCPU時間を取得しますか?


11

一部のプロセスは、sleepステータスのほとんどの「生存」を費やしています。デーモン、サーバー、一般的なリスナーが思い浮かびます。彼らがその状態で同じCPU時間を取得するかどうか疑問に思っていましたか?私のラップトップのようなものでは、それはあまり最適ではありません!

私のオペレーティングシステムコースでは、スケジューリングにはさまざまなアプローチがあることを漠然と覚えています。現在のLinux(Debian)ボックスについてもっと知りたいです。

現在のスケジュールポリシーを確認するにはどうすればよいですか?動的に変更できますか?きれいなユーザーランドアプリをお持ちですか?

回答:


15

プロセスは、スリープしている間はCPUリソースを消費しません。カーネルがそれらを調整しなければならないので、それらはいくらかのオーバーヘッドを追加するかもしれませんが、それは非常に重要ではありません。

ただし、質問の言い方が原因で、LinuxのCFS(Completely Fair Scheduler)を使用すると、プログラムがCPU時間をスリープ時間に比例して増加させようとすること、つまり、プロセスが大量にスリープする場合に言及する必要があります、再開すると優先度が高くなります。

CFSの説明については、http://www.ibm.com/developerworks/linux/library/l-completely-fair-scheduler/を参照してください


2
私はこの回答に投票したいのですが、現在の担当者のスコア(6,666)は変更するには美しすぎます。とにかく、私はとにかくそれをやっています...
rahmu '19年

2
@rahmu noooo!私の美しいストレートシックス!今はセブンズに行かなければならない。
Shawn J. Goff、2011年

4

定義上、スリーププロセスはCPUで実行されていないため、使用しているCPU時間はゼロです。


それが本当である場合、スリープタイムが完了し、実行を再開する必要があることをマシンはどのようにして知るのでしょうか。
Dave Goldsmith
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.