ucos-ii的任务调度
来源: 网络用户发布,如有版权联系网管删除 2016-06-06
ucos-ii的任务调度 ==
近看了下ucos-ii的任务调度这块,有些收获,但还有困惑的地方,这里写下作为自己的总结。
1、在ucos-ii中,有这么几张表来管理任务。
A、OSTCBPrioTbl[],其结构为OS_TCB指针的数组,其元素个数为64, 每一个元素对应一个任务的优先级,ucos-ii最多可以有64个任务,所以当有任务建立的候,其每一个元素均指向一个任务控制块(若相应的优先级,已经建立了任务的话);若相应的优先级没有建立任务,则该数组元素指向的是(OS_TCB *)0;
B、任务控制块链表,该链表的每个节点,都是OS_TCB型结构。任务控制块链表除了本身构成一个双向链表, 其还与OSTCBPrioTbl[](OSTCBPrioTbl[]存放的就是任务控制块的首地址)和任务堆栈相联系(通过OS_TCB结构的OSTCBStkPtr元素指向任务堆栈的栈顶来实现)。在新建一个任务的时候,都必须新建任务控制块置于任务控制块链表中,通过OSTCBList来实现将其放于任务控制块链表的开头即新建的任务控制块。
C、任务就绪表,为9个字节,(OSRdyGrp和OSRdyTbl[8]).
查看评论 回复