资料介绍
在上一章中,读者已经知道了进程是一个程序的一次执行。这里所说的进程一般是指运行在用户态的进程,而由于处于用户态的不同进程之间是彼此隔离的,就像处于不同城市的人们,它们必须通过某种方式来进行通信,例如人们现在广泛使用的手机等方式。本章就是讲述如何建立这些不同的通话方式,就像人们有多种通信方式一样。
Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。而对UNIX发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间的通信方面的侧重点有所不同。前者是对UNIX早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,其通信进程主要局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。而Linux则把两者的优势都继承了下来,如图8.1所示。

图8.1 进程间通信发展历程
n UNIX进程间通信(IPC)方式包括管道、FIFO以及信号。
n System V进程间通信(IPC)包括System V消息队列、System V信号量以及System V共享内存区。
n Posix 进程间通信(IPC)包括Posix消息队列、Posix信号量以及Posix共享内存区。
现在在Linux中使用较多的进程间通信方式主要有以下几种。
(1)管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。
(2)信号(Signal):信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一样的。
(3)消息队列(Messge Queue):消息队列是消息的链接表,包括Posix消息队列SystemV消息队列。它克服了前两种通信方式中信息量有限的缺点,具有写权限的进程可以按照一定的规则向消息队列中添加新消息;对消息队列有读权限的进程则可以从消息队列中读取消息。
(4)共享内存(Shared memory):可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据的更新。这种通信方式需要依靠某种同步机制,如互斥锁和信号量等。
(5)信号量(Semaphore):主要作为进程之间以及同一进程的不同线程之间的同步和互斥手段。
(6)套接字(Socket):这是一种更为一般的进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。
本章会详细介绍前5种进程通信方式,对第6种通信方式将会在第10章中单独介绍。
Linux下的进程通信手段基本上是从UNIX平台上的进程通信手段继承而来的。而对UNIX发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间的通信方面的侧重点有所不同。前者是对UNIX早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,其通信进程主要局限在单个计算机内;后者则跳过了该限制,形成了基于套接口(socket)的进程间通信机制。而Linux则把两者的优势都继承了下来,如图8.1所示。

图8.1 进程间通信发展历程
n UNIX进程间通信(IPC)方式包括管道、FIFO以及信号。
n System V进程间通信(IPC)包括System V消息队列、System V信号量以及System V共享内存区。
n Posix 进程间通信(IPC)包括Posix消息队列、Posix信号量以及Posix共享内存区。
现在在Linux中使用较多的进程间通信方式主要有以下几种。
(1)管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。
(2)信号(Signal):信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一样的。
(3)消息队列(Messge Queue):消息队列是消息的链接表,包括Posix消息队列SystemV消息队列。它克服了前两种通信方式中信息量有限的缺点,具有写权限的进程可以按照一定的规则向消息队列中添加新消息;对消息队列有读权限的进程则可以从消息队列中读取消息。
(4)共享内存(Shared memory):可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据的更新。这种通信方式需要依靠某种同步机制,如互斥锁和信号量等。
(5)信号量(Semaphore):主要作为进程之间以及同一进程的不同线程之间的同步和互斥手段。
(6)套接字(Socket):这是一种更为一般的进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。
本章会详细介绍前5种进程通信方式,对第6种通信方式将会在第10章中单独介绍。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 谈谈嵌入式系统中多进程设计与进程通信
- 嵌入式Linux进程 -进程间通信
- Linux系统管道和有名管道的通信机制解析 0次下载
- 详解如何监控和保护Linux下进程安全 0次下载
- linux操作系统下的进程通信 0次下载
- 进程间通信之使用信号详解 0次下载
- 进程间通信之信号量浅析 0次下载
- 进程控制开发之Linux进程概述 0次下载
- 进程间通信之共享内存 1次下载
- 进程间通信之:管道 0次下载
- Linux守护进程详解 0次下载
- c线程间通信 3次下载
- Linux源码分析系列的进程 32次下载
- LINUX系统下多线程与多进程性能分析
- Linux进程管理 0次下载
- Linux网络基础知识总结 1k次阅读
- Linux中进程、线程和协程的基础概念 1.5k次阅读
- Linux下进程通信的方法 1.3k次阅读
- Jacinto 7核间通信解决方案 1.9k次阅读
- 如何在Linux终止僵尸进程 2.7k次阅读
- 如何在Linux使用ps/pstree/top命令查看进程 2.4k次阅读
- 进程间通信的实现方式 1.1k次阅读
- Linux内核的安全性对Android的影响 2k次阅读
- Linux进程间通信方法之管道 2.7k次阅读
- 鸿蒙内核进程间为何要通讯? 3.4k次阅读
- Linux进程调度时机概念分析 3.3k次阅读
- Linux进程管理:什么是进程?进程的生命周期 8.9k次阅读
- Linux进程的概念及进程通信的应用场景 7.1k次阅读
- 进程间与线程间的通信方式 9.4k次阅读
- 基于Linux进程管理的详细剖析 4.2k次阅读
下载排行
本周
- 1冷柜-电气控制系统讲解
- 13.68 MB | 4次下载 | 10 积分
- 2安川A1000变频器中文版说明书
- 20.16 MB | 3次下载 | 3 积分
- 3直流电路的组成和基本定律
- 1.67 MB | 2次下载 | 免费
- 4丹佛斯2800系列变频器说明书
- 8.00 MB | 1次下载 | 5 积分
- 5PC8011同步开关型降压3.5A单节锂电池充电管理电路技术手册
- 0.74 MB | 1次下载 | 免费
- 6ES7243E+ES8311音频录制与播放电路资料
- 0.06 MB | 1次下载 | 5 积分
- 7SDM02 激光测距模块产品手册
- 0.43 MB | 1次下载 | 免费
- 8SDFM 激光测距模块模组手册
- 0.54 MB | 1次下载 | 免费
本月
- 1CH341编程器软件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下载 | 1 积分
- 22025智能家居传感器市场分析及创新应用
- 3.11 MB | 43次下载 | 免费
- 3RV1126B系列开发板产品资料
- 4.19 MB | 18次下载 | 免费
- 4CH341编程软件下载
- 2.50 MB | 16次下载 | 5 积分
- 5全志系列-米尔基于T153核心板开发板 四核异构、3路千兆网,赋能多元化工业场景
- 3.05 MB | 12次下载 | 免费
- 6【开源】60余套STM32单片机、嵌入式Linux、物联网、人工智能项目案例及入门学习资源包
- 10.55 MB | 8次下载 | 免费
- 7冷柜-电气控制系统讲解
- 13.68 MB | 4次下载 | 10 积分
- 8特斯拉MODEL S车载充电机主电路回路原理图
- 0.81 MB | 4次下载 | 3 积分
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233094次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191448次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183356次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81604次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73824次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App





创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论