进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位(严格说来是线程)。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。这些进程可以运行在同一计算机上或网络连接的不同计算机上。
进程间通信技术包括消息传递、同步、共享内存和远程过程调用。IPC是一种标准的Unix通信机制。
使用IPC 的理由:
http://gengwg.blogspot.com/
进程间通信技术包括消息传递、同步、共享内存和远程过程调用。IPC是一种标准的Unix通信机制。
使用IPC 的理由:
- 信息共享
- 加速;
- 模块化;
- 方便; 以及
- 私有权分离.
- 采用了某种形式的内核开销,降低了性能;
- 几乎大部分IPC都不是程序设计的自然扩展,往往戏剧性增加了程序复杂度。
主要的 IPC 方法
方法 | 提供方(操作系统或其他环境) |
---|---|
文件 | 多数操作系统 |
信号 | 多数操作系统 |
Berkeley套接字 | 多数操作系统 |
消息队列 | 多数操作系统 |
管道 | 所有的 POSIX 系统, Windows. |
命名管道 | 所有的 POSIX 系统, Windows. |
信号量 | 所有的 POSIX 系统, Windows. |
共享内存 | 所有的 POSIX 系统, Windows. |
Message passing (不共享) |
用于 MPI规范,Java RMI, CORBA, MSMQ, MailSlot 以及其他. |
Memory-mapped file | 所有的 POSIX 系统, Windows. |
实现
|
本条目中包含过多未翻译的专业术语,可能需要翻译或进一步解释。 (2011年12月7日) |
- 命名和匿名管道
- 信号量
- 共享内存
- 消息队列
- 文件系统
- CORBA
- D-Bus
- Distributed Ruby
- DIPC Distributed Inter-Process Communication
- OpenBinder Open Binder
其他
有人认为这些也可以算是进程间通信的方式:http://gengwg.blogspot.com/
Comments
Post a Comment
https://gengwg.blogspot.com/