一尘不染

Linux SCHED_OTHER,SCHED_FIFO和SCHED_RR-差异

linux

有人可以解释SCHED_OTHER,SCHED_FIFO和SCHED_RR之间的区别吗?

谢谢


阅读 1279

收藏
2020-06-03

共1个答案

一尘不染

SCHED_FIFO和SCHED_RR是所谓的“实时”策略。它们执行POSIX标准指定的固定优先级实时调度。具有这些策略的任务会抢占其他所有任务,因此很容易陷入饥饿(如果它们不释放CPU)。

SCHED_FIFO和SCHED_RR之间的区别在于,在具有相同优先级的任务之间,SCHED_RR执行具有特定时间片的循环。SCHED_FIFO则需要任务来显式产生处理器。

SCHED_OTHER是常见的循环式分时调度策略,该调度策略根据系统中运行的其他任务为某个时间片调度任务。

更新 :从Linux
3.14开始,还有一个名为SCHED_DEADLINE的附加策略。此策略在最早截止日期优先队列的顶部实现了恒定带宽服务器(CBS)算法。在此策略下,为每个任务分配了最后期限,并执行了最早的期限任务。描述此算法的最佳资源是Linux内核中的Deadline调度

更新2 :从Linux
4.13开始,SCHED_DEADLINE已用未使用带宽贪婪回收(GRUB)算法代替了CBS

2020-06-03