【发布时间】:2012-02-29 10:44:50
【问题描述】:
我们是否可以将SCHED_OTHER 和SCHED_RR 用于两个线程,如果可以,CPU 将如何处理具有非实时和实时策略的线程。
【问题讨论】:
标签: linux-kernel posix scheduling
我们是否可以将SCHED_OTHER 和SCHED_RR 用于两个线程,如果可以,CPU 将如何处理具有非实时和实时策略的线程。
【问题讨论】:
标签: linux-kernel posix scheduling
实时线程(即SCHED_RR)将始终抢占非实时线程(即SCHED_OTHER)。
换句话说,SCHED_OTHER 线程只有在 SCHED_RR 线程被阻塞时才有机会运行。
【讨论】:
@janneb 所说的对于 POSIX 的 Linux 实现来说是正确的。但是由于这个问题也被标记为posix,我将引用POSIX 7 says about it:
在其他线程在 SCHED_FIFO、SCHED_RR 或 SCHED_SPORADIC 下执行的系统中,使用 SCHED_OTHER 策略调度线程的效果由实现定义。
所以我可以从中解释的是 POSIX 没有指定会发生什么。
【讨论】: