9.1处理器调度
- 长程调度(作业调度):决定是否将提交的新作业送入内存
- 控制系统并法度
- 长程调度也根据系统并发度决定启动,当老进程结束或CPU空闲超过阈值时
- 调度不频繁
- 根据FCFS,优先级,预计执行时间,组合CPU密集型,I/O密集型,组合不同I/O需求等来决定调度哪个作业
- 分时系统不需要长程调度
- 中程调度:决定哪些进程在内存和磁盘间交换(挂起)(交换区专放挂起进程)
- 根据系统并发度决定中程调度的时机
- 考虑换入(出)进程的内存空间长度
- 短程调度:决定CPU执行哪个就绪进程
- 调度频繁
- 当进程被阻塞或抢占时调度
- 时钟中断(时间片结束)
- I/O中断
- 操作系统调用
- 信号(信号量)
9.2调度算法
- 短程调度准则
- 面向用户
- 周转时间——适合批处理作业
- 响应时间——适合分时系统
- 最后期限——适合实时系统
- 归一化时间//带权周转时间(不带单位<=1)
- 面向系统
- 吞吐量
- 处理器利用率
- 面向用户
- 选择调度策略
- 两种调度(决策模式):
- 非抢占式:当前进程一直运行,直到终止或阻塞才再次分配CPU
- 抢占式:时间片结束或有更高级进程就绪时被抢占
- 策略
- FCFS(先来先服务):按照提交顺序,直至完成或阻塞
- 不利于短进程和I/O密集型
- 利于长进程和CPU密集型
- RR(轮转)
- 固定时间片,按照提交顺序各执行一个时间片
- 平均周转时间可能长但是,响应时间短
- 不利于I/O密集型(为解决这个茅盾提出了虚拟轮转法,即因为I/O而阻塞的进程进入辅助队列,辅助队列的优先级高于就绪队列,但他运行的时间只能是上次剩下的时间而不是一个时间片)
- SPN(最短进程优先)
- 预期最短的进程先运行,直至阻塞或完成
- 利于短进程
- 不利于长进程和紧迫任务
- 为预测CPU用时,有指数平均法预测Tn+1 = aTn+(1-a)Tn,其中Tn为上一次CPU实际用时,a为指数
- SRT最短剩余时间优先
- 预计运行时间比当前进程的剩余运行时间更短时抢占
- HRRN(最高响应比优先)综合FCFS和SPN
- 当前进程阻塞或完成时,计算所有就绪进程响应比(该时刻的带权周转时间)
- MF(反馈/多级反馈)
- 综合了FCFS,和RR(最后一条队列是RR)
- 分为几个时间片序列,一开始都在第1条队列,每个进程运行完一个时间片被抢占就降到下一个就绪队列,时间片更长,优先级变低
- 优先权调度
- 根据优先级,分为可抢占和不可抢占
- 静态优先级:优先级保持不变,可能导致饥饿
- 动态优先权:根据老化(等待时间延长)提高优先级,根据执行时间延长,降低优先级
- 根据优先级,分为可抢占和不可抢占
- 几种调度算法的比较
- FCFS简单
- RR 公平
- SPN优于RR
- SRT效率优于SPN
- HRRN介于FCFS和SPN中
- FB带权周转时间最短
- FCFS(先来先服务):按照提交顺序,直至完成或阻塞
- 两种调度(决策模式):