在 Linux 中,两个具有相同优先级的 SCHED_FIFO 任务是否在每个周期内获得处理时间,并且在周期结束之前都没有完成任务?
Linux 文档说 SCHED_FIFO 进程只能被优先级更高的进程抢占,但我的理解是 CFS 运行在更高层,并为每个周期内的两个任务中的每一个分配时隙。
最佳答案
Linux documentation says SCHED_FIFO processes can get preempted only by processes with higher priority
这是正确的,除此之外,如果您设置 RLIMIT_RTTIME
(getrlimit(2)
) 并且达到该限制,它们也可以被抢占。
可以安排另一个 SCHED_FIFO
进程(具有相同优先级)的唯一其他原因是第一个 sleep 或者它自愿让步(自愿抢占)。
CFS与SCHED_FIFO
无关,它只处理SCHED_NORMAL
、SCHED_BATCH
和SCHED_IDLE
。
关于linux - 两个优先级相同的SCHED_FIFO任务在Linux中是否在每个周期内获得处理时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51223787/