您的位置:首页 > 其它

Ready List

2016-02-21 18:40 381 查看
typedef  struct  os_rdy_list         OS_RDY_LIST;

struct  os_rdy_list {
    OS_TCB              *HeadPtr;                           /* Pointer to task that will run at selected priority     */
    OS_TCB              *TailPtr;                           /* Pointer to last task          at selected priority     */
    OS_OBJ_QTY           NbrEntries;                        /* Number of entries             at selected priority     */
};

OS_RDY_LIST               OSRdyList[OS_CFG_PRIO_MAX];   





void  OS_RdyListInit (void):

    将OSRdyList[] 初始化成如上图所示。

void  OS_RdyListInsert (OS_TCB  *p_tcb):

    将p_tcb的prio对应的bitmap中的位置1,如果等于OSPrioCur,OS_RdyListInsertTail(p_tcb);,否则OS_RdyListInsertHead(p_tcb);。

void  OS_RdyListInsertHead (OS_TCB  *p_tcb):

    将p_tcb插入到对应的优先级的列表的开头。

void  OS_RdyListInsertTail (OS_TCB  *p_tcb):

    将p_tcb插入到对应的优先级的列表的最后。

void  OS_RdyListMoveHeadToTail (OS_RDY_LIST  *p_rdy_list):

    将p_rdy_list最前面的TCB移到最后面。(时间片轮询时用到)

void  OS_RdyListRemove (OS_TCB  *p_tcb):

    将p_tcb从ready list中移除。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: