RR、优先级调度、多级反馈队列调度算法-第二十二天
目录
各种调度算法的学习思路
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级队列,按FCFS原则排队等待被分配时间片,若用完时间片进程还未结束,则进程进入下一级队列队尾。如果此时已经是在最下级地队列,则重新放回该队列队尾
- 只有第k级队列为空时,才会为k+1级队头地进程分配时间片
3、算法用于作业调度还是进程调度:用于进程调度
5、抢占式还是非抢占式:
????????抢占式算法,在k级队列地进程运行过程中,若更上级地队列(1~k-1级)中进入了一个新地进程,则由于新进程处于优先级更高地队列中,因此新进程会抢占处理机,原来运行地进程放回k级队列队尾
6、优点和缺点:
对各类进程相对公平(FCFS的优点);每个新到达的进程都可以很快就得到响应(RR的优点);短进程只用较少的时间就可以完成(SPF的优点);不必实现估计进程的运行时间(避免用户作假);可灵活地调整对各类进程地偏好程度,比如CPU密集型进程、I/O密集型进程(可以将因I/O而阻塞地进程重新放回原队列,这样I/O型进程就可以保持较高优先级)
7、是否会导致饥饿:会
例题:
总结?
~over~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!