一 进程通信的提出
进程通信是指进程之间的信息交换
进程的互斥与同步,需要在进程间交换一定的信息,属于低级进程通信
二 进程通信的的类型
- 共享存储器系统
- 管道通信系统
- 消息传递系统
- 消息传递系统
- 客户机—服务器系统
1. 共享存储器系统
相互通信的进程共享某些数据结构和共享存储区,进程之间能够通过这些空间进行通信
2.管道通信系统
管道是指用于一个连接一个发送进程和一个接受进程已实现它们之间通信的一个共享文件。发送进程以字符流的形式将大量数据送入管道,接受进程从管道中接受数据。
管道通信首创于UNIX系统,能有效地大量传送数据。
为协调双方的通信,管道机制必须提供三方面的协调能力:
- 互斥
- 同步
- 确定双方是否存在
3. 消息传递系统
进程已格式化的消息为单位,将通信的数据封装在消息中,并利用操作系统提供的一组通信命令(原语),在进程间进行消息传递,完成进程间的数据交换
根据实现方式的不同,可分成两类:
- 直接通信方式
- 间接通信方式
4. 客户机-服务器系统
在网络环境下的各种应用领域实现通讯机制
具体实现方法有套接字、远程过程调用和远程方法调用
三 消息传递通信实现方式
根据发送进程直接或间接地将消息传送给接收进程,可分为两类
- 直接消息传递
- 信箱通信
1. 直接消息传递系统
采用直接通信方式,即发送进程利用OS所提供的发送命令(原语),直接把消息发送给目标进程。双方进程使用send()原语和receive原语()原语。
2. 信箱通信
采用间接通信方式,进程之间通过信箱进行通信。信箱建立在随机存储器的公用缓冲区上,用来暂存消息。
发送原语: send(mailbox,message)把消息送到指定信箱中
接收原语:receive(mailbox,message)从指定信箱中提取出消息。