有些进程的大部分“生命”都处于某种sleep
状态。我想到的是守护进程、服务器和一般监听器。我想知道他们在该状态下是否获得相同的 CPU 时间?在像我的笔记本电脑这样的设备上,这不是最佳选择!
我依稀记得在我的操作系统课程中,有不同的调度方法。我有兴趣了解有关我当前的 Linux (Debian) 机器的更多信息。
我如何了解我当前的日程安排政策?我可以动态更改它们吗?有一个漂亮的用户态应用程序吗?
答案1
进程在休眠时不消耗 CPU 资源。它们可能会增加一些开销,因为内核必须处理它们,但这是微不足道的。
然而,由于问题的措辞方式,我应该提到,当使用 Linux 的 CFS(完全公平调度程序)时,它会尝试为程序提供与其睡眠时间成比例的增加的 CPU 时间 - 也就是说,如果一个进程睡眠很多,当它恢复时,它会获得更高的优先级。
看http://www.ibm.com/developerworks/linux/library/l-completely-fair-scheduler/有关 CFS 的说明。
答案2
根据定义,睡眠进程不在 cpu 上执行,因此显然它使用的 cpu 时间量为零。