进程间通信(IPC)入门指南
1. 引言
IPC 即进程间通信,传统上指的是在操作系统中不同进程间传递消息的各种方式。同时,随着通信方式的发展,如共享内存的出现,也涉及到了多种同步形式,因为这些新的通信方式需要同步机制来确保正常运行。
在过去 30 年 Unix 操作系统的发展历程中,消息传递经历了以下几个阶段:
- 管道(Pipes) :是最早广泛使用的 IPC 形式,在程序内部和 shell 中都可使用。不过,管道只能在具有共同祖先的进程(即父子关系)之间使用。后来,命名管道(Named Pipes 或 FIFOs)的引入解决了这一问题。
- System V 消息队列(System V Message Queues) :于 20 世纪 80 年代初被添加到 System V 内核中。它可用于同一主机上的相关或不相关进程之间。如今,大多数 Unix 版本都支持这种消息队列,无论其是否源自 System V。
- Posix 消息队列(Posix Message Queues) :由 Posix 实时标准(1003.1b - 1993)引入,可用于同一主机上的相关或不相关进程之间。
- 远程过程调用(Remote Procedure Calls,RPCs) :出现在 20 世纪 80 年代中期,用于从一个系统(客户端)的程序调用另一个系统(服务器)上的函数,是显式网络编程的替代方案。由于客户端和服务器之间会传递信息(被调用函数的参数和返回值),且 RPC 可在同一主机上的客户端和服务器之间使用,因此也可视为一
超级会员免费看
订阅专栏 解锁全文
84

被折叠的 条评论
为什么被折叠?



