信号量集简析

信号量集简析

ID:27744495

大小:227.93 KB

页数:9页

时间:2018-12-05

信号量集简析_第1页
信号量集简析_第2页
信号量集简析_第3页
信号量集简析_第4页
信号量集简析_第5页
资源描述:

《信号量集简析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、信号呈集的结构标志组+等待任务链表1、标志组OS_FLAG_GRP结构:typcdefstruct{1NT8UOSElagType;//识别是否为信号量集的秘识OSHagType=OS_EVENT_TYPE_FLAGvoid^OSFlagWaitList;//指向等待任务链表的指针//OSFlagWaitList作为指针把这叫标志组链接成一个中•向链表OS.FLAGSOSFlagFlags;//所冇信号列表信号呈集屮"I以存放多少个信号,取决POSFlagFlags的K度}OS—FLAG_GRP;OSFIagTy

2、peOSFIagWaitListOSEVENTTYPEFLAGOSFIagFlags1/Op/O[1/o[l/oJl/Oj1/Ow

3、l/0折怀wn务链々OSFIagFreeListl^5-3杨•位痛农•个的状态2、等待任务链表m5.2d的状忠信号量集用一个双向链表來组织等待任务等待任务链表节点OSJFLAGJMODE的结构:typedefstruct{void*OSFlagNodcNcxt;//指向下一个节点的指针void*OSFlagNodePrev;//指向前一个节点的指针void*OSFlagNodeTCB

4、;//指向对应仟务的任务控制块的指针,通过其指针把链表节点与等待任务关联起來。void^OSFlagNodeFlagGrp;//反向指向信号呈集的指针,删除一个Vf点或添加一个V点时用到的指针OS.FLAGSOSFlagNodeFlags;//信号过滤器,OSFlagNodeFlags对应的二进制位进行置1来指定,不需要位置()•INT8UOSFlagNodcWaitTypc;//定义逻辑运算关系的数据,4个常数之一}OS_FLAG_NODE;常数f.i1-;ff效状态Ti旧汀务的城沭策件IOSFLAGWAITC

5、LRALUkOSFLAGWAITCLRAND0GV个部效(个0}OS^FLAG.WAIT^CLR^ANYkOS^FLAG^WAIT^CLR^OR0个成1个以上"效(打0)OSFLAGWAITSETALL?父OS一FLAGJ/VAIT一SET一AND1UV个部仃效(个1)OSFLAGWAITSETANYOSFLAGWAITSET*OR1个或1个以r.心效及的Yj攻状态及•HHr之阿的逻识发系的常数图5-4是信号S樂等待任务链表屮一个节点的示意图。OSFlagNodeFlags:的值表明等待任务所等待的信号是标志组成

6、员OSFIagFlags屮的第0、第4和第7个信号;OSFIagNodeVVaiteType:的値表明:信兮的冇效状态被定义为0,即当任务所等待的第0、第4和第7个信兮的状态都力0吋,任务才可以结束等待状态而进入就绪状态。OSFIaaNodeNextI'llhOSFLAGGRPWdOSFlagNodeFlagsOSFIagNodeVVaiteTyped®OSFIagNodePrevOSAaaNodeTCBOSFIagNodeFlagGrp折句等mr:务的fr:务抄m块1^5-4V:f!?u*1OSF^No^rTC

7、BPPM酗piypcos^fiagZ5-4憧兮量A尋待任务選表的一fTOOSFIagFlags:来记录信号,如信号位数OSFlagNodeFlags:来筛选信号,如决定0,4,7当任务所等待的第0、第4和第7个信号的状态都为0吋,任务才可以结束等待状态而进入就绪状态OSFIagNodcWaitcTypc:來控制信号的有效状态和信号量集有效之间的逻辑关系。把等待仔务链表的节点链接起来就形成/等待仔务链表,茌等待仔务链表的基础上,再加上标志组和各个节点对应的任务控制块就形成了整个的信号量集。信号量集的示意图如图5-6

8、所示。OSFUgHodeFhi9G

9、.vflok.Fl3<>sOSRa^NodeWailType...等tyfr务》衣OSTCBFIdgNodeOSTCBFIagNodeOS一TC8OS-TCBr(i5-6•;:,mOSFUgtkxWFU7G

10、ePrevOSFUgNodeTCBOSFI>gNOSFtogNodBWfeltType5.1.3对等待任务链农的操作MC/os-II定义了两个对等待任务链表的基本操作:添加节点和删除节点,以供对信号最集操作的函数调用。1、添加节点OS_FlagBlock()给等待任务链表添加节点的函数为OS_FlagBlock()。该函数的原型如下:staticvoidOS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。