有人可以解释SCHED_OTHER,SCHED_FIFO和SCHED_RR之间的区别吗?
谢谢
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 。