HRRN算法即高响应比优先算法,它优先调度响应比高的进程。
由公式可见,实际运行时间一定时,等待时间越久,响应比越高。
高响应比优先算法的思想,它结合了短作业优先+先来先服务+不冷落长作业等特点,成为一种综合的动态调度算法,常用在操作系统的任务进程调度中。
那么,这个计算公式,怎么就能体现上面三个综合特性呢?
首先,短作业优先。
短作业优先是因为,如果实际运行时间很短,且等待时间我们认为相等,此时短作业的响应比更高,那么短作业就有更高的优先权。
其次,先来先服务。
假设要求实际运行时间相同,那么先来的作业等待时间肯定较长,所以先来的优先级更高。
最后,不冷落长作业。
长作业不会沦落到没法调度的尴尬局面。因为一个长作业,等啊等,等待时间在增加,优先级是在不断增长的,所以总会有机会熬出头的!
HRRN 是非抢占式的算法,因此只有当前运行进程正常放弃处理机的时候,才会计算哪个进程的响应比高,然后进行调度。
看下面的例子:
注意这里“要求服务的时间”就是实际需要运行的时间,等待时间则是从进程到达就绪队列的那一刻起,到发生进程调度这一段所花费的时间。
HRRN算法的优点是综合考虑了等待时间和实际运行时间,而且也不会导致长作业饥饿的问题(因为长作业等待时间变长之后,它的响应比也会变高,增加了可以被调度的机会)。
参考:
https://blog.csdn.net/mojir/article/details/100147223?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.comparehttps://mp.weixin.qq.com/s/aNIfELq3joCcgCFFaK_1wg