其他分享
首页 > 其他分享> > 任务管理

任务管理

作者:互联网

1.任务的基本概念

从系统的角度看,任务是竞争系统资源的最小单位
FreeRTOS是一个支持多任务的操作系统,在FreeRTOS中,任务可以使用或等待CPU,使用内存空间等系统资源,并独立于其他任务运行

每个任务在自己的环境中运行,在任何时刻,只有一个任务得到运行(对单CPU而言),FreeRTOS调度器决定运行哪个任务。调度器会不断的启动、停止每一个任务,从
宏观上看,所有的任务都在同时进行

在FreeRTOS中,每个任务都有自己的栈空间(一段连续的内存),用于保存任务运行环境。任务越多,需要的栈空间越大,而一个系统能运行多少个任务,取决于系统可用的内存

任务通常会运行在一个死循环中,不会退出,如果不需要某个任务,可以调用FreeRTOS中的删除任务API函数将任务删除,释放系统资源

2.任务状态的概念

FreeRTOS系统中的任务有四种状态:
Running——运行态
当任务处于实际运行时被称之为运行态,即CPU的使用权被这个任务占用;

Ready——就绪态
处于就绪态的任务是指那些能够运行(没有被阻塞和挂起),但是当前没有运行的任务,因为同优先级或更高优先级的任务正在运行;

Blocked——阻塞态
由于等待信号量,消息队列,事件标志组等而处于的状态被称之为阻塞态,另外任务调用延迟函数也会处于阻塞态。

Suspended——挂起态
类似阻塞态,通过调用函数vTaskSuspend()对指定任务进行挂起,挂起后这个任务将不被执行,只有调用函数xTaskResume()才可以将这个任务从挂起态恢复。

3.任务状态的切换

 

 

标签:FreeRTOS,管理,阻塞,任务,系统资源,CPU,运行
来源: https://www.cnblogs.com/-glb/p/16476185.html