计算机操做系统——什么是最先截止时间优先调度算法?什么是最低松弛度有限调度算法?举例说明之~

  • 最先截止时间优先算法(Earliest Deadline First,EDF)

    • 定义:EDF算法是指根据任务的截止时间来肯定任务的优先级的算法,任务截止时间越早,其优先级愈高。
    • 做用对象:便可用于抢占式调度方式中,也能够用于非抢占式调度方式中。
      • 非抢占式调度方式用于非周期实时任务​​​​​

        • 任务1最早到达最早开始执行
        • 任务1执行过程当中任务二、任务3到达,因为任务3截止时间更早,其优先级愈高,因此执行完任务1后执行任务3
        • 任务3执行过程当中任务4到达,因为任务4截止时间更早优先级愈高,任务3执行完后执行任务4,
        • 最后执行任务2
      • 抢占式调度方式用于周期实时任务

        • 周期任务A,周期时间20ms,处理时间10ms
        • 周期任务B,周期时间50ms,处理时间25ms
        • 为了说明一般的优先级调度不能适用于实时系统,该图增长了固定优先级调度的第二行和第三行
        • 第二行中
          • 固定A,B优先级,且优先级A>B;
          • 先执行A1,A1执行完后执行B1;
          • B1执行了10ms后被A2抢占;
          • A2执行完后继续执行B2;
          • B2执行10ms后被A3抢占;
          • A3执行完后已经到达B2的截止时间了,但B2总共执行了20ms,很明显低于所需处理时间25ms。
        • 第三行中
          • 固定A,B优先级,且优先级B>A;
          • 先执行B1,B1执行完后已通过了A1的截止时间,可知A1根本就没能执行到。
        • 第四行中
          • A1截止时间早于B1截止时间,先执行A1;
          • A1执行完执行B1,B1执行10ms后A2到达;
          • A2截止时间早于B1截止时间,先执行A2;
          • A2执行完执行B1,B1执行10ms后A3到达;
          • B1截止时间早于A3截止时间,继续执行B3;
          • 以此类推,每一个任务有序无错过进行,能知足系统的要求。

 

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

    • 定义:LLF算法是指根据任务的紧急(或松弛)程度来肯定任务的优先级的算法,任务紧急程度愈高,其优先级就愈高。
    • 做用对象:主要用于可抢占式调度方式中。
    • 任务松弛度计算公式:任务的松弛度=必须完成时间-其自己的运行时间-当前时间
      • 周期性任务A,要求每20ms执行一次,执行时间为10ms;
      • 周期性任务B,要求每50ms执行一次,执行时间为25ms;
      • t=0s时,A1的松弛度=20ms-10ms-0ms=15ms,B1的松弛度=50ms-25ms-0=25ms,先执行A1;
      • A1执行完后,B1的松弛度=50ms-25ms-10ms=15ms,A2的松弛度=40ms-10ms-10ms=20ms,执行B1;
      • B1执行10ms后,B1的松弛度=50ms-25ms-20ms=5ms,A2的松弛度=40ms-10ms-20ms=10ms,继续执行B1;
      • 以此类推,可得下图: