进程通信是指进程之间的信息交互。PV操作是低级通信方式,高级通信方式是指以较高的效率传输大量数据的通信方式。
1.共享存储
设置一个共享空间;要互斥的访问共享空间
1.1两种方式
基于数据结构(低级)
- 如:共享空间中放一数组
- 速度慢、限制多
基于存储区的共享(高级)
- 内存中数据的形式、存放位置由进程控制
- 速度快
2. 管道通信
- 设置一个特殊的共享文件(管道),其实就是一个缓冲区
- 一个管道只能实现半双工通信
- 实现双向同时通信要建立两个管道
- 各进程要互斥访问管道
- 写满时,不能再写。读空时,不能再读
- 没写满,不能读。没读空,不能写
- 数据一旦被读出,就从管道中被抛弃:意味着读进程最多只能有一个,否则可能会有读错数据的情况
3. 消息传递
传递结构化的消息(消息头/消息体)
系统提供“发送/接受原语”
3.1两种方式
直接通信方式
- 消息直接挂到接受方的消息队列中
间接(心想)通信方式
- 消息先发到中间体(信箱)