一、时间片轮转调度算法(RR)
1.算法思想
Round-Robin 公平、轮流地为各个进程服务,让每个进程在一定时间间隔内都可得到响应
2.算法规则
按照各进程到达就绪队列的顺序,轮流让各个进程执行一个时间片
响应比=(等待时间+要求服务时间)/要求服务时间
3.适用对象:只用于进程调度,因为只有作业放入内存建立了相应进程后,才能被分配处理机时间片
4.特点
是一种以时钟中断发出的时间片已到为抢占式信号进行CPU资源的抢占。
若时间片过大时,时间片轮转算法会退化成先来先服务算法。
综合考虑等待时间和运行时间(要求服务时间)。
不会导致饥饿问题,适用于分时系统
二、优先级调度算法
1.算法思想
为了根据任务紧急程度来决定处理顺序,适用于实时操作系统。
2.算法规则
为每个作业/进程设置优先级,调度时选择优先级最高的作业/进程
响应比=(等待时间+要求服务时间)/要求服务时间
3.适用对象:
既可用于作业调度(从外存的后备队列中选择),也可用于进程调度(从内存中的就绪队列中选择),还可进行I/O调度
4.特点
非抢占式-只需在进程主动放弃处理机时进行调度;
抢占式-还需在就绪队列变化时,检查是否会发生抢占。
若时间片过大时,时间片轮转算法会退化成先来先服务算法。
综合考虑等待时间和运行时间(要求服务时间)。
5.补充
静态优先级-创建进程时就确定,此后一直保持不变
动态优先级-创建进程时初始,此后会根据情况动态调整优先级(等待时间越长,提升优先级)。
系统进程/前台进程优于用户/后台进程;
I/O型进程优于计算型进程,因为I/O设备可与CPU并行工作。
可通过优先级区分紧急程度,调整调度顺序,但同时也会导致低优先级进程发生饥饿现象。
三、多级反馈队列调度算法
1.算法思想
对其他算法的综合考虑
2.算法规则
3.适用对象:用于进程调度
4.特点:
抢占式算法-新进程处于优先级更高的队列中,会抢占处理机
短进程不断到来会导致其它进程发生饥饿现象。
四、总结