更新时间:2023-02-08 19:02
高响应比优先调度算法(Highest Response Ratio Next)是一种对CPU中央控制器响应比的分配的一种算法。HRRN是介于FCFS(先来先服务算法)与SJF(短作业优先算法)之间的折中算法,既考虑作业等待时间又考虑作业运行时间,既照顾短作业又不使长作业等待时间过长,改进了调度性能。
高响应比优先调度算法的基本思想是把CPU分配给就绪队列中响应比最高的进程。
短作业优先调度算法 + 动态优先权机制
既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。
高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。
该算法中的响应比是指作业等待时间与运行比值,响应比公式定义如下:
响应比 =(等待时间+要求服务时间)/ 要求服务时间,即RR=(w+s)/s=1+w/s,因此响应比一定是大于等于1的。
如实例:
某系统有3个作业,系统确定它们在全部到达后,再开始采用响应比高者优先的调度算法,则它们的调度顺序是什么?各自的周转时间是什么?
作业号 提交时间 运行时间
1 8.8 1.5
2 9.0 0.4
3 9.5 1.0
(1)如果都到达再算的话,等待时间=最后一个的提交时间-该作业到达的时刻
1: 9.5-8.8=0.7
2: 9.5-9=0.5
3: 0
所以响应比为(等待时间+要求服务时间)\u8981求服务时间=等待时间/要求服务时间+1
1: 0.7/1.5+1=1.47
2: 0.5/0.4+1=2.25
3: 1
所以2先运行,2从9.5开始运行到9.9结束;
再以9.9时刻算响应比:
1: (9.9-8.8)/1.5+1=1.73
3: (9.9-9.5)/1+1=1.4
所以2执行完后1开始执行,从9.9执行到11.4结束
最后一个是3:从11.4开始执行到12.4结束
(2)如果不是都到达后才运行,那么在8.8时只有作业1到达,所以先运行作业1
8.8+1.5(运行时间)=10.3
到10.3的时候作业1完成,此时作业2和3都已到达所以计算其响应比
(等待时间+要求服务时间)\u8981求服务时间=等待时间/要求服务时间+1
作业2:(10.3-9.0)/0.4+1=4.25
作业3:(10.3-9.5)/1.0+1=1.8
所以先运行作业2
10.3+0.4=10.7
到10.7运行作业3
10.7+1.0=11.7
到11.7结束
短作业与先后次序的兼顾,且不会使长作业长期得不到服务
响应比计算系统开销,增加系统开销
主要用于作业调度