我读过这本书
http://www.amazon.com/Professional-Kernel-Architecture-Wolfgang-Mauerer/dp/0470343435
现在我研究调度程序,linux内核现在正在使用CFS进行正常处理
但是这本书有时会说,调度程序会选择最长的等待时间
在runqueue中运行以进行运行,有时候说调度程序将选择vruntime
在runqueue中最小
哪个是正确的?
答案 0 :(得分:0)
两者都是正确的 - 两个人用不同的词语说同样的话。
要获取下一个进程,调度程序将选择具有最小vruntime的任务。即,运行最少的过程。
进程仅在运行时累积vruntime。因此,通过选择具有最小vruntime的任务,我们选择运行最少的任务。 另一方面,一个等待很多的过程 - 不会累积vruntime。因此它的运行时间很短。如果它的等待时间最长 - 它的运行时间将是最低的 - 它将被选中以便下一次运行。
说同样的事情的方式不同。