作业调度算法

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
【作业调度算法】首先,作业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+(等待时间/服务时间)
等待时间=开始时间-提交时间
周转时间=完成时间-提交时间
平均周转时间=总周转时间/作业数
带权周转时间=周转时间/服务时间
平均周转时间=总带权周转时间/作业数
作业号 提交时间 估计运行时间(小时)
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
首先,作业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)调度
作业号 提交时间 估计运行时间(小时) 开始时间 完成时间 周转时间 带权周转时间
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
首先,作业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

    推荐阅读