【发布时间】:2019-09-03 11:22:38
【问题描述】:
我对@987654321@ 在 Linux 中的工作方式感到困惑。
我的理解是 Linux 在内部使用CFS (SCHED_NORMAL) 进行内核进程调度。当用户空间启动程序(进程)时,将触发clone() 调用以在内核空间中创建相应的调度实体。
所以假设有用户进程 A 和进程 B。
进程 A 调用 sched_setscheduler(pid_A, SCHED_RR) 并产生子进程 A1、A2。
进程 B 调用 sched_setscheduler(pid_B, SCHED_NORMAL) 并产生子进程 B1、B2。
在这种情况下,Linux 将如何调度进程 A 和 B,因为它们使用不同的调度策略? Linux 是否仍然使用其内部默认调度策略在 A 和 B 之间进行选择,但让 A、A2、A1 使用 SCHED_RR 相互竞争,而 B、B1、B2 使用 SCHED_NORMAL?
【问题讨论】:
标签: linux linux-kernel scheduling