当前位置 博文首页 > 司夏的博客:操作系统 - 处理机调度
进程切换:CPU资源的当前占用者切换
处理机调度
调度程序:挑选就绪进程的内核函数
内核运行调度程序的条件
非抢占系统
可抢占系统
调度策略:确定如何从就绪队列中选择下一个执行进程
调度策略要解决的问题
调度算法:在调度程序中实现的调度策略
比较调度算法的准则:哪一个策略/算法较好?
进程在CPU计算和I/O操作间交替
CPU使用率:CPU处于忙状态的时间百分比
吞吐量:单位时间内完成的进程数量
周转时间:进程从初始化到结束(包括等待)的总时间
等待时间:进程在就绪队列中的总时间
响应时间:从提交请求到产生响应所花费的总时间
调度算法的要求
什么是更快?
传输文件时的高带宽,调度算法的高吞吐量。玩游戏时的低延迟,调度算法的低响应延迟。这两个因素是独立的。与水管的类比。
低延迟:喝水的时候想要一打开水龙头水就流出来。
高带宽:给游泳池充水时希望从水龙头里同时流出大量的水,并且不介意是否存在延迟。
减少响应时间。及时处理用户的输入请求,尽快将输出反馈给用户
减少平均响应时间的波动。在交互系统中,可预测性比高差异低平均更重要
低延迟调度改善了用户的交互体验。如果移动鼠标时,屏幕中的光标没动,用户可能会重启电脑
响应时间是操作系统的计算延迟。
增加吞吐量
减少等待时间。减少每个进程的等待时间
操作系统需要保证吞吐量不受用户交互的影响。操作系统必须不时进行调度,即使存在许多交互任务
吞吐量是操作系统的计算带宽
公平的定义:
公平通常会增加平均响应时间
依据进程进入就绪状态的先后顺序排列
进程进入等待或结束状态时,就绪队列中的下一个进程占用CPU
FCFS算法的周转时间,示例:3个进程,计算时间分别为12,3,3
先来先服务算法的特征
优点:简单
缺点:
选择就绪队列中执行时间最短进程占用CPU进入运行状态,就绪队列按预期的执行时间来排序
短进程优先算法的特征:缺点
可能导致饥饿,连续的短进程流会使长进程无法获得CPU资源
需要预知未来:
如何预估下一个CPU计算的持续时间?
简单的解决办法:询问用户,用户不知道怎么办?
选择就绪队列中响应比R值最高的进程
R=(w+s)/s
w: 等待时间(waiting time)
s: 执行时间(service time)
在短进程优先算法的基础上改进
不可抢占
关注进程的等待时间
防止无限期推迟
时间片:分配处理机资源的基本时间单元
算法思路:
时间片为20的RR算法示例
时间片轮转算法中的时间片长度
RR算法开销(额外的上下文切换)
时间片太大(等待时间过长,极限情况退化成FCFS)
时间片太小(反应迅速,但产生大量上下文切换,大量上下文切换开销影响到系统吞吐量)
时间片长度选择目标
就绪队列被划分成多个独立的子队列,如:前台(交互)、后台(批处理)
每个队列拥有自己的调度策略,如:前台-RR、后台-FCFS
队列间的调度
进程可在不同队列间移动的多级队列算法
MLFQ算法的特征
FSS控制用户对系统资源的访问
先来先服务算法
短进程优先算法
最高响应比优先算法
时间片轮转算法
多级反馈队列
公平共享调度
实时操作系统的定义:正确性依赖于其时间和功能两方面的操作系统
实时操作系统的性能指标
实时操作系统的特性:时间约束的可预测性
强实时操作系统:要求在指定的时间内必须完成重要的任务
弱实时操作系统:重要进程有高优先级,要求尽量但非必须完成
任务(工作单元):一次计算,一次文件读取,一次信息传递等等
任务属性:完成任务所需要的资源,定时参数
周期实时任务:一系列相似的任务
硬时限(Hard deadline)
软时限(Soft deadline)
可调度表示一个实时操作系统能够满足任务时限要求
速率单调调度算法(RM, Rate Monotonic)
最早截止时间优先算法 (EDF, Earliest Deadline First)
多处理机调度的特征
对称多处理器(SMP, Symmetric multiprocessing)调度
静态进程分配
动态进程分配
操作系统中出现高优先级进程长时间等待低优先级进程所占用资源的现象。
基于优先级的可抢占调度算法存在优先级反置
占用资源的低优先级进程继承申请资源的高优先级进程的优先级
只在占有资源的低优先级进程被阻塞时,才提高占有资源进程的优先级
占用资源进程的优先级和所有可能申请该资源的进程的最高优先级相同