- 1、本文档共98页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
基于OpenHarmony的嵌入式开发
第三章OpenHarmony内核进阶分析大连理工大学-朱明
安全边距3.1进程间通信[3.1.0]进程间通信简介LiteOS-M调度对象是任务Task,LiteOS-A是进程Process和任务进程间通信(Inter-ProcessCommunication,IPC)指操作系统提供的,供进程(任务)之间共享数据的机制和方法,应用程序可以通过IPC实现相互之间的通信,IPC关系着操作系统内核的效率问题。LiteOS-M所支持的IPC类型包括:事件(Event)、互斥锁(Mutex)、队列(Queue)和信号量(Semaphore)。LiteOS-A除了支持上述类型之外,还支持信号(Signal)和用户态快速互斥锁(Futex)等。IPC具有很强的通用性,本小节不区分LiteOS-M和LiteOS-A。基于OpenHarmony的嵌入式开发2
安全边距3.1进程间通信[3.1.1]事件Event事件:用于任务间的同步操作接口:事件初始化、事件读写、事件清零、事件销毁等表示:用32位无符号整型变量来表示的,其中每一位表示一种事件类型,LiteOS共表达了31种可用的事件类型(第25位不可用)。基于OpenHarmony的嵌入式开发3/***@ingrouplos_event*Eventcontrolstructure*/typedefstructtagEvent{UINT32uwEventID;/**Eventmaskintheeventcontrolblock,indicatingtheeventthathasbeenlogicallyprocessed.*/LOS_DL_LISTstEventList;/**Eventcontrolblocklinkedlist*/}EVENT_CB_S,*PEVENT_CB_S;事件控制块
安全边距3.1进程间通信[3.1.1]事件(Event)LitsOS事件的特点:(1)任务间的事件同步,可以是一对多,也可以多对多的。一对多表示一个任务可以等待多个事件,多对多则表示多个任务可以等待多个事件。但是一次写事件最多触发一个任务从阻塞中醒来。(2)事件具有读超时机制。(3)事件只做任务间同步,不传输具体数据。(4)多次向事件控制块写入同一事件类型,在被清零前等效于只写入一次。(5)多个任务可以对同一事件进行读写操作。(6)支持事件读写超时机制。基于OpenHarmony的嵌入式开发4
安全边距3.1进程间通信[3.1.1]事件(Event)LitsOS事件的运作流程示例基于OpenHarmony的嵌入式开发5创建一个事件控制块,通过该控制块维护一个已处理的事件集合,以及等待特定事件的任务链表。向事件控制块中写入指定的事件。事件控制块更新事件集合,并遍历任务链表,根据任务等待具体条件满足情况决定是否唤醒相关任务。如果读取的事件已存在则会直接同步返回。其他情况会根据超时时间或事件触发情况来决定返回时机。如果等待的事件条件在超时时间耗尽之前到达,则阻塞任务会被直接唤醒,否则只能在超时时间耗尽时,该任务才会被唤醒。读事件条件满足与否取决于参数eventMask(掩码)和mode(模式)。LOS_EventInitLOS_EventWriteLOS_EventReadLOS_EventPool
安全边距3.1进程间通信[3.1.1]事件(Event)LitsOS事件的运作流程示例基于OpenHarmony的嵌入式开发6完成程序既定的功能后,还需要根据指定掩码,对事件控制块的事件集合进行清零操作。当掩码为0时,表示将事件集合全部清零。当掩码为0xffff时,表示不清除任何事件,保持事件集合原状。向事件控制块中写入指定的事件。事件控制块更新事件集合,并遍历任务链表,根据任务等待具体条件满足情况决定是否唤醒相关任务。销毁指定的事件控制块LOS_EventClearLOS_EventDestroyLOS_EventInitLOS_EventWriteLOS_EventReadLOS_EventPool
安全边距3.1进程间通信[3.1.1]事件(Event)LitsOS事件的运作流程示例:一种开发流程参考(1)初始化事件控制块;(2)阻塞读事件控制块;(3)写入相关事件;(4)阻塞任务被唤醒,读取事件并检查是否满足要求;(5)处理事件控制
您可能关注的文档
- 1.3 预应力连续箱梁设计要点.pdf
- 1.2 混凝土斜梁桥简介.pdf
- 交通部小箱梁16+2×20+16-桥宽见内 二级说明-16+2×20+16.DOC
- 核心课程开发卡-张三娃议案提交记——轻松提交董事会议案.doc
- 寿险精算课件第15章 资产份额法的进一步应用 0.pdf
- 寿险精算课件第9章 养老金计划的精算方法 0.pdf
- 大学计算机课件第1章计算机概述.pptx
- 基础会计电子教案第二章 会计前提和会计核算要求.doc
- 计算机思维与C程序设计-第9章扩展阅读.doc
- 计算机思维与C程序设计-第7章扩展实例.doc
- 江西省历年卫生健康系统事业单位招聘145人(第二批)管理单位遴选200模拟题完整版【模拟题】.docx
- 江西省南城县2024年《执业药师之中药学专业二》资格考试必刷200题及答案【精选题】.docx
- 江西省南昌县招考聘用社区工作者13人高频难、易错点练习200题王牌题库及答案(必威体育精装版).docx
- 江西省分宜县2023-2024年《执业药师之中药学专业二》资格考试必背200题完整版带答案(黄金题型.docx
- 江西省上犹县《执业药师之中药学专业二》资格考试必背200题完整版附答案(夺分金卷).docx
- 江苏AB集团股份有限公司2023-24年校园招聘公开引进高层次人才笔试(共100题)答案完整题库及参.docx
- 江苏菊花味精集团有限公司完整版招聘71人公开引进高层次人才笔试参考题库(共100题)答案真题题库(名.docx
- 江苏鹰翔化纤股份有限公司定向招聘历年高频难、易错点100题模拟试题附带答案题库大全带答案(培优B卷).docx
- 江阴联通实业有限公司2023-24年招聘3人高频100题难、易错点模拟试题附带答案完整版附参考答案(.docx
- 江阴联通实业有限公司2024年定向招聘历年高频难、易错点100题模拟试题附带答案通关秘籍题库完整答案.docx
文档评论(0)