背景
- 上下文切换
- CPU调度
调度原则
- CPU利用率
- 吞吐量:在单位时间内完成的进程数量
- 周转时间:一个进程从初始化到结束,包括所有等待时间所花费的时间
- 等待时间:进程在就绪队列的总时间
- 响应时间:从一个请求被提交到产生第一次响应所花费的总时间
-
调度算法
先来先服务(FCFS)
如果进程在执行中阻塞,队列中的下一个会得到CPU
- 优点:
- 简单
缺点:
按照预测的完成时间来将任务入队
- 可以是抢占也可以不可抢占的,根据最短最短剩余时间
缺点
考虑了等待时间和执行时间
-
轮询(Round Robin)
各个进程轮流占用CPU时间,公平,使每个进程都有机会去占用CPU
- 设计时间切片
缺点
将就绪队列划分成独立的队列
- 每个队列都有自己的调度策略
- 根据反馈来调整优先级
优点:
FFS控制用户对系统资源的访问
- 在用户级别对资源进行公平调度
linux,CFS(Completey Fair scheduler),完全公平调度算法
实时调度
实时操作系统
定义
- 正确性依赖于时间和功能两个方面的操作系统
- 性能指标
- 时间约束的及时性
- 速度和平均性能相对不重要
- 强实时系统
- 时间约束很重要,需要保证在约束时间内完成,不然会产生错误
弱实时系统
多个相同的单处理器组成一个多处理器
-
对称多处理器(SMP)
每个处理器运行自己的调度程序
-
优先级反转
优先级继承
-
优先级天花板
给所需的资源定优先级
