uC/OS-II总是在已就绪的任务中选择一个任务来运行。为了了解系统中的任务哪些是就绪任务,uC/OS-II在系统初始化时间里了一个供就绪任务登记的表,整个表就叫做就绪任务表。
1).8x8矩阵
Jean J.Labrosse 在设计的时候,因为uc/os中每个任务的优先级都是不同的,这样就使得每个任务都有与之相对应的独一无二的优先级。因此,任务就绪状态就可以根据优先级别的数量建立一个表,通过这个表,调度器就可以决定下一次该哪个优先级的任务开始运行了。因为uC/OS-II任务最多只能是64个,Jean J.Labrosse 就把就绪表分成8*8的一个矩阵形表(table),这样就刚好能存放64个就绪的任务了。这样就有了下面的表格,里面的数字代表优先级。

这个表格就是OSRdyTbl[];按优先级将它分成了八组,每一行作为一组,每组八个任务,(也即按Y坐标分组)。
uC/OS-II的就绪任务

本文详细介绍了uC/OS-II操作系统中任务就绪表的设计和使用,包括8x8矩阵结构、OSRdyGrp和OSRdyTbl的关系,以及如何通过这两个变量快速定位就绪任务。通过理解就绪表的组织方式,可以更好地掌握uC/OS-II的调度机制。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



