操作系统学习05 调度

  1. 背景:
    上下文切换:
    操作系统学习05 调度_第1张图片

    CPU调度:
    操作系统学习05 调度_第2张图片
    在进程/线程的生命周期的什么时候进行调度?
    内核运行调度程序的条件(满足一条即可):一个进程从运行状态切换到等待状态;一个进程被终结了
    不可抢占:调度程序必须等待事件结束
    可以抢占::调度程序在中断后被响应执行;当前的进程从运行切换到就绪,或者一个进程从等待切换到就绪;当前运行的进程可以被换出

  2. 调度原则:
    每个调度决定都是关于在下一个CPU突发时 将哪个工作交给CPU
    在时间片机制下,线程可能在结束当前CPU突发前被迫放弃CPU

调度算法评价指标:
CPU使用率(CPU处于繁忙状态所占时间的百分比,越高越好);吞吐量(在单位时间内完成的进程数量);周转时间(一个进程从初始化到结束,包括所有等待时间所花费的时间);等待时间(进程在就绪队列中的总时间);响应时间(从一个请求被提交到产生第一次响应所花费的总时间)

低延迟和高宽带:不一样的概念,注意区分操作系统学习05 调度_第3张图片
好的调度算法:操作系统学习05 调度_第4张图片
操作系统学习05 调度_第5张图片

3.调度算法
操作系统学习05 调度_第6张图片
FIFO:操作系统学习05 调度_第7张图片
操作系统学习05 调度_第8张图片

短进程优先:
操作系统学习05 调度_第9张图片
缺点:操作系统学习05 调度_第10张图片
最高响应比优先:相比于前一个算法,考虑了等待时间,可以有效避免饥饿现象
操作系统学习05 调度_第11张图片

轮循Round robin,设置时间片,时间片的长短很重要:
操作系统学习05 调度_第12张图片
多级队列算法:操作系统学习05 调度_第13张图片
多级反馈队列 动态调整优先级:操作系统学习05 调度_第14张图片
公平共享调度算法:
操作系统学习05 调度_第15张图片
总结:操作系统学习05 调度_第16张图片
4. 实时调度:
正确性依赖于其时间和功能两方面的一种操作系统
性能指标:
时间约束的及时性(deadlines!)
速度和平均性能不重要
主要特性:
时间约束的可预测性
强实时系统:
需要在保证的时间完成重要的任务,必须完成。
弱实时系统:
要求重要的进程优先级更高,尽量完成,并非必须。
硬时限:
如果错过最后期限会产生非常灾难性后果;必须严重:在最坏情况下也能满足时限吗?保证确定性。
软时限:
理想情况下,时限应该被最大满足。如果有时限没被满足,那么就相应的降低要求;尽最大努力去保证。
静态优先级调度;动态优先级调度

RM(Rate monotonic)速率单调调度/EDF(Earliest Deadline First)最早期限调度:
操作系统学习05 调度_第17张图片
5. 多级处理器调度与优先级反转:
多个CPU的调度更加复杂:多个相同的单处理器组成一个多处理器;优点:负载共享。
多对称处理器(SMP):每个处理器运行自己的调度程序;需要在调度系统中同步。
优先级反转:
可以发生在任何基于优先级的可抢占调度机制中。
当系统内的环境强制高优先级任务等待低优先级任务时发生。:T1虽然优先级高于T2却必须等待T2. 解决办法,让T3继承T1优先级
操作系统学习05 调度_第18张图片 操作系统学习05 调度_第19张图片

你可能感兴趣的:(架构)