Linux内核中的调度策略

Sha*_*dra 3 operating-system scheduling scheduled-tasks round-robin linux-kernel

Linux内核中是否可以同时使用两个以上的调度策略?FIFO和Round Robin可以在同一台机器上运行吗?

gby*_*gby 9

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

无论调度方法如何,所有任务也具有固定的硬优先级(对于批处理和公平,其为0,对于FIFO和RR的RT计划方法,为1-99).任务首先是优先选择 - 最高优先级获胜.

但是,有几个任务可用于以相同的优先级运行,这就是调度方法的用武之地:公平的任务只会针对其分配的加权(权重来自称为任务良好级别的软优先级)共享关于其他公平任务的CPU时间,FIFO任务将在屈服于另一个任务(具有相同优先级 - 优先级较高的任务总是获胜)之前运行固定的时间片,并且RR任务将运行直到它阻止忽略具有相同任务的其他任务优先.

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