如果有足够的优先级较高的 SCHED_RR 实时任务,是否会完全饿死所有较低优先级的任务?

如果有足够的优先级较高的 SCHED_RR 实时任务,是否会完全饿死所有较低优先级的任务?

我正在阅读调度的手册页,并且循环实时调度策略的描述对我来说似乎不明确:

   SCHED_RR: Round-robin scheduling
       SCHED_RR is a simple enhancement of SCHED_FIFO.  Everything
       described above for SCHED_FIFO also applies to SCHED_RR, except
       that each thread is allowed to run only for a maximum time
       quantum.  If a SCHED_RR thread has been running for a time period
       equal to or longer than the time quantum, it will be put at the
       end of the list for its priority.  A SCHED_RR thread that has
       been preempted by a higher priority thread and subsequently
       resumes execution as a running thread will complete the unexpired
       portion of its round-robin time quantum.  The length of the time
       quantum can be retrieved using sched_rr_get_interval(2).

是否可以保证较低 RT 优先级的任务能够运行?或者这是否字面上意味着调度程序将从优先级 99 开始,并循环执行每个优先级的任务,只有在较高优先级耗尽其数量/阻塞后还有剩余时间时才继续执行较低级别的任务?

相关内容