处理机调度之实时调度

3.4实时调度

3.4.1实现实时调度的基本条件

1、提供必要的信息
  • 就绪时间:该任务成为就绪状态的时间。
  • 开始截止时间或完成截止时间:只需知道一个。
  • 处理时间:从开始执行到完成所需时间。
  • 资源要求:任务执行时所需的一组资源。
  • 优先级:根据任务性质赋予不同优先级。
2、系统处理能力强

假如系统中有m个周期性的硬实时任务,处理时间为Ci,周期时间表示为Pi;

  • 则单机系统中必须满足条件:
    ∑( Ci / Pi )≤1
  • 多处理机系统:
    ∑( Ci / Pi )≤N

3、采用抢占式调度机制

  • 硬实时任务: 广泛采用抢占机制。
  • 小的实时系统: 可采用非抢占调度机制(简化调度程序和对任务调度时所花费的系统开销)。

4、具有快速切换机制

  • 对外部中断的快速响应能力。
  • 快速的任务分派能力。

3.4.2实时调度算法的分类

可以按照不同方式对实时调度算法加以分类:

  • 按照实时任务性质:
    • 针对硬实时任务的调度算法
    • 针对软实时任务的调度算法
  • 按照调度方式:
    • 非抢占式
    • 抢占式

1、非抢占调度算法

  • 非抢占式轮转调度算法:适用于要求不太严格的场合!
    在这里插入图片描述

  • 非抢占式优先调度算法:适用于要求较为严格的场合!
    在这里插入图片描述

2、抢占式调度算法

  • 基于时钟的抢占式优先权调度算法:

    • 某高优先级任务到达后并不立即抢占,而等下一个时钟中断时抢占。在这里插入图片描述
  • 立即抢占的优先权调度算法:

    • 一旦出现外部中断,只要当前任务未处于临界区,就立即抢占处理机。在这里插入图片描述

3.4.3最早截至时间优先算法EDF(Earliest Deadline First)

  • 该算法是根据任务的截止时间确定任务的优先级;
  • 具有最早截止时间的任务排在队列的前面。

1.非抢占式调度方式用于非周期性实时任务

在这里插入图片描述

2.抢占式用于周期性实时任务

  • 假如在一个实时系统中,有两个周期性实时任务A和B;
    • 任务A要求每20ms执行一次,执行时间为10ms;
    • 任务B要求每50ms执行一次,执行时间为25ms。
    • 计算是否可调度
      10/20+25/50=1, 可调度!
  • 采用最早截至时间优先调度过程
    在这里插入图片描述
    与固定优先级算法对比:
    在这里插入图片描述

3.4.4最低松弛度优先LLF(Least Laxity First)算法

  • 最短空闲时间优先;
  • 用松弛度来表示任务紧急程度;
  • 松弛度=完成截止时间-运行时间-当前时间;
    • 例如,任务A在200ms时必须完成,本身运行时间100ms,则必须在100ms之前调度执行,A任务的紧急(松弛)程度为100ms;
      任务B在400ms时必须完成,需运行150ms,其松弛程度为250ms。
  • 该算法主要用于可抢占调度方式中。
  • 假如在一个实时系统中,有两个周期性实时任务A,B,任务A要求每20ms执行一次,执行时间为10ms;任务B要求每50ms执行一次,执行时间为25ms;
    由此可得知AB任务每次必须完成的时间分别为A1、A2、A3…和B1、B2、B3…如下图:
    在这里插入图片描述
    采用最低松弛度优先
    在这里插入图片描述

3.4.5优先级倒置

1.优先级倒置的形成

  • ★ “优先级倒置”的现象
    高优先级进程(或线程)被低优先级进程(或线程)延迟或阻塞。
  • ★例子
    • 有三个完全独立的进程P1、P2和P3,P1的优先级最高,P2次之,P3最低。
    • P1和P3通过共享的一个临界资源进行交互。下面是一段代码:
      P1: …P(mutex); CS-1; V(mutex);…
      P2: … program2…;
      P3: …P(mutex); CS-3; V(mutex) ;…
      在这里插入图片描述

2.优先级倒置的解决方法

一种简单的解决方法-中断禁止:
  • 假如进程P3在进入临界区后,P3所占用的处理机就不允许被抢占。
  • 如果系统中的临界区都较短且不多,该方法是可行的。
  • 反之,如果P3临界区非常长,则高优先级进程P1仍会等待很长的时间,其效果是无法令人满意的。
  • 还要防止P3在临界区出现死循环。
一个比较实用的解决方法-优先级继承
  • 当高优先级进程P1要进入临界区使用临界资源R时,如果已有一个低优先级进程P3正在使用该资源;
  • 此时一方面P1被阻塞,另一方面由P3继承P1的优先级,并一直保持到P3退出临界区
    在这里插入图片描述
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值