- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 任务间通信
第五章 任务间通信
前面我们介绍了,实时内核的主要部分是任务和任务地调度,这样内核中多个任务之间不可避
免的存在相互协同的关系,来完成一定的内核功能。这种协同最直观的就是任务间相互通信。包括
VxWorks等所有的嵌入式操作系统一般都会提供许多任务间通信的方法,通常包括:
共享内存,数据的简单共享。
信号量,基本的互斥和同步。
消息队列和管道,同一CPU内多任务间消息传递。
Socket和远程调用,任务间透明的网络通信。
Signals,用于异常处理。
本节我们对于每一种机制,均从主要数据结构、功能和有关的资源配置等方面讲解,并且依然
用 VxWorks 为事例。希望通过本章的学习,读者能够了解实时多任务操作系统的同步、互斥与通讯
机制的基本原理,以便在做具体应用开发时能够正确、合理地使用。
5.1 实时内核任务间通信机制
一、 任务之间的关系
嵌入式实时多任务应用是由多个任务、多个中断处理过程以及嵌入式实时操作系统组成的有机
整体。嵌入式实时操作系统为应用提供系统管理、底层的支持、协调任务和中断处理程序功能。
操作系统任务之间的关系有:
相互独立:任务之间仅仅存在竞争CPU的资源,再无其它关联。
竞争除CPU外的其它资源(互斥):共享资源是多任务系统中主要关心的问题,在系统中,大
多数的资源在某一时刻仅能被某一任务使用,并且在使用过程中不能被其它任务中断。这些资源主
要包括特定的外设、共享内存等。当 CPU 禁止并发操作时,那些包含了使用 CPU 之外的共享资源的
代码就不能同时被多个任务调用执行。这样的代码称为“临界区域”。如果两个任务同时进入临界区
域,将会产生意想不到的错误。
同步:协调彼此运行的步调。
通信:彼此间传递数据和信息,以协调完成某项工作。通信可以是在任务与任务之间,或中
断服务程序(ISR)与任务之间。
在嵌入式多任务应用程序中,一项工作的完成往往要通过多个任务或多个任务与多个中断处理
程序共同完成。它们之间必须协调工作、相互配合,彼此还需要交换信息。交换信息的方式一般采
用:
单向同步或通信。
双向同步或通信。
另外,在嵌入式多任务系统中,如果任务之间的通信信息较大,则相应的系统开销就大,他们
之间的耦合程度较高;如果两个任务之间不存在信息的交换,其间的同步关系很弱,甚至不需要同
步或互斥,则它们的耦合程度就低,系统的开销也就小。研究任务之间耦合程度的高低对于合理地
设计应用系统和划分任务有很主要的作用。
二、共享内存
任务间最直接最明显的通信方法是访问共享数据结构,即不同的任务都可以访问同一地址空间。
由于大部分嵌入式系统的任务共存于单一的线性地址空间,在多个任务间共享数据结构是非常容易
的。因此,共享内存为多任务提供了一种非常简单而且高效的通信机制。只要通信任务双方采用了
协商一致的数据结构,包括各种类型的全局变量、双向链表、环行队列等复杂的数据结构,都可以
被所用任务直接访问。一个例子如图 5.1.1所示。
为了方便编程,一般的嵌入式系统都定义了几种数据结构类型:线性缓冲、环行缓冲、连接链
5-1
第5章 任务间通信
等,这些类型可以被运行在不同上下文的代码引用。
1、连接链
连接链是一种双向连接的数据结构,例如VxWorks定义在tornado\target\h\stLib.h头文件中。
VxWorks提供的LstLib库用于设置和控制连接链。这些函数允许用户以多种方式操作一个链,提供
以下几种操作。
在链中任意位置插入或删除节点。
在链尾增加一个节点。
链接两个链。
从一个链中提取一个子链。
删除并返回链首节点。
计算链中节点数。
图 5.1.2 一个连接链
图5.1.1 多个任务
您可能关注的文档
- 半线性高阶抛物型方程组具慢衰减初值问题 整体解的存在及不存在性.pdf
- 近10年来中国主要农业气象灾害监测预警及评估技术研究进展.pdf
- 2009年中考复习数学辅导班资料 专题2 方程及不等式.doc
- 我国民事再审程序启动主体之立法瑕疵及完善——以建设与谐社会为视角.pdf
- 感知距离对旅游目地之形象影响分析_以五_省略_游客源城市游客对苏州周庄旅游形.pdf
- 关于几何基础中假设 - 黎曼.pdf
- _双师型_教师内涵解读.pdf
- 第六章 ARM体系结构.维基百科.pdf
- 一年级第三讲:有趣平面图形知识点总结.pdf
- 商业保理简介介绍.ppt
- 参考学习资料 生物学习 万多黏盲鳗.pdf
- 参考学习资料 生物学习 新疆迟滞鳄类新材料.pdf
- 参考学习资料 生物学习 尤嘉鲂甲鱼新标本.pdf
- 参考学习资料 生物学习 犹他州南部上三叠世岩石地层学、沉积体系和古脊椎动物.pdf
- 参考学习资料 生物学习 亚利桑那州钦勒群上三叠统猫头鹰岩层的四足动物群.pdf
- 参考学习资料 生物学习 斜横螈科组织学骨组织研究的初步成果.pdf
- 参考学习资料 生物学习 新南威尔士的一种奥陶纪脊椎动物.pdf
- 参考学习资料 生物学习 异甲鱼亚纲内部系统发育关系.pdf
- 参考学习资料 生物学习 伊朗中部Negheleh剖面中泥盆世牙形石生物地层的修订.pdf
- 参考学习资料 生物学习 用超基质法研究盲鳗科的分子系统发育和分类.pdf
最近下载
- 美国fda生产过程(工艺)验证总则指南中英文版.doc VIP
- 成都理工大学2020-2021学年第2学期《环境监测》期末考试试卷及标准答案.docx
- 2024年江苏省无锡市中考英语真题卷(含答案与解析).docx VIP
- 年产水性油墨、凹版塑料环保油墨4500 吨、水性涂料500吨建设项目环评(2021年新版环评)环境影响报告表.pdf VIP
- fda美国食品药物管理局工艺验证指南英文版).doc VIP
- 金属非金属露天矿山建设项目安全设施竣工验收表.pdf VIP
- 单位员工网络安全培训.pptx VIP
- PQE试用期述职报告.pptx VIP
- 《GBT 30130-2023胶版印刷纸》最新解读.pptx
- GJB9001C:2017研发一整套资料模板(共348页).pdf VIP
文档评论(0)