进程间通信的目的
- 数据传输
- 资源共享
- 通知时间。
- 进程控制。一个进程完全控制另一个进程的执行,如拦截另一个进程的所有陷入和异常,并能够几时知道它的状态改变。
进程间通信的分类
- 文件
- 文件锁
- 管道(pipe)和有名管道(FIFO)
- 信号
- 消息队列
- 共享内存
- 信号量
- 互斥量
- 条件变量
- 读写锁
- 套接字
System V IPC 和 POSIX IPC
- System V IPC
- System V 消息队列
- System V 共享内存
- System V 信号量
- POSIX IPC
- 消息队列
- 共享内存
- 信号量
- 互斥量
- 条件变量
- 读写锁
进程间共享消息的三种方式
- 共享文件系统
- 共享内核中的信息
- 共享内存区
IPC 对象的持续性
- 随进程持续。一直存在直到打开的最后一个进程结束。(如pipe和FIFO)
- 随内核持续。一直存在直到内核自举或显式删除(如System V 消息队列、共享内存、信号量)
- 随文件系统持续。一直存在直到显式删除,即使内核自举还存在。(POSIX消息队列、共享内存、信号量如果是映射文件来实现)。