unix环境下的IPC方式可以分为以下四大类:
- 消息传递:管道,FIFO,Posix消息队列、System V消息队列;
- 同步:互斥锁、条件变量、读写锁、记录锁、Posix有名信号量、Posix无名(基于内存)信号量、System V信号量;
- 共享内存:内存映射、Posix共享内存、System V共享内存;
- 远程调用:RPC、套接字;
Posix & System V
历史上,System V 和BSD曾被看作是UNIX系统实现的两种风格,但后续又出现了与之并行的Linux等系统实现。
POSIX是一种试图统一各种系统实现接口的标准。
相比之下,System V IPC更传统,Posix IPC则是更新的标准,新的程序建议使用Posix接口。
IPC对象持续性
- 随进程:持续到打开IPC的最后一个进程关闭该对象为止
- 随内核:持续到内核重新自举或显示删除IPC为止
- 随文件系统:持续到显示删除IPC为止
各类进程间通信方式总结: