FreeRTOS调度策略配置
在本实例中,我们将了解 FreeRTOS 调度程序。 FreeRTOS 内核使用什么类型的调度程序以及如何使用不同的调度策略对其进行配置。 首先,我们将定义术语调度程序以及调度策略如何从处于就绪状态的所有可用任务中选择任务。
1、调度器简介
所有操作系统都使用调度程序将 CPU 时间分配给任务或线程。 因为在单核处理器的情况下,在给定时间只能在 CPU 上运行一个进程。 低成本微控制器仅配备一个 CPU,而 FreeRTOS 专为资源和内存受限的微控制器而设计。 因此,调度程序提供了决定哪个任务应该在 CPU 上运行的机制。
任务可以处于这四种可能的状态之一,例如运行、就绪、阻塞、暂停。 调度程序只能根据调度策略选择处于就绪状态的任务。 此外,处于阻塞状态(等待互斥或信号量等事件)或处于挂起状态的任务无法调度。
1)调度策略
调度策略是调度程序用来决定在处理器上运行哪个任务的算法。 实时操作系统中使用了不同类型的调度算法。 调度算法主要有时间片式和抢占式两种。
2)FreeRTOS 调度策略
FreeRTOS 内核支持两种调度策略:
- 时间片调度策略:这也称为循环算法。 在这个算法中,所有同等优先级的任务都在等量的 CPU 时间中获得 CPU。
- 固定优先级抢占式调度:这种调度算法根据任务的优先级选择任务。 换句话说,高优先级任务总是在低优先级任务之前获得 CPU。 只有当没有处于就绪状态的高优先级任务时,低优先级任务才能执行。
2、如何配置 FreeRTOS 调度策略
|