已读54%
预计阅读本页时间:-
预计阅读本页时间:-
8.2.6 多计算机调度
在一台多处理机中,所有的进程都在同一个存储器中。当某个CPU完成其当前任务后,它选择一个进程并运行。理论上,所有的进程都是潜在的候选者。而在一台多计算机中,情形就大不相同了。每个节点有其自己的存储器和进程集合。CPU 1不能突然决定运行位于节点4上的一个进程,而不事先花费相当大的工作量去获得该进程。这种差别说明在多计算机上的调度较为容易,但是将进程分配到节点上的工作更为重要。下面我们将讨论这些问题。
多计算机调度与多处理机的调度有些类似,但是并不是后者的所有算法都能适用于前者。最简单的多处理机算法——维护就绪进程的一个中心链表——就不能工作,因为每个进程只能在其当前所在的CPU上运行。不过,当创建一个新进程时,存在着一个决定将其放在哪里的选择,例如,从平衡负载的考虑出发。
由于每个节点拥有自己的进程,因此可以应用任何本地调度算法。但是,仍有可能采用多处理机的群调度,因为惟一的要求是有一个初始的协议来决定哪个进程在哪个时间槽中运行,以及用于协调时间槽的起点的某种方法。