作业调度算法

作业调度算法


          作业调度

          在操作系统中,把磁盘上用来存放作业信息的专用区域称为输入井,把在输入井中等待处理的作业称为后备作业。

          从输入井中选取后备作业装入主存储器的工作称为作业调度。

          任何作业只有被装入主存储器才能执行,主存储器就是我们电脑中的内存条。




          作业调度算法的产生

          由于输入井中等待处理的作业,不能全部同时被装入主存储器,主存储器的存储空间有限,其中,操作系统本身就占用了一部分的主存储器,因此,就产生了作业的调度算法。

          其中,用来存放操作系统的程序、数据、管理信息如PCB,以及操作系统与硬件的接口信息,如新、旧PSW等,这部分空间称为系统区,除系统区外的其余主存空间可用来存放用户的程序和数据,称为用户区。

          一个作业从输入井中调入主存储器,必须遵守一个必要条件,就是系统现有的尚未分配的资源可以满足被选作业的资源要求,从而,避免进入主存储器中的作业因得不到资源而无法执行的情况,保证系统较高的吞吐能力。


          作业调度算法的原则

          1、在单位时间内运行尽可能多的作业。

          2、使处理机保持忙碌的状态。

          3、使 I / O 设备得以充分利用。

          4、对所有作业公平合理。


          作业的状态转换

          一个作业从进入系统到退出系统一般要经过提交、后备、执行、完成这4个状态。




          提交状态:一个作业通过用户由输入设备进入输入系统的过程,称作提交状态。

          后备状态:作业提交后,由系统为该作业建立作业控制块(JCB,Job Contrd Block),并把它插入后备作业队列中,等待作业调度程序的调度。

          执行状态:后备状态的作业若被作业调度选中,并且分配了必要的资源,由作业调度程序建立相应的进程。这一状态被称为执行状态。

          完成状态:当作业执行结束后,进入作业完成状态。此时,由作业调度程序对该作业进行善后处理,主要表现为撤消作业的作业控制块,并回收此作业占用的系统中的资源数,最后,将作业的结果输出到外设之中。


          作业的周转时间

          假定作业i进入输入井的时间为Si,如果被选中执行,到最后得到计算结果的时间为Ei,那么他的周转时间就定义为

          T=Ei-Si

          N个作业的平均周转时间为

          T=(∑Ti)/n


          常用的作业调度算法

          主要包括:先来先服务、短作业优先、响应比高优先、优先级调度算法和均衡调度算法。




          先来先服务算法——FCFS

          先来先服务(FCFS, First Come First Serve),是最简单的调度算法,按先后顺序进行调度。

          按照作业进入输入井的先后次序挑选作业,先进入的作业优先被选中。

          但是,并不一定是先进入的一定被先选中,只有满足必要条件的作业才可能被选中。

          适用情况

          比较有利于长作业,而不利于短作业。

          有利于CPU繁忙的作业,而不利于I/O繁忙的作业。


          计算时间短的作业优先算法——SJF

          短作业优先(SJF, Shortest Job First)又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。

          采用这种算法时,要求用户对自己的作业需要计算的时间预先做一个估计,优先选择计算时间短,并且资源能够得到满足的作业进行执行。

          优点与缺点

          优点:比FCFS改善平均周转时间和平均带权周转时间,缩短作业的等待时间,提高系统的吞吐量。

          缺点:对长作业非常不利,可能长时间得不到执行;未能依据作业的紧迫程度来划分执行的优先级;难以准确估计作业(进程)的执行时间,从而影响调度性能。


          响应比高者优先算法——HRN

          先来先服务算法,可能使许多小作业,计算时间短的作业长时间的等待,而计算时间短的作业优先算法,可能使计算时间长的作业,等待的时间过长,因此,有了响应比高者优先算法。

          最高响应比优先法(HRN,Highest Response_ratio Next)是对FCFS方式和SJF方式的一种综合平衡。

          FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。

          响应比定义为:

          响应比R = (等待时间 + 要求执行时间) / 要求执行时间再实际执行中,要综合考虑响应比和对资源的要求。


          优先级调度算法

          为每一个作业确定一个优先级,优先级高的作业优先被选取执行,当几个作业的优先级相同时,按照先来先服务的原则,进行调度。

          确定作业优先级的因素

          包括作业的缓急程度、估计计算时间、作业的等待时间、资源申请情况、根据用户要求、考虑系统效率等等。


          均衡调度算法

          根据作业对资源的要求进行分类,作业调度轮流从不同的分类当中挑选作业,尽可能的使得使用不同资源的作业同时执行。

          这样,不仅可以是系统的资源都在被使用,而且可以减少作业等待使用同类资源的时间,从而缩短作业的平均周转时间。



  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值