一、调度的概念、层次
知识总览
调度的基本概念
调度的三个层次——高级调度(作业调度)
调度的三个层次——低级调度(进程调度/处理机调度)
内存中同时存在很多个进程,但系统中的cpu资源是有限的,所以操作系统也需要制定某种策略,挑出一个进程,把处理机分配给它
调度的三个层次——中级调度(内存调度)
补充知识:进程的挂起态与七状态模型
三层调度的联系、对比
知识回顾与重要考点
二、进程调度(低级调度)的时机切换与过程调度方式
进程调度的时机
“上锁”
左边:如果还没退出临界区(还没解锁)就进行进程调度,但是进程调度相关的程序也需要访问就绪队列,但此时就绪队列被锁住了,因此又无法顺利进行进程调度
右边:在打印机打印完成之前,进程一直处于临界区内,临界资源不会解锁。但打印机又是慢速设备,此时如果一直不允许进程调度的话就会导致CPU一直空闲。
因此:假如进程此时访问的是打印机(普通的临界资源),…。所以,如果进程在访问一个普通的临界资源,在一种普通的临界区中,这个时候是应该进行进程调度和切换的,来增加系统的并发度,增加cpu的利用率。
由“当前运行的进程是否可以强行地被剥夺处理机资源“这个问题,我们引出了下一个知识点——进程调度的方式
进程调度的方式
进程的切换与过程
知识回顾与重要考点
三、调度算法的评价指标
CPU利用率
系统吞吐量
周转时间
(一个上厕所十分钟的人和一个上厕所一分钟的人,前者只需要从十分钟到十一分钟,后者需要从一分钟到十一分钟)
因此,出现了带权周转时间:
等待时间
响应时间
知识回顾与重要考点
四、调度算法(先来先服务、最短作业优先、最高响应比优先)
Tips:各种调度算法的学习思路
- 算法思想
- 算法规则
- 这种调度算法是用于作业调度还是进程调度?
- 抢占式?非抢占式?
- 优点和缺点
- 是否会导致
饥饿
(某进程/作业长期得不到服务)
先来先服务(FCFS, First Come First Serve)
带权周转时间其实表示的是整个周转时间比运行时间大多少倍这样的指标;P3的带权周转时间这么大,表示这个进程本来只需要很少的时间为它服务,但是它需要等很长的时间才可以被处理,因此对于P3的用户来说,他的体验是特别糟糕的
短作业优先(SJF, Shortest Job First)
注意这个“最短的”要打双引号!!!!!
对FCFS和SJF两种算法的思考…
由此,引出了下面这种算法
高响应比优先(HRRN, Highest Response Ratio Next)
这个题目中由于它是纯计算型的进程,所以并不会有I/O操作,也就是说不会有主动地要求阻塞,因此主动阻塞这种情况不需要考虑
知识回顾与重要考点
五、调度算法(时间片轮转、优先级调度、多级反馈队列)
时间片轮转(RR, Round-Robin)
如果时间片大小为5:
如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且会增大进程响应时间。因此时间片不能太大。
另一方面,进程调度、切换是有时间代价的(保存、恢复运行环境),因此如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程切换,从而导致实际用于进程执行的时间比例减少。可见时间片也不能太小。
优先级调度算法
思考…
多级反馈队列调度算法