处理器调度的类型-长程,中程,短程
长程调度
:新作业提交时,决定是否将其送入
内存,成为一个进程。也称作业调度。
- 在批处理系统或OS的批处理部分中,新提交的作 业放在磁盘的后备作业队列中,长程调度选择某 些作业送入内存并创建进程。
- 何时长程调度?根据系统并发度(即多道程序度, 内存中进程个数)决定。当老进程结束或CPU空闲 超过阈值时,启动长程调度。
- 调度不频繁(秒、分钟级) 执行速度可以较慢
- 调度哪个作业?先来先服务、优先级、预计执行时 间、组合CPU密集型和I/O密集型、组合不同I/O需 求的作业等。
- 在分时系统中,不需要长程调度。OS总是立即接 受用户的交互请求并创建进程,直至系统饱和。
短程调度
:决定将
CPU
分配给哪个就绪进程。
- 类似地,系统并发度决定中程调度的时机。
- 要考虑换入进程和换出进程的内存空间长度。
中程调度
:决定把哪些进程在内存与磁盘间交换。
- 当前运行进程的时间片用完、阻塞、被抢占时, 启动短程调度。
- 调度频繁(毫秒级) 执行速度必须很快
调度准则与指标
面向用户的性能指标:对每个进程计算的指标
- 周转时间:从作业提交到完成的时间间隔,包括:服务时间 (运行态CPU执行)+等待时间(包括后备态等待进入内存、阻 塞态等待资源、就绪态等待CPU)。适合批处理作业。
- 响应时间:从提交请求到开始响应。适合分时(交互)进程。
- 最后期限:进程完成/开始处理的截止期限。适合实时进程。
- 归一化周转时间(带权周转时间):周转时间/服务时间。≥1
面向系统的性能指标:
- 吞吐量:单位时间内完成的进程个数。
- 处理器利用率:CPU忙的时间比例,=工作时间/总运行时间。(单用户系统和实时系统不看重该指标)
非抢占式调度、抢占式调度
- 非抢占式:当前进程一直运行,直至其终止或阻塞 时,才再次分配CPU。
- 抢占式:当其时间片结束或有更高级进程就绪时, 将正运行进程转为就绪,再次分配CPU。
调度算法:先来先服务(FCFS)、轮转、最短进程优先(SPN)、最高响应比优先(HRRN)。计算“周转时间”、 “归一化周转时间(带权周转时间 Tr/Ts)”及所有作业的平均值
-
先来先服务FCFS:
FCFS
通常与优先级策略结合,如每个优先级
一条队列,每条队列中的调度基于
FCFS
原则。
FCFS
利于长进程或
CPU
密集型的进程,
不利于短进程或
I/O
密集型的进程。
-
轮转RR:
RR
的平均周转时间可能较高,但
响应时间更短
。
由于解除阻塞的进程被排入就绪队列尾,轮转法
不利于
I/O
密集型进程
(
上次的剩余时间片被浪费
)
。
-
最短进程优先SPN:
-
最短剩余时间SRT:
-
最高响应比优先HRRN:
-
反馈(多级反馈队列)MF:
性能比较:
- 先来先服务FCFS: 简单,偏向长进程, 平均周转时间长。
- 轮转RR:公平。
- 最短进程优先SPN: 优于轮转。
- 最短剩余时间SRT: 由于抢占,效率优于
- SPN。 最高响应比优先
- HRRN:性能介于 FCFS和SPN之间。
- 反馈FB:短进程带权周转/等待时间短。