SCHED_FIFO和SCHED_RR都用于实时应用。我知道SCHED_RR可以被时间片抢占。但是假设我有一个线程设置为SCHED_FIFO,另一个线程设置为SCHED_RR,如果两个线程都准备好运行,它们是否仅按优先级调度?如果它们有相同的优先级会发生什么?
SCHED_FIFO按照优先级顺序运行,并且不会被抢占,直到当前进程释放CPU资源。当然,如果有更高优先级的进程处于就绪状态,则会将其暂停并运行更高优先级的进程。SCHED_RR也按照优先级进行调度,但是它可以被时间片抢占。如果两个线程具有相同的优先级,则按照调度策略(FIFO或RR)的规则来选择下一个运行的线程。