各进程拥有的内存地址空间相互独立
一个进程不能直接访问另一个进程的地址空间
进程间通信 | 方法 | 种类 | |
---|---|---|---|
共享存储 | 操作系统开辟一个共享空间 两个进程对该共享空间的访问是互斥的 (互斥访问通过操作系统提供的工具实现,如PV操作) | 1.基于数据结构(低级) 2.基于存储区共享(高级) | |
消息传递 | 以格式化的消息为单位 通过OS提供的”发送、接受消息“两个原语进行数据交换
| 1.直接通信(直接挂到接受进程的消息缓冲队列上) 2.间接通信(消息先发送到中间实体 信箱中) | |
管道通信 | 在内存中开辟一个固定大小的缓冲区(也要互斥访问) (只能采用半双工通信,全双工需要两个管道) | 数据以字符流的形式写入管道, 当写满时write()系统调用会被阻塞 当读完时read()系统调用会被阻塞 若没写满就不允许读,没读空就不允许写 |