第5章 信号量集
5.1 信号量集的结构150
5.1.1 信号量集的标志组150
5.1.2 等待任务链表152
5.1.3 对等待任务链表的操作154
5.2 信号量集的操作155
5.2.1 创建信号量集155
5.2.2 请求信号量集156
5.2.3 向信号量集发信号157
5.2.4 查询信号量集的状态163
5.2.5 删除信号量集166
5.3 小结167
1. 信号量集
标志组:存放了信号量集中的所有信号。
等待任务链表:链表中的每个节点都对应一个正在等待信号量集的等待任务。
2. 标志组OS_FLAG_GRP
OSFlagType,识别是否为信号量集的标识,固定为OS_EVENT_TYPE_FLAG
OSFlagWaitList,指向等待任务链表的指针
OSFlagFlags,所有信号列表
3. 等待任务链表OS_FLAG_NODE
OSFlagNodeNext,指向下一个节点的指针
OSFlagNodePrev,指向前一个节点的指针
OSFlagNodeTCB,指向对应任务的任务控制块的指针
OSFlagNodeFlagGrp,反向指向信号量集的指针
OSFlagNodeFlags,信号过滤器
OSFlagNodeWaitType,定义逻辑运算关系的数据
4.对等待任务链表的操作
OS_FlagBlock()
添加节点,在OSFlagPend()中被调用。
OS_FlagUnlink()
删除节点,在OSFlagPost()中被调用。
5. 信号量集的操作
OSFlagCreate()
创建信号量集
OSFlagPend()
请求信号量集
OSFlagPost()
向信号量集发信号
OSFlagQuery()
查询信号量集的状态
OSFlagDel()
删除信号量集
文章评论(0条评论)
登录后参与讨论