FreeRTOS 中的调度算法

发布时间 2023-09-23 21:03:42作者: 杭冷卉

FreeRTOS 中的调度算法

01 调度算法概述

调度算法的作用:

  • 实时系统的调度需求
    • 相应时间要求
    • 任务优先级
    • 资源利用率
  • FreeRTOS 调度算法的目标
    • 提供可预测的任务调度
    • 实现任务的优先级管理
    • 最大化系统资源利用率

FreeRTOS 调度算法的分类:

  1. 抢占式调度算法 优先级抢占式调度算法、时间片轮转算法
  2. 非抢占式调度算法 优先级调度算法、先来先服务调度算法

02 抢占式调度算法

优先级抢占式算法

  • 算法原理
    • 任务优先级越高,被调度的机会越大。
    • 任务优先级相同时,采用时间片轮转调度
  • 优点
    • 可以满足实时系统的响应时间要求
    • 可以实现任务的优先级管理
  • 缺点
    • 低优先级任务可能会被长时间阻塞

时间片轮转调度算法

  • 算法原理
    • 每个任务被分配一个时间片
    • 时间片用完后哦,任务被挂起,等待下一次调度
  • 优点
    • 公平地分配CPU时间片
    • 可以避免低优先级任务长时间阻塞
  • 缺点
    • 无法满足实时系统的响应时间要求

03 非抢占式调度算法

优先级调度算法

  • 算法原理
    • 任务按照优先级顺序执行
    • 高优先级任务执行完或阻塞后,才会执行低优先级任务
  • 优点
    • 可以满足实时系统的响应时间要求
    • 可以实现任务的优先级管理
  • 缺点
    • 低优先级任务可能会被长时间阻塞

先来先服务调度算法

  • 算法原理
    • 任务按照到达时间顺序执行
    • 先到达的任务先执行
  • 优点
    • 简单易实现
    • 可以避免低优先级任务长时间阻塞
  • 缺点
    • 无法满足实时系统的响应时间要求