作业调度算法

本文深入解析了三种作业调度算法:HRRN、FCFS和SJF。通过具体实例,详细展示了每种算法的调度顺序、周转时间及带权周转时间的计算过程。对比分析了不同算法下的作业执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,请给出下表作业利用HRRN进行调度的调度顺序(以十进制进行计算)计算各作业的周转时间,给出计算分析过程。

解析:高响应度比优先(HRRN Highest Response Ratio Next)调度算法即考虑了作业的等待时间,又考虑了作业运行时间的调度算法。
响应比=1+(等待时间/服务时间)
等待时间=开始时间-提交时间
周转时间=完成时间-提交时间

作业号提交时间估计运行时间(小时)
18.02.0
29.01.2
39.50.5
410.20.3

解:

作业号提交时间估计运行时间(小时)开始时间完成时间周转时间
18.02.08.010.02.0
29.01.210.511.72.7
39.50.510.010.51.0
410.20.311.712.01.8

首先,作业1先来,先执行,8.0开始执行,服务时间为2.0,完成时间为8.0+2.0=10.0,周转时间=完成时间-提交时间=10.0-8.0=2.0
10.0作业1完成,这时候可以看出,作业2和作业3已经达到了,比较两者的响应比:
R2=1+(等待时间/服务时间)=1+(10.0-9.0/1.2)≈1.83
R3=1+(等待时间/服务时间)=1+(10.0-9.5/0.5)=2
由于作业3的相应比高,故作业3开始运行
作业3从10.0开始运行,服务时间为0.5,完成时间为10.0+0.5=10.5,周转时间=完成时间-提交时间=10.5-9.5=1.0
10.5作业3完成,这时候可以看出,作业4已经到达,作业2还在等待,比较两者的相应比:
R2=1+(等待时间/服务时间)=1+(10.5-9.0/1.2)=2.25
R4=1+(等待时间/服务时间)=1+(10.5-10.2/0.3)=2
由于作业2的相应比高,故作业2开始运行
作业2从10.5开始运行,服务时间为1.2,完成时间为10.5+1.2=11.7,周转时间=完成时间-提交时间=11.7-9.0=2.7
11.7作业2完成,作业4开始从11.7执行,服务时间为0.3,完成时间为11.7+0.3=12.0,周转时间=完成时间-提交时间=12.0-10.2=1.8

2,填表计算采FCFS、SJF的平均周转时间和平均带权周转时间(以十进制进行计算)。并在下面给出计算分析过程。

解析:先来先服务(FCFS first-come first-served)调度算法,系统将按照作业到达的先后次序来进行调度,它是优先考虑在系统中等待时间最长的作业,不管该作业所需执行时间的长短。
短作业优先(SJF short job first)调度算法,以作业的长短来计算优先级,作业越短,其优先级越高。作业的长短是估计运行时间或服务时间。
响应比=1+(等待时间/服务时间)
等待时间=开始时间-提交时间
周转时间=完成时间-提交时间
平均周转时间=总周转时间/作业数
带权周转时间=周转时间/服务时间
平均周转时间=总带权周转时间/作业数

作业号提交时间估计运行时间(小时)
18.02.0
29.01.2
39.50.5
410.20.3

解:
先来先服务(FCFS first-come first-served)调度

作业号提交时间估计运行时间(小时)开始时间完成时间周转时间带权周转时间
18.02.08.010.02.01.0
29.01.210.011.22.21.8
39.50.511.211.72.24.4
410.20.311.712.01.86.0
平均:2.053.3

首先,作业1先来,先执行,8.0开始执行,服务时间为2.0,完成时间为8.0+2.0=10.0,周转时间=完成时间-提交时间=10.0-8.0=2.0,带权周转时间=周转时间/服务时间=2.0/2.0=1.0
10.0作业1完成,这时候可以看出,作业2和作业3已经达到了,由于作业2先到达,根据FCFS可得,作业2先运行
作业2从10.0开始运行,服务时间为1.2,完成时间为10.0+1.2=11.2,周转时间=完成时间-提交时间=11.2-9.0=2.2,带权周转时间=周转时间/服务时间=2.2/1.2≈1.8
11.2作业2完成,这时候可以看出,作业4已经到达,作业3还在等待,根据FCFS可得,作业3先运行
作业3从11.2开始运行,服务时间为0.5,完成时间为11.2+0.5=11.7,周转时间=完成时间-提交时间=11.7-9.5=2.2,带权周转时间=周转时间/服务时间=2.2/0.5=4.4
11.7作业3完成,作业4开始运行,服务时间为0.3,完成时间为11.7+0.3=12.0,周转时间=完成时间-提交时间=12.0-10.2=1.8,带权周转时间=周转时间/服务时间=1.8/0.3=6.0,12.0时作业全部运行完毕。

平均周转时间=总周转时间/作业数=(2.0+2.2+2.2+1.8)/4=2.05
平均带权周转时间=总带权周转时间/作业数=(1.0+1.8+4.4+6.0)/4=3.3

短作业优先(SJF short job first)调度

作业号提交时间估计运行时间(小时)开始时间完成时间周转时间带权周转时间
18.02.08.010.02.01.0
29.01.210.812.03.02.5
39.50.510.010.51.02.0
410.20.310.510.80.62.0
平均:1.651.875

首先,作业1先来,先执行,8.0开始执行,服务时间为2.0,完成时间为8.0+2.0=10.0,周转时间=完成时间-提交时间=10.0-8.0=2.0,带权周转时间=周转时间/服务时间=2.0/2.0=1.0
10.0作业1完成,这时候可以看出,作业2和作业3已经达到了,由于作业3估计运行时间最短,根据SJF调度可得,作业3先运行
作业3从10.0开始运行,服务时间为0.5,完成时间为10.0+0.5=10.5,周转时间=完成时间-提交时间=10.5-9.5=1.0,带权周转时间=周转时间/服务时间=1.0/0.5=2.0
10.5作业3完成,这时候可以看出,作业4已经到达,作业2还在等待,由于作业4估计运行时间最短,根据SJF调度可得,作业4先运行
作业4从10.5开始运行,服务时间为0.3,完成时间为10.5+0.3=10.8,周转时间=完成时间-提交时间=10.8-10.2=0.6,带权周转时间=周转时间/服务时间=0.6/0.3=2.0
10.8作业4完成,作业2开始运行,服务时间为1.2,完成时间为10.8+1.2=12.0,周转时间=完成时间-提交时间=12.0-9.0=3.0,带权周转时间=周转时间/服务时间=3.0/1.2=2.5,12.0时作业全部运行完毕。

平均周转时间=总周转时间/作业数=(2.0+3.0+1.0+0.6)/4=1.65
平均带权周转时间=总带权周转时间/作业数=(1.0+2.5+2.0+2.0)/4=1.875

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

beyond谚语

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

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

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

打赏作者

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

抵扣说明:

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

余额充值