计算机操作系统——作业调度算法


一、作业的基本知识

1.作业和作业步

(1)作业:作业是一个比程序更为广泛的概念,包含通常的程序和数据,还有一份作业说明书。系统根据该说明书来对程序的运行进行控制。
(2)作业步:在作业运行期间,每个作业都必须经过若干个相对独立,又相互关联的顺序加工步骤才得到结果,其中的每一个加工步骤称为一个作业步。

2.作业运行的三个阶段

(1)收容阶段。操作员把用户提交的作业通过某种输入方式输入到硬盘上,再为改作业建立JCB(作业控制块),并把作业放到后备队列中。此时作业的状态称为后备状态
(2)运行阶段。当作业被作业调度选中后,便为它分配必要的资源和建立进程,并将它放入就绪队列。一个作业从第一次进入就绪队列开始,直到它运行结束前,在此期间都处于运行状态
(3)完成阶段。当作业运行完成,或发生异常情况而提前结束时,作业便进入完成阶段,相应的作业状态为“完成状态”。

二、先来先服务(FCFS)调度算法

1.算法思想

顾名思义,系统按照作业的先后到达顺序来进行调度。即优先考虑在系统中等待时间最长的作业,而不考虑该作业所需要执行的时间。

2.算法评价

可以明显感觉到缺点,就是如果有一个非常短的作业,如果这个短作业之前如果有一个非常长的作业的话,那么这个短作业不得不要等很长的时间。
在该算法上可以进行和其他算法进行结合,比如优先级,可以设置好几个队列,每个队列之间的优先级不同,按照优先级选择队列,每个队列里的作业按照先来先服务的调度算法选择作业。

三、短作业优先(SJF)调度算法

1.算法思想

在先来先服务的调度算法中,我们提到,一个短作业为了等待前面的长作业完成,不得不要等待很长的时间,对于短作业来说,肯定显得不太公平。
短作业优先调度算法,顾名思义,以作业的长短来当作一个作业的优先级,作业越短(作业的长短是以作业所要求的运行时间来衡量的),优先级越高,就尽量要被越早的执行完成。

2.算法评价

短作业算法弥补了先来先服务算法的缺点——短作业等待时间可能过长。但是,仍有明显的缺点:
(1)必须预知作业大概的运行时间。一般都要预估偏长,因为如果预估运行时间短的话,可能作业还没有执行完就被终止了。
(2)对长作业来说,可能会产生饥饿现象。
(3)采用SJF调度算法时,无法实现人机交互。
(4)该调度算法没有考虑作业的紧迫度,所以紧急作业可能得不到及时处理。

四、优先级调度算法(PSA)

对于先来先服务算法,作业的等待时间就是这个作业的优先级,等待时间越长,优先级越高。对于短作业优先调度算法来说,作业的长短就是作业的优先级,作业越短,优先级越高。

1.算法思想

由外部赋予作业优先级,至于根据什么来判断一个作业的优先级的高低,看情况了,比如,如果想要在短作业优先调度算法的基础上保证紧迫作业能够被优先完成的话,那么可以在作业长短的基础上再加上紧迫这一个优先级,可以将紧迫作业的优先级设置为最高优先级,那么紧迫作业就会被优先运行。
优先级调度算法是一个比较笼统的概念,至于根据什么判断作业的优先级,可以看情况。比如接下来讨论的高响应比就属于优先级调度算法,而高响应比优先调度算法中是同时根据作业的等待时间和作业的运行时间来判定一个作业的优先级的。

2.算法评价

该调度算法比较常见,而且比较灵活,可以选择多个因素来作为优先级的评判标准,可以有多个优先级,各个优先级之间又有高低之分,比如上面的假设中,作业的长短和作业的紧迫程度都可以是作业的优先级影响因素,而紧迫作业的优先级要比短作业的优先级高。

五、高响应比优先调度算法(HRRN)

在前面说的算法中,先来先服务调度算法仅仅以作业的等待时间作为优先级因素,而忽视了作业的运行时间。短作业优先算法仅仅以作业的运行时间作为优先级因素,而忽视了作业的等待时间。高响应比优先调度算法则是既考虑了作业的等待时间,又考虑了作业的运行时间。因此即照顾了短作业,而又不会造成长作业的饥饿现象。
在这里有一个动态优先级的概念,即优先级是会动态变化的。由于高响应比优先调度算法的优先级是根据作业的长短和作业的等待时间来断定的,所以一个作业的优先级肯定会根据时间而变换。该优先级的变化规律为:
优先权 = (等待时间+要求服务时间)/ 要求服务时间
由于等待时间与要求服务时间的和是系统对该作业的响应时间,所以:
优先权 = 响应时间 / 要求服务时间
由上式可以看出:
(1)如果作业的等待时间相同,那么作业要求服务时间越短,那么该作业的优先级就越高,类似于短作业优先调度算法,有利于短作业。
(2)当要求的服务时间相同时,作业的等待时间越长,那么作业的优先级越高,此时类似于先来先服务调度算法。
(3)对于长作业来说,随着时间的增长,长作业的优先级会变高,当等待时间足够长时,也会获得处理及,因此避免了短作业优先调度算法的长作业可能出现饥饿现象的缺点。

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟小胖_H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值