操作系统中作业调度有哪些策略?
发布网友
发布时间:2022-05-02 16:10
我来回答
共1个回答
热心网友
时间:2022-06-20 19:55
你先看看这个行不,要是不行的话你给我你的邮箱,我给你发个操作系统的课件
先来先服务算法
它是按照作业进入输入井的先后次序来挑选作业,先进入作业的优先被挑选。一个先进入的作业,若它所需要的资源或其中的一部分资源已被在它之前的作业占用且尚未归还,那么,这个作业将被推迟执行,而去选择在它之后进入的资源能满足的作业先执行。一旦有作业执行结束归还资源后,作业调度再次选择作业时,仍要按进入输入井的次序去挑选,刚刚被推迟的作业有可能被优先选中。
先来先服务算法具有一定的公平性,容易实现。但增加了平均周转时间,降低了系统的吞吐能力。
(2)计算时间短的作业优先算法
采用这种算法时,要求用户对自己的作业需要计算的时间预先作一个估计,在作业控制说明书中加以说明。作业调度时依据在输入井中的作业提出的计算时间为标准,优先选择计算时间短且资源能得到满足的作业。这种算法能降低作业的平均周转时间,从而提高系统的吞吐能力,但可能使大作业等待时间过长。
(3)响应比高者优先算法
响应比最高者优先连算法综合考虑等待时间和计算时间,把响应比定义为:
响应比=等待时间/计算时间
一个计算时间短的作业容易得到较高的响应比,作业能被优先选中。一个大作业在等待了相当长的时间后,也或得了较高的响应比。
(4)优先数调度算法
(5)均衡调度算法
(注意):作业调度的必要条件和开始调度时间。
【例1】:有一个多道程序设计系统,设供用户使用的主存空间为100K。现有一作业序列如下:
作业号进入输入井时间需计算时间主存量要求
A
B
C
D
E10.1时
10.3时
10.5时
10.6时
10.7时42分钟
30分钟
24分钟
24分钟
12分钟15K
60K
50K
10K
20K
该系统采用多道程序设计技术,请分别写出采用“先来先服务调度算法”和“计算时间短优先算法”选中的作业的平均周转时间。
答:先来先服务算法:
作业号装入输入井时间开始执行的时间执行结束的时间周转时间
A
B
C
D
E10.1时
10.3时
11.3时
10.6时
11.3时10.1时
10.8时
11.7时
11.3时
12.1时10.8时
11.3时
12.1时
11.7时
12.3时0.7小时
1.0小时
1.6小时
1.1小时
1.6小时
5个作业的平均周转时间为:
(0.7+1.0+1.6+1.1+1.6)÷5=1.2(小时)
计算时间短的作业优先算法:
作业号装入输入井时间开始执行的时间执行结束的时间周转时间
A
B
C
D
E10.1时
10.3时
11.3时
10.6时
11.3时10.1时
10.8时
11.9时
11.3时
11.7时10.8时
11.3时
12.3时
11.7时
11.9时0.7小时
1.0小时
1.8小时
1.1小时
1.2小时
5个作业的平均周转时间为:
(0.7+1.0+1.8+1.1+1.2)÷5=1.16(小时)
【例2】:某单道程序设计系统中有3个作业A、B、C,它们到达输入井的时间及需要的计算时间如下表:
作业名到达输入井时间需计算时间
A
B
C8:50
9:00
9:301.5小时
0.4小时
1.0小时
当这3个作业全部到达输入井后,系统以响应比高者优先调度算法选择作业,忽略调度所用的时间,则作业被选中的次序应是怎样的呢?
答:由于进行作业调度的时间是在作业全部到达输入井之后,即在9:30开始进行调度,此时作业A、B、C分别等待了40分钟、30分钟和0分钟,因而它们的响应比为:
A作业的响应比=40/90=4/9
B作业的响应比=30/24=5/4
C作业的响应比=0/60=0
可见,作业B的响应比最高,当然优先选择作业B装入主存储器执行。作业B执行结束后,又要进行调度,由于等待时间发生了变化,故应重新计算响应比。此时的计算结果如下:
A作业的响应比=64/90=32/45
C作业的响应比=24/60=2/5
显然作业A的响应比高于作业C的响应比,因而先选择在作业A执行,最后再让作业C进入主存储器执行。