我想知道 schedule() 函数的副本是在每个处理器上运行,还是只是为每个处理器运行一个 schedule()。
如果在每个处理器/核心上运行 schedule() 的副本,进程如何分派到特定的 CPU/cpu 运行队列。它是负载均衡器的工作吗?是否只有一个负载均衡器为所有 CPU 运行,还是使用标志/通信方法以分布式方式完成?
ps-我知道调度类等的工作,但我很难弄清楚各种运行队列之间的进程分布。
我想知道 schedule() 函数的副本是在每个处理器上运行,还是只是为每个处理器运行一个 schedule()。
如果在每个处理器/核心上运行 schedule() 的副本,进程如何分派到特定的 CPU/cpu 运行队列。它是负载均衡器的工作吗?是否只有一个负载均衡器为所有 CPU 运行,还是使用标志/通信方法以分布式方式完成?
ps-我知道调度类等的工作,但我很难弄清楚各种运行队列之间的进程分布。
进程如何分派到特定的 CPU/cpu 运行队列。它是负载均衡器的工作吗?
是的。在多处理器系统中,负载均衡器会定期检查 CPU 负载是否不均衡;如果是,则处理器执行跨 CPU 的任务平衡。
是否只有一个负载均衡器为所有 CPU 运行,还是使用标志/通信方法以分布式方式完成?
是的。在 SMP 调度中,只有一个 schedule() 和一个负载平衡来管理多个内核之间的多任务。
参考:Linux 调度程序内部。