进程间通信(IPC)
为什么操作系统要为用户提供进程间通信方式?
答:因为进程的独立性。每个进程都有自己的独立虚拟地址空间,操作的都是自己的地址,所以进程之间无法直接进行通信。
进程间通信方式
- 从Unix借鉴的:管道- - -资源传输;
- systemV标准的进程间通信方式:共享共存、消息队列、信号量
管道:传输资源- - -传输的是数据资源;
本质:内核中的一块缓冲区,若多个进程可以访问到同一个缓冲区,就可以实现通信。
分类:匿名管道/命名管道。
匿名管道:内核中的这块缓冲区没有具体的标识符,只能用于具有亲缘关系的进程间通信。多个进程只要通过子进程复制父进程的方式拿到同一个管道(缓冲区)的操作句柄就可以进行通信。