1,请给出下表作业利用HRRN进行调度的调度顺序(以十进制进行计算)计算各作业的周转时间,给出计算分析过程。
解析:高响应度比优先(HRRN Highest Response Ratio Next)调度算法即考虑了作业的等待时间,又考虑了作业运行时间的调度算法。
响应比=1+(等待时间/服务时间)
等待时间=开始时间-提交时间
周转时间=完成时间-提交时间
作业号 | 提交时间 | 估计运行时间(小时) |
---|---|---|
1 | 8.0 | 2.0 |
2 | 9.0 | 1.2 |
3 | 9.5 | 0.5 |
4 | 10.2 | 0.3 |
作业号 | 提交时间 | 估计运行时间(小时) | 开始时间 | 完成时间 | 周转时间 |
---|---|---|---|---|---|
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 |
2 | 9.0 | 1.2 | 10.5 | 11.7 | 2.7 |
3 | 9.5 | 0.5 | 10.0 | 10.5 | 1.0 |
4 | 10.2 | 0.3 | 11.7 | 12.0 | 1.8 |
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+(等待时间/服务时间)
等待时间=开始时间-提交时间
周转时间=完成时间-提交时间
平均周转时间=总周转时间/作业数
带权周转时间=周转时间/服务时间
平均周转时间=总带权周转时间/作业数
作业号 | 提交时间 | 估计运行时间(小时) |
---|---|---|
1 | 8.0 | 2.0 |
2 | 9.0 | 1.2 |
3 | 9.5 | 0.5 |
4 | 10.2 | 0.3 |
先来先服务(FCFS first-come first-served)调度
作业号 | 提交时间 | 估计运行时间(小时) | 开始时间 | 完成时间 | 周转时间 | 带权周转时间 |
---|---|---|---|---|---|---|
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 | 1.0 |
2 | 9.0 | 1.2 | 10.0 | 11.2 | 2.2 | 1.8 |
3 | 9.5 | 0.5 | 11.2 | 11.7 | 2.2 | 4.4 |
4 | 10.2 | 0.3 | 11.7 | 12.0 | 1.8 | 6.0 |
平均: | 2.05 | 3.3 |
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)调度
作业号 | 提交时间 | 估计运行时间(小时) | 开始时间 | 完成时间 | 周转时间 | 带权周转时间 |
---|---|---|---|---|---|---|
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 | 1.0 |
2 | 9.0 | 1.2 | 10.8 | 12.0 | 3.0 | 2.5 |
3 | 9.5 | 0.5 | 10.0 | 10.5 | 1.0 | 2.0 |
4 | 10.2 | 0.3 | 10.5 | 10.8 | 0.6 | 2.0 |
平均: | 1.65 | 1.875 |
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