考研帮 > 数学 > 每日一练

2.5 多处理机调度与实时调度

2.5 多处理机调度与实时调度

  随着计算机技术的不断发展,为了满足人们对计算机更高要求的需要,出现了一机含有多处理机的情况,这就引出了多处理器的调度问题。另外,在很多情况下,任务的实时性非常重要,为了能更好地满足任务的实时性要求,出现了实时调度。下面分别简要介绍这两种调动。

2.5.1 多处理机调度

  目前为止,我们的讨论只限于单处理器系统的CPU 调度问题。如果有多个CPU 有效,那么调度问题就相对更为复杂了。但是正如在单处理机CPU 调度算法中所见,我们试过多种方法,但没有一种是最好的。我们以功能性的观点专门考虑处理器同样的环境,任何有效的处理器都可被用于执行队列中的任意进程。我们也假设是一致性内存访问环境,只有使用给定处理器的指令编译的程序才可以在该处理器上运行。
  甚至是在一个同构型多处理机中的调度也要受到一些限制。考虑这样一个系统,它的一个I/O 设备附属到一个处理器的私有总线上。若要使用该设备的进程,必须被调度到该处理器中运行,否则就不可以使用这个设备。
  如果有多个同样的处理器可用,那么就会发生负载分配。可以为每一个处理器提供一个独立的队列。然而,这样就可能会在一个处理器空闲(其队列为空)时另一个忙碌不堪。为了避免这种情况,我们使用一个公用的就绪队列。所有的进程进入同一个队列,并被调度到任何可用的处理器上执行。
  在这种方案中,有两种调度方法可供使用。第一种方法,每个处理器是自调度的。每个处理器检查公共队列并选择一个进程执行。如果有多个处理器试图访问并更新一个公共数据结构,那么每个处理器都必须仔细设计;即必须确保两个处理器不会选择同样的进程,还要保证队列中不会丢失进程。第二种方法是指定一个处理器作为其他处理器的调度者,这样就避免了上述问题,从而创建了一种主从结构。
  有些系统进一步扩展了这种结构:使用一个单独的处理器处理所有的调度、I/O 处理和其他的系统活动,其他的处理器只是执行用户代码。因为只有一个处理器访问系统数据结构,减轻了对数据共享的需求,所以这种不对称多处理远比对称多处理简单。当然,它也不如对称多处理那样高效,I/O繁忙型进程可能会阻塞执行所有操作的那个CPU。通常在一个操作系统中首先实现不对称多处理,然后随着系统的发展将其升级为对称多处理。

关于"最后阶段,真题的正确打开方式_备考经验_考研帮"15名研友在考研帮APP发表了观点

扫我下载考研帮

考研帮地方站更多

你可能会关心:

来考研帮提升效率

× 关闭