1

我想知道 schedule() 函数的副本是在每个处理器上运行,还是只是为每个处理器运行一个 schedule()。

如果在每个处理器/核心上运行 schedule() 的副本,进程如何分派到特定的 CPU/cpu 运行队列。它是负载均衡器的工作吗?是否只有一个负载均衡器为所有 CPU 运行,还是使用标志/通信方法以分布式方式完成?

ps-我知道调度类等的工作,但我很难弄清楚各种运行队列之间的进程分布。

4

1 回答 1

2

进程如何分派到特定的 CPU/cpu 运行队列。它是负载均衡器的工作吗?

是的。在多处理器系统中,负载均衡器会定期检查 CPU 负载是否不均衡;如果是,则处理器执行跨 CPU 的任务平衡。

是否只有一个负载均衡器为所有 CPU 运行,还是使用标志/通信方法以分布式方式完成?

是的。在 SMP 调度中,只有一个 schedule() 和一个负载平衡来管理多个内核之间的多任务。

参考:Linux 调度程序内部

于 2013-02-11T17:13:22.243 回答