徐州建设公司网站,陕西网站关键词自然排名优化,江苏建设人才网站,快速优化网站建设一、概述
1、通信模型 进程通信的机制与同步 不使用共享变量的进程通信 IPC facility提供两个操作:
send(message)
receive(message)如果P和Q想通信,需要:
在它们之间建立通信链路
通过send和receive交换消息通信链路实现
物理(例如共享内…
一、概述
1、通信模型
- 进程通信的机制与同步
- 不使用共享变量的进程通信
- IPC facility提供两个操作:
send(message)
receive(message)
- 如果P和Q想通信,需要:
在它们之间建立通信链路
通过send和receive交换消息
- 通信链路实现
物理(例如共享内存、硬件总线)
逻辑(例如逻辑属性)
2、直接与间接通信
(1)两者区别图解
实现进程间通信有三种方式:
管道、消息队列、共享内存
。前两种都属于间接通信对应图中的(a)图,第三种属于直接通信对应图中的(b)图。
(2)直接通信
(2)间接通信(消息队列为例)
3、阻塞与非阻塞
消息传递可以是阻塞的或者非阻塞的
阻塞被认为是同步的
非阻塞被认为是异步的
4、通信链路缓存
队列的消息被附加到链路,可能是以下三种方式之一:
消息队列和管道其实质就是内存中的一个buffer缓存
既然是buffer那么就有大小:
(1)0容量 - 0 messages
发送方必须等待接收方
(2)有限容量 - n messages的有限长度
如果队列满,发送方必须等待
(3)无限容量 - 无限长度
发送方不需要等待
二、信号
我们都知道硬件中断,interupt,比如外设发出的中断。
我们的信号(signal)就是软件层面的中断。
三、管道
竖杠我们都知道是管道符。
管道其实就是一块buffer缓存。
管道的缺陷:
- 管道就是父进程帮子进程建立好的一个通道,如果说你们两个进程之间没有父子关系,那么你们两个进程之间的pipe管道就不能被创建。
- 管道中的数据是按字节流传递的,没有一个数据结构的组织
四、消息队列
上面我们说了管道的缺点,我们的消息队列就可以很好的解决这两个缺点。
Message:作为一个字节序列存储
Message Queue:消息数组
send有多个,receive只有一个,它们之间没有父子关系也可以传,而且是有数据结构的。
五、共享内存
我们都知道一个物理地址可以对应多个逻辑地址,这个映射关系可以在页表或段表中建立。这就是共享内存段的来源。虽然逻辑地址不同也有可能相同,但对应的物理地址都是一样的,这就是共享的感觉。