一、时间片轮转算法(RR)
1、算法思想:时间片轮转算法(RR)
公平地、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应。
2、算法规则:
按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片。
若进程未到一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队。
3、适用情况:
可用于进程调度。
4、是否抢占?
若进程未能在时间片内运行完,将被强行剥夺处理机使用权,因此时间片轮转调度算法属于抢占式算法。由时钟装置发出时钟中断来通知CPU时间片已到。
5、优缺点
优点:公平;响应快,适用于分时操作系统。
缺点:不能区分任务的紧急程度,需要进程切换,消耗较大。
二、高相应比优先算法(HRRN)
1、算法思想:高响应比优先调度算法(Highest Response Ratio Next,HRRN)
综合考虑作业或进程的等待时间和要求服务的时间。
2、算法规则:
在每次调度前先计算各个作业或进程的响应比(优先级),选择响应比最高的作业或进程为其服务。
响应比(Rp)= (等待时间+要求服务时间)/ 要求服务时间=响应时间 / 要求服务时间
3、适用情况:
可用于作业调度即进程调度
4、优缺点:
优点:综合考虑了等待时间和运行时间,较好的实现了折中。
缺点:每次调度前都要计算响应比,会增加系统的开销。
注意:不会导致饥饿现象。
练习题(为了便于理解,做个题吧)
概念:响应比(Rp)= 作业周转时间 / 作业处理时间=1+(等待时间/处理时间)
作业等待时间=前一个作业的完成时间-后一个作业的提交时间(提交时间不等于开始时间)
例题 求下列表格中作业的调度次序,并求平均周转时间(单位:小时)
调度次序:1324
作业1先运行
作业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
注:周转时间=完成时间-提交时间(作业)
重新计算响应比
作业2的响应比:1+(10.1-8.3)/0.5=4.6
作业4的响应比:1+(10.1-9.0)/0.4=3.75
作业2响应比最高,运行作业2
最后运行作业4
平均周转时间T=(2.0+2.3+1.6+2.0)/4=1.975(小时)
三、多级反馈队列调度算法
1、算法思想:对其他调度算法的折中权衡
2、算法规则:
(1)设置多个就绪队列。各级队列优先级从高到低,时间片从小到大。
(2)每个队列都采用FCFS调度算法。
(3)按队列优先级调度。只有当第1~i-1队列均空时,才会调度第i队列中的进程。
3、适用情况:
可用于进程调度
4、类型:
属于抢占式的算法。
5、优缺点:
优点:用优先级区分紧急程度,运行于实时OS
缺点:可能导致饥饿(低优先级进程的饥饿)。