实时调度

实时调度的基本条件
  • 实时系统必须提供必要的调度信息
    • 运行时间
    • 到达之间
    • 完成截止时间/开始截止时间
    • 资源要求
    • 优先级
  • 实时系统的处理能力足够强(在有限的周期内,能够计算完成用户需要的任务)
    • 计算机处理能力是一个周期内完成3个任务,但是分配了四个任务,一定完成不了
  • 允许采用抢占式调度方式
  • 具有快速的切换机制(为抢断提供条件)
    • 对中断的快速响应
    • 快速的任务分配能力

实时调度算法的分类

根据实时任务的性质
  • 硬实时调度算法:所有任务确定时间内必须完成
  • 软时间调度算法:大部分任务再确定时间内完成
按照调度方式
非抢占式调度算法(不允许剥夺正在执行的进程)
  • 时间片转轮调度算法
    • 响应时间:秒级
    • 同分时操作系统,给所有的任务分配时间片,按时间片轮流执行
  • 非抢占式优先权调度算法
    • 响应时间:百毫秒级
    • 为所有进程安排优先权,优先权高的先执行,允许后来的高优先权的程序插队,先执行
抢占式调度算法(允许剥夺正在执行的进程)
  • 基于时钟中断的抢占的优先权调度算法
    • 响应时间:几十毫秒级
    • 每到时钟中断的时候,高优先级的程序可以剥夺正在占用CPU执行的程序的使用权。
    • 相当于在非抢占式优先权中,允许进程在时钟中断的时候进行抢占
  • 立即抢占优先权调度
    • 响应时间:几毫秒或者几百微妙
    • 一旦有优先级高于当前任务的任务出现,立即中断正在执行的任务,切换至当前优先级最高的任务

常见的调度算法——最早截止时间优先(EDF)

  1. 基本思想:截止时间越早,优先级越高
  2. 截止时间:开始截止时间和完成截止时间
  3. 调度方式:抢占式调度算法
  4. 例子

非抢占式

实时调度

  • 任务按照1,2,3,4的顺序到达,但是开始截止时间是按照1,3,4,2的顺序,所以真正执行的顺序是1,3,4,2

抢占式
实时调度

  • 任务到达的顺序是A,B,C,D,E,开始截止时间的顺序是B,C,E,D,A,再结合任务的执行时间发现在A执行完毕的情况,B一定超时,系统报错,所以允许B抢占A的执行资源。
常见的实时调度算法——最低松弛度优先(LLF)
  1. 基本思想:任务松弛度越低,优先级越高
  2. 任务松弛度:必须完成的时间 - 本身运行的时间 - 当前时间(简而言之,松弛时间就是允许在拖延的时间)
  3. 调度方式:抢占式调度算法
  4. 例子
    实时调度
    实时调度

注意:最低松弛度的计算时间点:任务开始截止时间和任务运行完成时间

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
  • 2021-09-21
  • 2021-12-15
  • 2021-11-02
  • 2022-12-23
  • 2021-12-05
猜你喜欢
  • 2021-12-04
  • 2021-12-05
  • 2021-12-08
  • 2021-04-05
  • 2021-12-05
  • 2021-11-14
  • 2021-05-23
相关资源
相似解决方案