进程是一个程序的一次执行,系统资源分配的最小单元。它一般运行在用户态,而处于用户态的不同进程之间是彼此隔离的,就像处于不同城市的人们,它们必须通过某种方式来进行通信,例如,人们现在广泛使用的手机等方式。本章就是讲述如何建立这些不同的通话方式,就像人们有多种通信方式一样.
l 管道通信。
l 信号通信。
l 信号量。
l 共享内存。
l 消息队列。
1.1 Linux下进程间通信概述
1.1.1 Linux继承了Unix,集合IPC(进程间通信)和BSD的优势
1、传统的Unix进程间通信方式
A) 无名管道(pipe)
B) 有名管道(fifo)
C) 信号(signal)
2、System V进程间对象(IPC方式)
AT&T的贝尔实验室,对Unix早期的进程间通信进行了改进和扩充,形成了“system V IPC”,其通信进程主要局限在单个计算机内。
A) 共享内存(share memory)
B) 消息队列(message queue)
C) 信号灯(semaphore)
3、 套接字(socket)
BSD(加州大学伯克利分校的伯克利软件发布中心),跳过了通信进程主要局限在单个计算机内的限制,形成了基于套接字(socket)的进程间通信机制
4、Posix进程间通信(IPC方式)
A) Posix共享内存(share memory)
B) Posix消息队列(message queue)
C) Posix信号灯(semaphore)
Linux继承了上述所有的通信方式
1.1.2 Linux中使用较多的进程间通信方式