Skip to content
On this page

进程间通信 (IPC)


标签:linux/conc  

进程间通信

Inter-Process Communication,简称 IPC。

Linux 上的 IPC 手段基本是从 Unix 上继承而来。而 Unix 发展的两大主力 AT&T 的贝尔实验室和 BSD (加州大学伯克利分校的伯克利软件发布中心)在通信方面侧重点不同。前者的 Unix 早期进程通信手段进行了改进和扩充,形成了 System V IPC,通信局限在单个计算机。后者跳过该限制,形成基于套接字(socket)的进程通信机制。Linux 将两者继承了下来:

img/202304142035.jpg

posix:posix 消息队列,posix 共享内存,posix 信号量

最初的 Unix IPC(ANSI Linux) 包括了:有名管道,无名管道,信号。

System V IPC 包括了:共享内存区,消息队列,信号灯。

常用进程间通信方式

  1. IPC:管道(pipe)
  2. IPC:信号(signal)
  3. IPC:消息队列 (msg)
  4. 共享内存 (shm)
  5. 信号灯集 (sem)
  6. 套接字

依据 Wikipida,文件和内存映射文件也可作为进程间通信方式,另外还有一个 Linux 系统没有(JVM有)的消息传递[^1]。

[^1]: 进程间通信 - 维基百科,自由的百科全书 (wikipedia.org)

Last updated: