- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 进程间通信
嵌入式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_
您可能关注的文档
- 第6章 数据编制.ppt
- 第6章 智能网.ppt
- 第6章 无线网和移动网.ppt
- 第6章 机械技术.ppt
- 第6章 生产活动的核算.ppt
- 第6章 用户管理.ppt
- 第6章 电子清算资金往来核算2009.ppt
- 第6章 电子支付与支付系统.ppt
- 第6章 管理信息系统(滕佳东 第五版).ppt
- 第6章 细菌的分类与命名.ppt
- 20以下绿色设计在居住空间中的运用以卧室整体设计为例.docx
- 28.1.1锐角三角函数正弦课件人教版数学九年级下册.pptx
- 2023届河南省开封市杞县第一高级中学高三第一次摸底理科数学试题word版.doc
- 332抛物线的简单几何性质课件高二数学上学期精品课堂人教A版2019选择性必修第一册.ppt
- 7.3万有引力理论的成就新教材人教版高中物理必修二课件.pptx
- Ceiba3平台安装部署手册.docx
- 3边城精品PPT课件优质课2.ppt
- Unit-6-Part-B-第三课时-课件-小学英语人教PEP版六年级上册.pptx
- 2022届高中语文二轮复习第一讲非连续性文本阅读精品教案新高考.docx
- 2021级酒店管理与数字化运营专业人才培养方案高职.docx
原创力文档


文档评论(0)