μC/OS II的任务管理

Posted 静Yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了μC/OS II的任务管理相关的知识,希望对你有一定的参考价值。

一、就绪任务的管理

μC/OS II总是在已就绪的任务中选择一个任务来运行。为了了解系统中的任务哪些是就绪任务,μC/OS II在系统初始化时建立了一个供就绪任务登记的表,这个表就叫做就绪任务表。

⒈、就绪任务表的结构

①就绪任务表建立在RAM中,系统中的每个任务都在这个表中占据一个位置 ,用这个位置的状态(1或0)来表示任务是否处于就绪状态,就绪任务表实质上是一个类型为INT8U的。

②注意!一个被分配了任务控制块和任务堆栈的任务要想取得抢占处理器的资格,必须先在就绪任务表中属于自己的位置上进行登记,否则就永远不会被处理器运行!
③为了便于对就绪表的查找:μC/OS II中定义了一个数据类型为INT8U的变量OSRdyGrp,使该变量的每一个位都对应OSRdyTbl[]的一个任务组(即数组的一个元素),如果某任务组中有任务就绪,则在变量OSRdyGrp里把该任务组所对应的位置为1,否则置为0。例如:如果 OSRdyGrp = 11100101,则意味着OSRdyTbl[0]、OSRdyTbl[2]、OSRdyTbl[5]、 OSRdyTbl[6]、OSRdyTbl[7]任务组中有任务就绪。
④由于变量OSRdyGrp有8个二进制位,每位对应OSRdyTbl[]数组的一个元素,每个元素又可记录8个任务的就绪状态,因此μC/OS II最多可管理8×8=64个任务。
将变量OSRdyGrp和二维数组OSRdyTbl[]结合在一起就得到了任务就绪表

以上是关于μC/OS II的任务管理的主要内容,如果未能解决你的问题,请参考以下文章

μC/OS-II 任务的同步与通信 --- 消息队列

μC/OS-II 信号量集

μC/OS-II任务代码

μC/OS-II的实验内容简介

μC/OS-II 创建一个任务的流程

嵌入式实时操作系统μC/OS II