具体来说,我在谈论CFS补丁合并后的Linux内核调度系统。
在所有地方都提到在CFS(完全公平的调度程序)中没有固定的时间片,并且基于系统中运行的进程数量的相等划分来计算时间片,因为它们在硬件中并行执行。图解释了更多..
为什么我们在内核中定义调度程序时间片? http://lxr.free-electrons.com/source/include/linux/sched/rt.h#L62
答案 0 :(得分:4)
与链接中的评论一样,这是默认时间片。对于实现的每个调度程序,如果有意义的话,时间片的值可能会改变。
例如,在real time scheduler with the SCHED_RR
policy中,您可以看到使用默认时间片,而对于SCHED_FIFO
策略,时间片为0,因为具有SCHED_FIFO
策略的任务必须抢占其他任务。
在完全公平调度的情况下,通过调用get_rr_interval_fair
在sched_slice
中计算时间片。它根据正在运行的任务的数量及其权重计算切片(反过来由进程' nice 级别决定)。