进程调度

一、进程调度任务

  1. 保存处理机的现场信息,如程序计数器、多个通用寄存器中的内容等;

  2. 按照某种算法选取进程,将其状态改为运行状态;

  3. 把处理器分配给进程,将进程控制块内有关处理器现场。信息装入处理器相应的寄存器中,处理器的控制权交给该进程,让它从上次断点处恢复运行。

二、进程调度机制

  • 排队器:将所有就绪的进程按照一定的策略排成一个或多个队列
  • 分派器:取出进程调度程序选中的进程,进行进程间上下文切换、分配处理器
  • 上下文切换器:将当前进程的上下文信息保存到相应单元,装入分派程序的上下文;移出分派程序的上下文,装入新选进程的现场信息

三、进程调度方式

  • 非抢占式:一旦处理机分配给某个进程后,就一直让其运行直到完成或者发生某事件而阻塞。
  • 抢占式:允许调度程序根据某种规则,暂停某个正在执行的进程。

四、进程调度算法

  1. FCFS先来先服务算法(非抢占式)
    按照作业进入后备作业队列的先后次序来挑选作业

优点:实现简单
缺点:效率不高,性能不好;有利于长作业,不利于短作业

  1. 短作业优先算法(非抢占式)
    每次从后备作业队列中挑选估计服务时间最短的一个或几个作业

    优点:优先照顾短作业,可以降低平均等待时间,提高吞吐量
    缺点:不利于长作业,长作业可能一直处于等待状态,容易出现饥饿现象;未考虑作业的优先紧迫程度,不能用于实时系统

  2. HPF优先级调度算法(非抢占式)
    按照优先级由高到低的顺序进行调度

  3. HRRF高响应比优先调度算法(非抢占式):适用于批处理系统
    每次进行作业调度时,先计算后备作业队列中每个作业的响应比,挑选响应比最高的作业。

    优点:能够避免饥饿现象,兼顾长短作业
    缺点:计算响应比开销大

  4. RR时间片轮转调度算法(抢占式):适用于分时系统
    给每个进程固定的执行时间,根据进程到达的先后顺序让进程在单位时间片内执行,执行完成后便调度下一个进程执行。

    切换时机:(1)时间片未用完,进程便完成;(2)时间片用完,终端处理程序被激活,进程若未完成被送入就绪队列尾部

    优点:兼顾长短作业
    缺点:平均等待时间较长,上下文切换较费时

  5. 多级反馈队列调度算法(抢占式):适用于各种作业环境
    设置多个就绪队列,每个队列赋予不同的优先级;每个队列采用FCFS算法,新进程进入时首先放入第一队列末尾,若第一个时间结束未完成,将其转入第二队列末尾……。队列按优先级调度,仅当前一队列空闲时才调用下一队列。

    优点:兼顾长短作业,有较好的响应时间,可行性强

powered by Gitbook最后修订时间: 2020-05-14 11:52:39

results matching ""

    No results matching ""