操作系统之处理机调度

一、处理机调度概念
1.CPU资源的时分复用

* 进程切换:CPU资源的当前占用者切换

保存当前进程在PCB中的执行上下文(CPU状态)
恢复下一个进程的执行上下文

* 处理机调度

从就绪队列中挑选下一个占用CPU运行的进程
从多个可用的CPU中挑选就绪进程可使用的CPU资源

* 调度程序:挑选就绪进程的内核函数

    * 调度时机
    * 调度策略

2.调度时机

* 内核运行程序的条件

    * 进程从运行状态切换到等待状态
    * 进程被终结了

以上两种情况针对于非抢占系统

* 非抢占系统

    * 当前进程主动放弃CPU时
* 可抢占系统

    * 中断请求被服务例程响应完成时
    * 当前进程被抢占

可抢占系统调度程序的条件

* 进程时间片用完
* 进程从等待切换到就绪

二、调度准则
1.调度策略
确定如何从就绪队列中选择下一个执行进程
2.处理机自愿的使用模式

* 进程在CPU计算和I/O操作间交替

    * 每次调度决定在下一个CPU计算时将哪个工作交给CPU
    * 在时间片机制下,进程可能在结束当前CPU计算前被迫放弃CPU

3.比较调度算法的准则

* CPU使用率

    * CPU处于忙状态的时间百分比
* 吞吐量

    * 单位时间内完成的进程数量
* 周转时间

    * 进程从初始化到结束的总时间
* 等待时间

    * 进程在就绪队列的总时间
* 相应时间

    * 从提交请求到系统给出相应所用的总时间

4.吞吐量与延迟

* 调度算法的要求

    * 希望“更快”的服务
* 更快的标准不一样,什么是“更快”

    * 传输文件时的高带宽,调度算法的高吞吐量
    * 玩游戏的低延迟,调度算法的低相应延迟

5.处理机调度策略的响应时间目标
减少响应时间
减少平均响应时间的波动
6.处理机调度策略的吞吐量目标

* 增加吞吐量

    * 减少开销(包括操作系统开销,上下文切换)
    * 系统资源的高效利用(CPU,I/O设备)
* 减少等待时间
* 操作系统需要保证吞吐量不受用户交互的影响
* 吞吐量是系统的计算带宽

7.处理机调度的公平性目标

* 保证每个进程占用时间的CPU相同
* 保证每个进程的等待时间相同
* 公平通常会增加平均响应时间

三、调度算法
1.先来先去服务算法(FCFS算法)

* 根据进程进入就绪状态的先后顺序排列
* 周转时间与队列的顺序有关

优点:简单
缺点:

* 平均等待时间波动较大

    * 短进程可能排在长进程的后面
* I/O资源和CPU资源的利用率较低

    * CPU密集型进程会导致I/O设备闲置时,I/O密集型进程也等待

2.短进程优先算法

* 选择就绪队列中执行时间最短的进程占用CPU进入运行状态

    * 就绪队列按预期的执行时间来排序

优点:短进程优先算法具有最优平均周转时间
缺点:

* 可能导致饥饿

    * 连续的短进程流会使长进程无法获取CPU资源
* 需要预知未来

    * 执行时间的预估,利用历史信息来预估未来的执行时间

3.最高响应比优先算法
选择就绪队列中响应比R值最高的进程
R=(等待时间+执行时间)/执行时间
算法特点:

* 在短进程优先算法的基础上改进
* 不可抢占
* 关注进程的等待时间
* 防止无限期推迟

4.时间片轮转算法(RR算法)
时间片是指分配处理机资源的基本时间单位
算法思路:

* 时间片结束时,按FCFS算法切换到下一个就绪进程
* 每隔(n-1)个时间片进程执行一个时间片q

算法的时间片长度:
RR算法开销
额外的上下文切换
时间片太大

* 等待时间过长
* 极限情况退化为FCFS算法

时间片太小

* 反应迅速,但产生大量的上下文切换
* 大量的上下文切换开销影响到系统吞吐量

时间片长度选择目标

* 选择一个合适的时间片长度
* 经验规则:维持上下文切换开销处于1%以内

5.多级反馈队列算法(MQ算法)
就绪队列被划分成多个独立的子队列
各个队列有自己的调度算法
队列间的调度

* 固定优先级

    * 先处理前台,后处理后台,但可能导致饥饿
* 时间片轮转

    * 每个队列都得到一个确定的能够调度其进程的CPU总时间

优点:
进程可在不同队列间移动的多级队列算法

* 时间片大小随优先级级别增加而增加
* 如进程在当前的时间片没有完成,则降到下一个优先级

算法特征:

* CPU密集型进程的优先级下降很快
* I/O密集型进程停留在高优先级

6.公平共享调度算法(FFS算法)
FSS算法控制用户对系统资源的访问

* 一些用户比其他用户组更重要
* 保证不重要的组无法垄断资源

    * 未使用的资源按比例分配
    * 没有达到资源使用率目标组获得更高的优先级

四、实时调度和多处理器调度
1.实时操作系统

* 定义

    * 正确性依赖于其时间和功能两方面的操作系统
* 性能指标

    * 时间约束的及时性
    * 速度和平均性能相对不重要
* 特征

    * 时间约束的可预测性

2.实时任务

* 任务

    * 一次计算,一次文件读取,一次信息传递等
* 任务属性

    * 完成任务所需要的资源
    * 定时参数

3.周期实时任务
一系列相似的任务,任务有规律的重复

* 周期p=任务请求间隔
* 执行时间e=最大执行时间
* 使用率=e/p

硬时限

* 错过任务时限会导致灾难性或非常严重的后果
* 必须验证在最坏的情况下能够满足时限

软时限

* 通常能满足任务时限,如果不满足,则降低要求
* 尽力保证满足任务时限

4.可调度性
一个实时操作系统能够满足任务时限要求

* 需要确定实时任务的执行顺序
* 静态优先级调度(RM):速率单调调度算法

    * 通过周期安排优先级
    * 周期越短优先级越高
    * 执行周期最短的任务
* 动态优先级调度(EDF):最早截止时间优先算法


* 截止时间越早优先级越高
* 执行截止时间最早的任务

5.多处理器调度
特征:

* 多个处理机组成一个多处理机系统
* 处理机间可负载共享

对称多处理器调度(SMP)

* 每个处理器运行自己的调度程序
* 调度程序对共享资源的访问需要进行同步

6.对称多处理器的进程分配
静态进程分配

* 进程从开始到结束都被分配到一个固定的处理机上执行
* 每个处理机都有自己的就绪队列
* 调度开销小
* 各处理机可能忙闲不均

动态进程分配

* 进程在执行中可分配到任意空闲处理机执行
* 所有处理机共享一个公共的就绪队列
* 调度开销大
* 各处理机的负载是均衡的

五、优先级反置
1.定义及出现的情况

* 操作系统中出现高优先级进程长时间等待低优先级进程所占用资源的现象
* 基于优先级的可抢占的算法都可能会出现

2.优先级继承

* 占用资源的低优先级进程继承资源的高优先级进程的优先级
* 只有占有资源的低优先级进程被阻塞时,才能提高占有资源进程的优先级

3.优先级天花板协议

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值