2.2 处理机调度(1)
2.2.1 调度
一. 概念
从就绪队列中按照一定的算法选择一个进程,并给他分配处理机,从而实现进程的并发执行。
二. 调度的三个层次
一个作业的提交开始直到完成需要经历三种调度。
- 高级调度(作业调度):按照一定原则,从外存中挑选作业,给他们分配内存等资源,并建立相应进程。
- 中级调度(内存调度):将暂时不能运行的进程调至外存等待,即挂起态(稍后讲解),此时进程在外存,但是该进程的PCB在内存。
作用:提高内存利用率和系统吞吐量。 - 低级调度(进程调度):按照某种方法从就绪队列中选取一个进程,将CPU分配给它。进程调度是操作系统最基本的一种调度
三. 三级调度的区别与联系
调度 | 干什么 | 位置 | 频率 | 状态 |
---|---|---|---|---|
高级调度 | 选择合适作业调入内存,创建进程 | 外存 – 内存 | 最低 | 无 – 创建态 – 就绪态 |
高级调度 | 按某种规则,将进程调回内存 | 外存 – 内存 | 中等 | 挂起态 – 就绪态 |
高级调度 | 按照某种规则为进程分配CPU | 内存 – CPU | 最高 | 就绪态 – 运行态 |
四. 七状态模型
- 之前我们学了五状态,分别是:创建态,终止态,阻塞态,运行态和就绪态。
- 但是在自主命题的研究生考试中,还有挂起态,它分为就绪挂起和阻塞挂起。
-
若系统负载高,则会进入挂起状态,挂起则表示进程放到了外存。
五. 进程的调度与切换
- 应该进行进程的调度和切换:
(1)主动放弃
(2)被动放弃(中断或者陷入时) - 不应进程调度与切换
(1)在处理中断时
(2)进程在操作系统内核程序临界区时
(3)进行原子操作时
切换过程要求保留原进程当前切换点的现场信息,恢复被调度进程的现场信息。
进程调度的切换都是有代价的,经常切换不好。
六. 进程的调度方式(两种)
- 非抢占式方式
实现简单,系统开销小,但是无法执行紧急进程。 - 抢占式方式
提高系统吞吐量和响应效率。
我们下一节讲,调度的评价指标 和 经典调度算法。