1. 算法性质
HRRN算法既考虑了作业的等待时间,又考虑作业的运行时间,因此既照顾了短作业,又不致使长作业的等待时间过长,从而改善了处理机调度的性能。
2. 实现方法
我们为每个作业引入一个动态优先级,即优先级会随着时间的增加而动态增加,这样使得长作业的优先级在等待期间不断地增加,等到足够时间后,必然有机会获得处理机。
优先级算法描述为: 优先权(Rp) = (等待时间 + 要求服务时间)/ 要求服务时间
周转时间:周转时间(WT) = 作业完成时间 - 作业到达时间
带权周转时间:带权周转时间(WWT) = 周转时间 / 服务时间
平均周转时间:平均周转时间(AWT) = 作业周转总时间 / 作业个数
平均带权周转时间:平均带权周转时间(AWWT) = 带权周转总时间 / 作业个数
3. 算法优点
如果作业的等待时间相同,则要求服务的时间越短,其优先级越高,因而类似于SJF算法,有利于短作业。
当要求服务的时间相同时,作业的优先权又决定于其等待时间,因而有类似于FCFS算法。
对于长作业的优先级,可以随等待时间增加而提高,当其等待时间足够长时,也可以获得处理机。
4. 实现代码
4.1 HRRN实现函数
4.2 主函数
领取专属 10元无门槛券
私享最新 技术干货