为什么我们在CFS中定义Scheduler时间片?

具体来说,我是在CFS补丁合并后讨论Linux内核调度系统。

在任何地方都提到过,在CFS(完全公平的调度程序)中没有固定的进程时间片,并且时间片是根据在系统中运行的进程数量的平均分配来计算的,因为它们在硬件中并行执行。 图解释更多.. 处理器时间的划分

仍然为什么我们在内核中定义调度程序时间片? http://lxr.free-electrons.com/source/include/linux/sched/rt.h#L62


就像链接中的评论所说,这是默认的时间片。 对于实施的每个调度程序,如果有意义的话,时间片的值可能会改变。

例如,在具有SCHED_RR策略的实时调度程序中,您可以看到使用默认时间片,而对于SCHED_FIFO策略,时间片为0,因为具有SCHED_FIFO策略的任务必须先占先其他任务。

在完全公平调度的情况下,通过调用sched_sliceget_rr_interval_fair计算时间片。 它根据正在运行的任务的数量及其权重计算切片(这反过来又由进程的好程度决定)。

链接地址: http://www.djcxy.com/p/14853.html

上一篇: Why we define Scheduler timeslice in CFS also?

下一篇: Scheduling from thread in kernel space