- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux操作系统第6章 进程间通信 第1章 嵌入式Linux操作系统简介 第2章 Linux操作系统使用与系统配置 第3章 嵌入式Linux编程环境 第4章 存储管理 第5章 操作系统进程 第6章 进程间通信 第7章 中断与系统调用 第8章 文件管理 第9章 设备管理 第10章 嵌入式Linux的构建 第6章 进程间通信 6.1 什么是进程间通信 6.2 互斥与同步 6.3 信号量 6.4 共享内存 6.5 消息队列 6.6 管道 思考题 6.1 什么是进程间通信 进程间通信(IPC)就是为了解决这些问题而提出的特有机制,它们为多任务系统提供了不同进程的通信机制,同时也提供了对于临界资源和共享资源的保护。 进程间通信的主要目的是实现同一计算机系统内部的相互协作的进程之间的数据共享与信息交换,由于这些进程处于同一软件和硬件环境下,利用操作系统提供的编程接口,用户可以方便地在程序中实现这种通信;应用程序间通信的主要目的是实现不同计算机系统中的相互协作的应用程序之间的数据共享与信息交换,由于应用程序分别运行在不同计算机系统中,它们之间要通过网络之间的协议才能实现数据共享与信息交换。 6.1 什么是进程间通信 程序和进程 最初Unix IPC包括:管道、FIFO、信号; System V IPC包括:System V消息队列、 System V信号灯、System V共享内存区; Posix IPC包括: Posix消息队列、Posix信号灯、Posix共享内存区。 进程间通信,主要有两种方式:虚拟内存系统中的进程间通信和Falt 内存系统中的进程间通信。 UCOS是比较典型的Falt 内存系统,它不支持虚拟内存机制,也没有用户空间和内核空间的区别,实际上它就类似Linux的内核空间,不同任务间可以相互访问,没有不同进程间内存保护机制。所以可以完全利用Linux系统中的同一进程中不同线程的通信机制。由于所有的任务与中断都共享同一地址空间,所以同步机制也与任务间通信在同一空间中实现,是这两种机制的相互替换成为可能。 Windows作为一种复杂的多任务系统,也提供了多种进程间通信方式,包括:文件映射、共享内存、匿名管道、命名管道、邮件槽、剪贴板、动态数据交换(DDE)、对象连接与嵌入(OLE)、动态连接库(DLL)、远程过程调用(RPC)、NetBios函数、Sockets、WM_COPYDATA消息。 6.2 互斥与同步 互斥与同步是进程间通信中非常重要的一对概念,也是相交进程之间的两种主要关系。在嵌入式操作系统开发中经常会遇到同步、互斥的问题,如果处理得不好,程序就会出现很多意想不到的结果。而在多处理器之间、ISR与ISR之间、ISR与任务之间、任务与任务之间都可能需要互斥与同步。例如不同任务优先级的抢占,中断处理等。 互斥和同步是两个紧密相关而又容易混淆的概念。所谓互斥,是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。两个互斥的进程,只能等到前一个进程运行完后,下一个进程才能运行。所谓同步,是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。 同步是一种更为复杂的互斥,而互斥是一种特殊的同步。 原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位。原子操作主要用于实现资源计数,很多引用计数(refcnt)就是通过原子操作实现的。 6.2 互斥与同步 原子类型定义如下: typedef struct { volatile int counter; } atomic_t; 有关原子操作: #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0) #define atomic_add(i, v) (void) atomic_add_return(i, v) #define atomic_inc(v) (void) atomic_add_return(1, v) #define atomic_sub(i, v) (void) atomic_sub_return(i, v) #define atomic_dec(v) (void) atomic_sub_return(1, v) #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0) #define atomic_dec_and_test(v) (a
您可能关注的文档
- 汽车总线控制技术与检修 教学课件 作者 骆孟波 主编 郝金魁 副主编 舒适系统CAN.ppt
- 汽车总线控制技术与检修 教学课件 作者 骆孟波 主编 郝金魁 副主编 诊断策略.ppt
- 汽车总装技术 教学课件 作者 海争平.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 目录.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境1.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境2.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境3.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境4.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境5.ppt
- 汽油发动机电控系统检测与修复 教学课件 作者 杨洪庆 情境6.ppt
- 2024年浙江省杭州市临安市上甘街道招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省许昌市长葛市石固镇招聘社区工作者真题含答案详解.docx
- 2024年河南省郑州市登封市大冶镇招聘社区工作者真题及参考答案详解.docx
- 2024年浙江省宁波市余姚市低塘街道招聘社区工作者真题及参考答案详解一套.docx
- 2024年浙江省丽水市莲都区峰源乡招聘社区工作者真题及答案详解1套.docx
- 2024年河南省郑州市中原区石佛镇招聘社区工作者真题及答案详解1套.docx
- 2024年浙江省杭州市萧山区河庄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省嘉兴市桐乡市河山镇招聘社区工作者真题含答案详解.docx
- 2024年河南省郑州市金水区未来路街道招聘社区工作者真题参考答案详解.docx
- 2024年浙江省宁波市慈溪市观海卫镇招聘社区工作者真题及参考答案详解一套.docx
最近下载
- 物资管理知识题库-填空题.doc VIP
- Yamaha 雅马哈 乐器音响 PSR-SX600 Owner's Manual (Traditional Chinese) 用户手册.pdf
- 2025年危险性较大工程项目领导带班制度.pdf VIP
- 安徽工程大学【个人简历】简单风格四页精美套装简历-简历模板.docx VIP
- 2024年其他类-化验员-水质化验员考试历年常考点试题带答案.docx VIP
- 中国粮油公司年度经营计划.ppt VIP
- 2024年其他类-化验员-水质化验员考试历年常考点试题带答案.docx VIP
- 2024年其他类-化验员-水质化验员考试历年常考点试题带答案版.docx VIP
- 株洲湘江四桥42米现浇箱梁贝雷支架施工技术方案.doc VIP
- GB50312-2016 综合布线系统工程验收规范.docx VIP
文档评论(0)