轻松理解作业调度算法的优劣


知识点补充

评价作业调度算法的优劣,通常看 平均周转时间带权周转时间

  • 周转时间 = 作业完成时间 - 作业到达时间
  • 平均周转时间 = (作业完成时间 - 作业到达时间)/ 作业数量
  • 带权周转时间 = 作业周转时间 / 作业服务时间

先来先服务算法

顾名思义,先来先服务算法就是先来的作业先调度运行,后来的后运行。和队列的先进先出的意思是一样的。不过先来先服务算法很少单独使用,都是和其他算法一起结合使用。

在这里插入图片描述

我们来计算 A 和 B 的周转时间和带权周转时间(C,D 两个的计算类似)。

比如 A 的周转时间就是 T完成 - T到达 ,也就是 1 (个时间单位)。带权周转时间就是 1 / 1 = 1。

B 的周转时间是 101 - 1 = 100,带权周转时间,100 / 100 = 1。

下面给出全部的周转时间和带权周转时间

在这里插入图片描述

该算法操作最简单,同时看起来也是最公平,因此在系统中都有应用,但是它没有考虑作业运行时间的长短,如果最先到达的作业需要较长的时间,而稍后到达的作业只需要很短的运行时间,就会导致短作业的长时间等待,使短作业的带权周转的时间增大,而长作业的带权周转时间较小,因此造成长短作业处于事实上的不公平状态。

短作业优先算法

短作业调度算法的核心在于,运行时间越短的作业就先执行。

这里有两个需要注意的地方:

  1. 首先,第一到达的作业一定先运行,因为经常题目中是给出所有的作业,很多初学者以为直接从中选取短作业。
  2. 要注意,在后续比较作业长短的时候,要看作业是否到达,就是上图的到达时间,没有到达的作业是不能比较的。

实例:这个实例包含了先来先服务算法(两者的比较)

在这里插入图片描述

这里讲 A 和 D 两个作业(因为 D 短作业优先)。

首先,A 作业是先到达的,毋庸置疑,先计算 A 。

A 周转时间是 T完成 - T到达 = 4,带权周转是 4 / 4 = 1

我们观察,当 A 作业完成的时候,已经过去了 4 个时间单位了。而B,C,D,E 的到达时间为 1,2,3,4。所以所有作业均已到达,这个时候可以比较哪个是短作业了。观察服务时间,D 为 2 是最短的。

D 的周转时间 6 - 3 = 3 , 带权周转时间 3 / 2 = 1.5 。其他的作业也是用同样的方式计算。

这是一种照顾短作业的方法,它降低短作业的带权周转时间,却提高了长作业的带权周转时间,对整个系统来说,短作业优先算法可以提高系统的吞吐能力,加块系统的响应时间,但它未考虑在响应时间上的公平,短作业虽然有短的响应时间,但如果系统短作业过多,长作业则会有过长的等待时间。

最高响应比优先调度算法

我们分析上面的两个算法,先来先服务考虑的是作业的等待时间,而短作业考虑的是作业的运行时间,都有优劣,但是如果把二者结合起来岂不是更好,这就是最高响应比优先调度算法。

注意:该算法的优先级需要每执行一个进程后重新计算一次。

优先级的计算:

在这里插入图片描述
变换上式可以得到:优先权 = 1 + (等待时间 / 要求服务时间)

实例:

在这里插入图片描述

这里演示 A 和 B 的计算方式。(这里没有列出完成时间,需要自己计算)
A 先到达,毋庸置疑必须先计算,周转时间:3 - 0 = 3,带权周转时间 3 / 3 =1

当 A 完成的时候,过去了 3 个单位时间(服务时间),此时只有 B 进程到达(B 的到达时间是 2)。

所以 B 的周转时间 , 9 - 2 =7 。 带权周转时间 7 / 6 = 1.17。

再接着看,当 B 完成时,时间到达了 9 这个时间单位。而 C,D,E 都再 9 之前到达了。所以这个时候要看谁的优先级高。

  • C 的优先级:1+5/4 = 2.25
  • D 的优先级:1+3/5 = 1.6
  • E 的优先级:1+1/2 = 1.5

计算得到 C 的优先级最高,所以先计算 C 周转时间和平均周转时间。计算方式同上。

同理,计算 D 和 E 的优先级,计算得到 E 的优先级更高。

在这里插入图片描述

该算法等待时间越长,响应比越高,因此,等待时间长的作业将优先获得运行,运行时间越长,响应比越低,因此,运行时间长的作业优先级将降低,这样就照顾了那些运行时间少而等待时间长的作业,但是每个作业的响应比随时都在发生变化,因此要不断的重新计算,如何确定重新计算的时间间隔是一个难处理的问题,时间间隔太短,将导致大量的计算开销,时间间隔太长,响应比的作用会下降。

知识点习题

  1. 一种既有利于短小作业又兼顾到长作业的作业调度算法是( )。

A.先来先服务
B.轮转
C.最高响应比优先
D.均衡调度

正确答案: C

答案解析:

响应比最高者优先算法综合考虑作业的等待时间和计算时间,计算时间短的作业容易得到较高的响应比,可能被选中。但是,一个计算时间长的作业在等待了相当长的时间后,也将获得较高的响应比。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值