FreeRTOS 中的调度算法
01 调度算法概述
调度算法的作用:
- 实时系统的调度需求
- 相应时间要求
- 任务优先级
- 资源利用率
- FreeRTOS 调度算法的目标
- 提供可预测的任务调度
- 实现任务的优先级管理
- 最大化系统资源利用率
FreeRTOS 调度算法的分类:
- 抢占式调度算法 优先级抢占式调度算法、时间片轮转算法
- 非抢占式调度算法 优先级调度算法、先来先服务调度算法
02 抢占式调度算法
优先级抢占式算法
- 算法原理
- 任务优先级越高,被调度的机会越大。
- 任务优先级相同时,采用时间片轮转调度
- 优点
- 可以满足实时系统的响应时间要求
- 可以实现任务的优先级管理
- 缺点
- 低优先级任务可能会被长时间阻塞
时间片轮转调度算法
- 算法原理
- 每个任务被分配一个时间片
- 时间片用完后哦,任务被挂起,等待下一次调度
- 优点
- 公平地分配CPU时间片
- 可以避免低优先级任务长时间阻塞
- 缺点
- 无法满足实时系统的响应时间要求
03 非抢占式调度算法
优先级调度算法
- 算法原理
- 任务按照优先级顺序执行
- 高优先级任务执行完或阻塞后,才会执行低优先级任务
- 优点
- 可以满足实时系统的响应时间要求
- 可以实现任务的优先级管理
- 缺点
- 低优先级任务可能会被长时间阻塞
先来先服务调度算法
- 算法原理
- 任务按照到达时间顺序执行
- 先到达的任务先执行
- 优点
- 简单易实现
- 可以避免低优先级任务长时间阻塞
- 缺点
- 无法满足实时系统的响应时间要求