操作系统复习(九)——处理机调度

处理机调度

处理机调度的层次
  1. 高级调度:又称长程调度或作业调度,调度对象是作业。 主要功能:根据算法,决定将外村上处于后备队列中的哪几个作业调入内存,为他们创建进程、分配必要的资源,并将它们放入就绪队列。主要应用于多道批处理系统中。
  2. 低级调度:又称进程调度或短程调度,调度对象是进程(或内核级线程)。 主要功能:根据算法,决定就绪队列中哪个进程应该获得处理机,并由分派程序将处理机分配给选中的进程。进程调度是最基本的一种调度,在多道批处理、分时和实时三类OS中都必须配置。
  3. 中级调度:又称为内存调度。 主要目的:提高内存利用率和系统吞吐量。中级调度决定,暂时不能运行的进程调至外存等待;外存上已具备运行条件的就绪进程在内存稍有空闲时调入。
处理机调度算法的目标

1.共同目标

  1. 资源利用率。为提高资源利用率,应使系统中的CPU和其他资源都尽可能保持忙碌状态,最重要的CPU利用率计算公式:CPU利用率=CPU有效工作时间/(CPU有效工作时间+CPU空闲等待时间)。
  2. 公平性。指诸进程都获得合理的CPU时间,不会发生饥饿现象。公平性是相对的。
  3. 平衡性。进程类型是多样的,有的是计算型,有的是I/O型,为使CPU和各种外设都能经常处于忙碌状态,调度算法应尽可能保持系统资源使用的平衡性。
  4. 策略强制执行。对所制定的策略(包括安全策略),只要需要,就必须准确执行,即使会造成某些工作延迟也要执行。

2.批处理系统的目标

  1. 平均周转时间短。周转时间指,作业被提交给系统开始,到作业完成为止的这段时间间隔。(包含四部分时间:作业在外存后备队列上等待调度的时间;进程在就绪队列上等待进程调度的时间;进程在CPU上执行的时间;以及进程等待I/O操作完成的时间。)
  2. 系统吞吐量高。
  3. 处理机利用率高。

3.分时系统的目标

  1. 响应时间快。响应时间是分时系统中进程调度算法的重要准则。
  2. 均衡性。系统响应时间的快慢与用户所请求服务的复杂性相适应。

4.实时系统的目标

  1. 截止时间的保证。截止时间指任务必须开始执行的最迟时间,或必须完成的最迟时间。
  2. 可预测性。

作业与作业调度

批处理系统中的作业

1.作业和作业步
作业:作业概念比程序更广,不仅包含通常的程序和数据,还应配有一份作业说明书,系统根据该说明书对程序的运行进程控制。批处理系统中,以作业为基本单位从外存调入内存。
作业步:每个作业在运行期间经过的若干个相对独立,又相互关联的顺序加工步骤,每一个加工步骤成为一个作业步。(一个典型的作业可分成:“编译”作业步,“链接装配”作业步和“运行”作业步。)

2.作业控制块JCB
JCB保存了系统对作业进程管理和调度所需的全部信息。通常JCB中包含:作业标识,用户名称,用户账号,作业类型(CPU繁忙型,批量型,终端型),作业状态,调度信息(优先级,作业运行时间),资源需求(预计运行时间,要求内存大小等),资源使用情况等。

每当一个作业进入系统时,便由“作业注册”程序为该作业建立一个作业控制块JCB。再根据作业类型,将它放到相应的作业后备队列中等待调度。调度程序根据一定的调度算法进行调度,被调度到的作业将被装入内存。作业运行期间,系统就按照JCB中的信息和作业说明书对作业进行控制。当一个作业执行结束进入完成状态时,系统负责回收已分配给它的资源,撤销该作业控制块。

3.作业运行的三个阶段和三种状态
作业从进入系统到运行结束,通常需要经历收容,运行和完成三个阶段。对应作业的三个状态“后背状态”、“运行状态”和“完成状态”。
1.收容阶段,操作员吧用户提交的作业通过某种输入方式或SPOOLing系统输入到硬盘上,在为该作业简历JCB,并把它放入作业后备队列中。此时为后备状态。
2.运行阶段,作业被作业调度选中后,便为它分配必要的资源和建立进程,并将它放入就绪队列。一个作业从第一次进入就绪状态开始,直到它运行结束前,都处于“运行状态”。
3.完成阶段,作业运行完成、或发生异常情况而提前结束时,作业便进入完成阶段。此时作业为完成状态。此时系统中的“终止作业”程序将会回收已分配给改作业的JCB和所有资源,并将作业运行结果信息形成输出文件后输出。

作业调度的主要任务

作业调度的主要任务:根据JCB中的信息,检查系统中的资源能否满足作业对资源的需求,以及按照一定的调度算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源。然后再将新创建的进程排在就绪队列上等待调度。因此,也把作业调度称为接纳调度。在每次执行作业调度时,都需要做出两个决定:(1)接纳多少个作业;(2)接纳哪些作业。

FCFS(先来先服务算法)与SJF(短作业优先算法)

1.先来先服务调度算法FCFS
是最简单的调度算法,既可用于作业调度,也可以用于进程调度。
使用此算法进行作业调度时,系统将按照作业到达先后顺序进行调度,或者说它优先考虑在系统中等待时间最长的作业,而不管改作业所需执行时间的长短。(其实就是数据结构中队列的性质,先到的先调度。)

2.短作业优先调度算法SJF
由于在实际情况中短作业(进程)所占比例很大,为了让它们比长作业优先执行,就有了此算法。
SJF顾名思义以作业长短来确定优先级,作业越短优先级越高,作业的长短用作业所需的运行时间来衡量,此算法一样也可以用做进程调度,它将从外存的作业后备队列中选择若干个估计运行时间最短的作业,优先将它们调入内存运行。

短作业优先算法比先来先服务算法有了明显的改进,但仍存在一些缺点:

  1. 必须预知作业的运行时间。
  2. 对长作业非常不利。
  3. 采用SJF时,人—机无法实现交互。
  4. 该调度算法未考虑作业紧迫程度,故不能保证紧迫性作业能得到及时处理。
优先级调度算法和高响应比优先调度算法

1.优先级调度算法PSA
基于作业的紧迫程度,由外部赋予作业相应的优先级,调度算法根据该优先级进行调度。这样就保证紧迫性作业优先运行。优先级调度算法可作为作业调度算法与进程调度算法。

2.高响应比优先调度算法HRRN
高响应比优先调度算法既考虑了作业等待时间,又考虑作业运行时间的调度算法。因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。
高响应比优先调度算法为每个作业引入了一个动态优先级:
优先权=(等待时间+要求服务时间)/要求服务时间

由于等待时间与服务时间之和就是系统对该作业的响应时间,该优先级有相当于响应比Rp:
Rp=(等待时间+要求服务时间)/ 要求服务时间 = 响应时间 / 要求服务时间

由上式可以看出:

  1. 如果作业等待时间相同,则要求服务时间越短的优先级越高,此时类似于SJF,有利于短作业。
  2. 当要求服务时间相同时,作业的优先级取决于等待时间,此时类似于FCFS。
  3. 对于长作业的优先级,可以随等待时间的增加而提高,当其等待时间足够尝试,必定会获得CPU。
  4. 该算法实现了较好的折中。在利用该算法时,每次调度前都要进行响应比的计算,增加了系统开销。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值