RR、优先级调度、多级反馈队列调度算法-第二十二天

发布时间:2023年12月22日

目录

各种调度算法的学习思路

时间片轮转调度算法(RR)

优先级调度算法

补充内容(copy)

思考

多级反馈队列调度算法

总结?


各种调度算法的学习思路

1、算法思想

2、算法规则

3、算法用于作业调度还是进程调度

5、抢占式还是非抢占式

6、优点和缺点

7、是否会导致饥饿(进程/作业长期得不到服务)

时间片轮转调度算法(RR)

1、算法思想:公平的、轮流地为各个进程服务,让每个进程在一定时间间隔内都可以得到响应

2、算法规则:

????????按照各时间到达就绪队列地顺序,轮流让各个进程执行一个时间片(如100ms),若进程未在一个时间片内执行完,则剥夺处理机,将进程重新放到就绪队列队尾重新排队

3、算法用于作业调度还是进程调度:

用于进程调度(只有作业放入内存建立了响应地进程后,才能被分配处理机时间片)

5、抢占式还是非抢占式:

????????若进程未能在时间片内运行完,将被强行剥夺处理机使用权,因此时间片轮转调度算法属于抢占式的算法,由时钟装置发出时钟中断来通知CPU时间片已到

6、优点和缺点:

优点:公平;响应快,适用于分时操作系统

缺点:由于高频率的进程切换,因此有一定开销;不区分任务的紧急程序

7、是否会导致饥饿:

例题:

注意事项:

1、如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间,因此时间片不能太大

2、另一方面,进程调度、切换是有时间代价的(保存、恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少,可见时间片也不能太小

3、时间片轮转调度算法常用于分时操作系统,更注重“响应时间”,因而此处不计算周转时间

优先级调度算法

1、算法思想:根据任务的紧急程度决定处理顺序

2、算法规则:每个作业/进程有各自的优先级,调度时选择优先级最高的作业/进程

3、算法用于作业调度还是进程调度:二者均可,甚至,还会用于I/O调度

5、抢占式还是非抢占式:

????????抢占式、非抢占式均有。非抢占式只需在进程主动放弃处理机时进行调度即可,而抢占式还需要在就绪队列变化时,检查是否会发生抢占

6、优点和缺点:

优点:用优先级区分任务的紧急程度、重要程度,适用于实时操作系统。可灵活地调整对各种作业/进程地偏好程度

缺点:若源源不断地有高优先级进程到来,则可能导致饥饿

7、是否会导致饥饿:会

例题:

补充内容(copy)

思考

1、FCFS算法地优点是公平

2、SJF算法的优点是尽可能快的处理完短作业,平均等待/周转时间等参数很优秀

3、时间片轮转调度算法可以让各个进程得到及时的响应

4、优先级调度算法可以灵活地调整各种进程被服务地机会

能否对其他算法做个折中权衡?得到一个综合表现优秀平衡地算法?

多级反馈队列调度算法

1、算法思想:对其他调度算法地折中权衡

2、算法规则:

  1. 设置多级就绪队列,各级队列优先级从高到低,时间片从小到大
  2. 新进程到达时先进入第1级队列,按FCFS原则排队等待被分配时间片,若用完时间片进程还未结束,则进程进入下一级队列队尾。如果此时已经是在最下级地队列,则重新放回该队列队尾
  3. 只有第k级队列为空时,才会为k+1级队头地进程分配时间片

3、算法用于作业调度还是进程调度:用于进程调度

5、抢占式还是非抢占式:

????????抢占式算法,在k级队列地进程运行过程中,若更上级地队列(1~k-1级)中进入了一个新地进程,则由于新进程处于优先级更高地队列中,因此新进程会抢占处理机,原来运行地进程放回k级队列队尾

6、优点和缺点:

对各类进程相对公平(FCFS的优点);每个新到达的进程都可以很快就得到响应(RR的优点);短进程只用较少的时间就可以完成(SPF的优点);不必实现估计进程的运行时间(避免用户作假);可灵活地调整对各类进程地偏好程度,比如CPU密集型进程、I/O密集型进程(可以将因I/O而阻塞地进程重新放回原队列,这样I/O型进程就可以保持较高优先级)

7、是否会导致饥饿:

例题:

总结?

~over~

文章来源:https://blog.csdn.net/m0_73975164/article/details/135136411
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。