4

Linux Kernel 中是否可以同时存在两个以上的调度策略?FIFO 和 Round Robin 可以在同一台机器上工作吗?

4

2 回答 2

10

是的,Linux 支持不少于 4 种不同的任务调度方法:SCHED_BATCH、SCHED_FAIR、SCHED_FIFO 和 SCHED_RR。

无论采用何种调度方法,所有任务也有一个固定的硬优先级(batch 和 fair 为 0,FIFO 和 RR 的 RT 调度方法为 1-99)。任务首先按优先级选择 - 最高优先级获胜。

然而,有几个任务可以以相同的优先级运行,这就是调度方法的作用:一个公平的任务只会运行它分配的权重(权重来自称为任务好级别的软优先级)份额对于其他公平任务的 CPU 时间,FIFO 任务将运行一个固定的时间片,然后让给另一个任务(具有相同优先级 - 更高优先级的任务总是获胜),并且 RR 任务将一直运行直到它阻止其他具有相同任务的任务优先事项。

请注意,我上面写的内容准确但不完整,因为它没有考虑提前 CPU 预留功能,但它给出了不同调度方法相互交互的详细信息。

于 2012-03-20T06:36:04.913 回答
1

是的 !!现在有一天,我们在操作系统的不同阶段有不同的调度策略.. 循环通常在核心执行之前完成...... fifo 完成,在新进程的开始阶段...... !!!

于 2012-03-19T18:02:46.513 回答