处理机的调度
一、处理机调度概念
- 基本概念
- 出现原因,处理器的数量远远少于进程数量,这样一来所有进程没办法同时处理,这个时候需要确定某种规则来决定这些进程的处理顺序,所以引进调度概念
- 按照某种算法选择一个进程将处理机分配给它
例子1,宿舍只有1个厕所,早上几个人都要上厕所,厕所该被谁占
- 三个层次
- 高级调度,又叫作业调度
按照某种规则,从等候队列中选择合适的作业将其调入内存,并为其创建进程 - 中级调度,又叫内存调度
按照某种规则,从挂起队列中选择合适的进程将其数据调回内存 - 低级调度,又叫进程调度
按照某种规则,从就绪队列中选择一个进程为其分配处理机
- 高级调度,又叫作业调度
- 三层调度的联系、对比
- 高级调度
外存->内存
发生频率最低 - 中级调度
外存->内存
发生频率中等 - 低级调度
内存->CPU
发生频率最高
- 高级调度
- 补充知识
- 为减轻系统负载,提高资源利用率,暂时不执行的进程会被调到外存从而变成“挂起态”
- 七状态模型,在五状态模型的基础上加入了就绪挂起和阻塞挂起两种状态
二、进程调度的时机与方式
- 进程调度发生时机
- 什么时候需要进程调度?
- 主动放弃
进程正常终止
运行过程中发生异常而终止
主动阻塞,比如等待I/O - 被动放弃
分给进程的时间片用完
有更紧急的事情需要处理,比如I/O中断
有更高优先级的进程进入就绪队列
- 主动放弃
- 什么时候不能进行进程调度
在处理中断的过程中,此时是核心态
进程在操作系统内核程序临界区中
原子操作过程中,简称原语
- 什么时候需要进程调度?
- 进程调度方式
- 非剥夺调度方式,也叫非抢占式
只能由当前运行的进程主动放弃CPU - 剥夺调度方式,也叫抢占式
可以由操作系统剥夺当前进程的CPU使用权
- 非剥夺调度方式,也叫非抢占式
- 进程的切换和过程
- 狭义的调度和切换区别
- 广义的进程调度包含了选择一个进程和进程切换两个步骤
- 切换过程
对原来运行进程各种数据的保存
对新的进程各种数据的恢复,比如程序计数器、程序状态字、各种数据寄存器等处理机现场信息,这些信息保存在进程控制块PCB,从内存这里读出来放到处理机 - 重要结论
进程调度、切换是有代价的,并不是调度越频繁,并发度就越高
三、调度算法的几种评价指标
四、作业/进程调度算法
归纳了6种调度算法