不同的嵌入式多任务系统可能有不同的任务状态定义,本专栏以FreeRTOS为例讲一讲任务状态。
FreeRTOS有运行态、就绪态 、阻塞态和挂起态四种状态,任务状态之间的转换如下图所示:
- 运行态:当一个任务正在运行时,那么就说这个任务处于运行态,处于运行态的任务就是当前正在使用处理器的任务。如果使用的是单核处理器的话那么不管在任何时刻永远都只有一个任务处于运行态;
- 就绪态:处于就绪态的任务是那些已经准备就绪(这些任务没有被阻塞或者挂起),可以运行的任务,但是处于就绪态的任务还没有运行,因为有一个同优先级或者更高优先级的任务正在运行;