睡眠进程是否获得相同的CPU时间?


11

一些流程将大部分“生命”花费在某种sleep状态下。想到了守护程序,服务器和常规侦听器。我想知道他们在那种状态下是否获得相同的CPU时间?在像我的笔记本电脑这样的设备上,这不是最佳选择!

我在操作系统课程中模糊地记得,调度有不同的方法。我有兴趣了解有关当前Linux(Debian)机器的更多信息。

我如何了解当前的调度策略?我可以动态更改它们吗?拥有漂亮的Userland应用程序?

Answers:


15

进程在休眠时不消耗CPU资源。它们可能会增加一些开销,因为内核必须将它们弄乱,但这是微不足道的。

但是,由于问题的措辞方式,我应该提到的是,在使用Linux的CFS(完全公平调度程序)时,它会尝试使程序增加CPU时间,使其与睡眠时间成比例-也就是说,如果一个进程睡眠很多,恢复后,它将获得更高的优先级。

有关CFS的描述,请参见http://www.ibm.com/developerworks/linux/library/l-completely-fair-scheduler/


2
我想将这个答案投赞成票,但您目前的代表得分(6,666)太漂亮了,无法更改。嗯,无论如何我都在做...
rahmu 2011年

2
@rahmu noooo!我美丽的直六岁!我现在只得七岁。
肖恩·高夫

4

根据定义,睡眠进程未在cpu上执行,因此很明显它正在使用的cpu时间为零。


如果是这样,那么机器如何知道睡眠时间何时结束以及应该重新开始执行?
Dave Goldsmith,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.