进程通信
1. 什么是进程通信?
- 进程通信就是指进程之间的信息交换
- 进程是分配系统资源的单位,因此每个进程拥有的内存地址空间相互独立
- 为保证安全,一个进程是不能直接访问另外一个进程,所以为保证进程间安全通信,操作系统提供了一些方法
2. 如何进程通信?
方式一:共享存储
在内存设置一个共享空间
要互斥地访问共享空间
2种方式
基于数据结构(低级)
基于存储区的共享(高级)
方式二:管道通信
在内存设置一个特殊的共享文件(管道),其实就是一个缓冲区
一个管道只能实现半双工通信
实现双向同时通信需要建立2个管道
每个进程要互斥访问管道
向管道写满数据时,不能再写;读空数据时,不能再读
没有写满数据不能读,没有读空数据时不能写
方式三:消息传递
传递结构化消息(消息头/消息体)
系统提供发送/接收原语
2种方式
直接通信方式——消息直接挂到接收方的消息队列里
间接(信箱)通信方式——消息先发到信箱