操作系统_第三章处理器管理_进程的调度算法

识字粗堪供赋役,不须辛苦慕公卿。这篇文章主要讲述操作系统_第三章处理器管理_进程的调度算法相关的知识,希望能为你提供帮助。

前面两篇讲了 批处理作业调度算法, 今天讲解 进程调度算法,注意区分

常用的进程调度算法有以下几种

  1. 先来先服务调度算法。 该算法是按照进入就绪队列的先后次序来选择可占用处理器的进程。 当有进程就绪时, 就把该进程链入就绪队列的末尾, 而进程调度总是把处理器分配给就绪队列中的第一个进程。一旦一个进程占用了处理器,它就一直运行下去,直到该进程完成工作 或者因等待某事件而不能运行才让出处理器。
    该算法简单,但由于进程进入就绪队列的随机性, 故采用该算法时可能会使进程等待分配处理器的平均时间较长。

    例如:就绪队列中依次有A、B、C 三个进程。 进程A和进程B各需要 3ms 的处理器时间可以完成工作,而进程C却要24ms的处理器时间, 按照先来先服务的顺序,进程A先占用处理器,进程B需等待3ms, 进程C需等待6ms, 才可以占用处理器。 于是,平均等待时间为(0+3+6) / 3 = 3ms.
    如果进程是按C、B、A的次序链入队列,则进程C先占用处理器运行24ms, 才能让进程B占用,而进程A在等了27ms后才可占用处理器, 现在平均等待时间为 (27 + 24 + 0) /3 = 17 ms.可见当运行时间长的进程先就绪时, 先来先服务算法使系统效率受到影响。


  2. 最高优先级调度算法。 对每一个进程给出一个优先级,进程调度总是让当时具有最高优先级的进程先使用处理器。对一个高优先级的进程占用处理器后,又可分两种方式来对待它。
    第一种是非抢占式的。在这种方式下, 一旦某个高优先级的进程占有了处理器就一直运行下去,不管此时是否有更高优先级的进程就绪,只要它的 工作没结束或没出现等待事件,那么它总是能占有处理器运行,直到由于它自身的原因主动让出处理器时,再由进程调度重新选择一个具有高优先级的进程使用处理器。


    第二种是可抢占式的。在这种试下,严格保证任何时刻总是让具有最高优先级的进程在处理器上运行。也就是说, 当某一进程在处理器上运行时, 一旦有另一个更高优先级的进程就绪,进程调度就要剥夺正在处理器上运行的进程使用处理器的权力,把处理器分配给具有更高优先级的进程。



    有时优先级调度算法与先来先服务调度算法可混合使用。 在一个采用优先级调度算法的系统中, 对具有相同优先级的进程又可使用先来先服务算法。
  3. 时间片轮转调度算法。 时间片是指允许进程一次占用处理器的最长时间。时间片轮转调度算法把就绪进程按就绪的先后次序排成队列, 调度时总是选择就绪队列中的第一个进程, 让它占用处理器,但规定它一次连续占用处理器的时间不能超过预定的时间片。

  4. 分级调度算法。该算法是 由系统设置多个就绪队列,每个就绪队列中的进程按时间片轮转法占用处理器。

【操作系统_第三章处理器管理_进程的调度算法】


    推荐阅读