最高响应比优先算法(HRRF):最高响应比优先算法是介于先来先服务算法(FCFS)和最短作业优先算法(SJF)之间的一种算法,它既考虑了作业的等待时间,又考虑了作业的处理时间。
调度规则:响应比最高的作业先运行。
优点:HRRF对于作业的时间分配比较均匀,既照顾了短作业,又不至于使长作业等待时间过长。
缺点:HRRF每次计算响应比都会花费一定的时间,即时间开销。其性能比SJF算法略差。
响应比的计算:
响应比=作业周转时间/作业处理时间
=(作业等待时间+作业处理时间)/作业处理时间
=1+(等待时间/处理时间)
作业等待时间=前一个作业的完成时间-后一个作业的提交时间(提交时间不等于开始时间)
例题 求下列表格中作业的调度次序,并求平均周转时间(单位:小时)
作业号 | 提交时间 | 运行时间 | 开始时间 | 完成时间 | 周转时间 |
1 | 8.0 | 2.0 | |||
2 | 8.3 | 0.5 | |||
3 | 8.5 | 0.1 | |||
4 | 9.0 | 0.4 |
调度次序:1324
作业1先运行
作业号 | 提交时间 | 运行时间 | 开始时间 | 完成时间 | 周转时间 |
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 |
2 | 8.3 | 0.5 | |||
3 | 8.5 | 0.1 | |||
4 | 9.0 | 0.4 |
作业1运行完成后,根据其他作业的响应比决定运行顺序
作业2的响应比:1+(10.0-8.3)/0.5=4.4
作业3的响应比:1+(10.0-8.5)/0.1=16
作业4的响应比:1+(10.0-9.0)/0.4=3.5
作业3响应比最高,然后运行作业3
作业号 | 提交时间 | 运行时间 | 开始时间 | 完成时间 | 周转时间 |
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 |
2 | 8.3 | 0.5 | |||
3 | 8.5 | 0.1 | 10.0 | 10.1 | 1.6 |
4 | 9.0 | 0.4 |
重新计算响应比
作业2的响应比:1+(10.1-8.3)/0.5=4.6
作业4的响应比:1+(10.1-9.0)/0.4=3.75
作业2响应比最高,运行作业2
作业号 | 提交时间 | 运行时间 | 开始时间 | 完成时间 | 周转时间 |
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 |
2 | 8.3 | 0.5 | 10.1 | 10.6 | 2.3 |
3 | 8.5 | 0.1 | 10.0 | 10.1 | 1.6 |
4 | 9.0 | 0.4 |
最后运行作业4
作业号 | 提交时间 | 运行时间 | 开始时间 | 完成时间 | 周转时间 |
1 | 8.0 | 2.0 | 8.0 | 10.0 | 2.0 |
2 | 8.3 | 0.5 | 10.1 | 10.6 | 2.3 |
3 | 8.5 | 0.1 | 10.0 | 10.1 | 1.6 |
4 | 9.0 | 0.4 | 10.6 | 11.0 | 2.0 |
平均周转时间T=(2.0+2.3+1.6+2.0)/4=1.975(小时)