(PS:个人课下整理的操作系统笔记,OneNote直接拷贝过来的,图片看不了就将就一下,配合张伟老师的PPT看效果更好)
一、调度算法(Algorithm):(了解)
1.多级队列(MultiLevel Queue)调度——将一个就绪队列分成几个子队列,每个子队列有它自己的调度算法
- 进程通常根据它的内存大小、进程优先级、进程种类来分到各个队列中
- 如把就绪队列分为前端(interactive,高优先级进程如RR)和后端(batch,CPU密集型进程如FCFS)
- 队列之间也必须要有调度算法(如进程从前端调度到后端),
- 通常采用固定优先级(fixed priority)可抢占(primitive)调度,防止饥饿
- 也可以采用时间片(time slice)调度(如80% to foreground in RR,20% to background in FCFS )
- 多级调度队列的算法不允许进程在队列间移动,优点:低调度开销,缺点:不够灵活,因此有接下来的:
2.多级反馈队列(MultiLevel Feedback Queue)调度——允许进程在队列间移动,通用却复杂
- 如果进程占用过多CPU时间,它会被移到更低优先级队列中
- 而较低优先级的进程等待时间过长(饥饿),会移到高优先级队列中(老化)
- 举例:
- 调度程序的参数定义:
- 队列数量
- 每个队列的调度算法
- 进程何时升到高优先级队列的算法
- 进程何时降到低优先级队列的算法
- 来一个进程需要服务,确定进入哪一个队列的方法
二、多处理器(Multi-Processor)调度(了解)
- 多个CPU使负载分配(load sharing)称为可能,也带来更复杂的调度问题
- 多处理器调度方法:
- 非对称多处理(asymmetric multiprocessing)——一个处理器访问系统数据结构,减轻数据共享的需要,处理所有的调度决定、IO处理和其他系统活动
- 对称多处理(symmetric multiprocessing,SMP)——每个处理器自我调度
三、实时(Real-Time)调度
1.硬(hard)实时系统——在保证时间内完成关键任务
2.软(soft)实时系统——对计算限制较少,要求关键进程有更高的优先权
四、算法评估
- 最大化CPU使用率,最大化吞吐量
- 分析评估法(analytic evaluation):使用算法产生公式或数字,以评估该算法性能
- 确定模型法(deterministic modeling)
- 排队模型
- little公式:n(平均队列长度)=(平均到达率,如每秒3个进程)λ*W(队列平均等待时间)
- 模拟(simulation)
- 实现