第五节进程通信概述共享内存消息传递方式共享文件方式(管道方式)一、概述1、进程通信的定义指并发进程之间的信息交换进程的同步与互斥机制就是一种通信的类型2、进程通信的类型低级通信和高级通信低级通信:只能传递状态和整数值(控制信息),包括进程互斥和同步所采用的信号量和管程机制
优点的速度快
缺点是:传送信息量小:编程复杂:所有操作均由程序员完成;高级通信:用户直接利用OS提供的命令,高效地传递大量数据的方式,实现细节对用户透明
能够传送任意数量的数据,包括三类:共享存储区、消息传递、共享文件
直接通信和间接通信•直接通信:信息直接传递给接收方,如管道
–在发送时,指定接收方的地址或标识,也可以指定多个接收方或广播式地址;–在接收时,允许接收来自任意发送方的消息,并在读出消息的同时获取发送方的地址
•间接通信:借助于收发双方进程之外的共享数据结构作为通信中转,如消息队列
通常收方和发方的数目可以是任意的
二、共享存储器方式共享内存方式1、基于共享数据结构的通信方式:数据结构和同步由程序员实现,效率低
2、基于共享存储区的通信方式:存储器划出一块共享存储区,由OS管理
三、消息传递模式进程间的数据交换是以格式化的消息(message)为单位的
现代计算机系统中最广泛的通信机制,通过原语实现
系统为进程提供了两个高级通讯原语send和receivesend:当要进行消息传递时执行sendreceive:当接收者要接收消息时执行receive又有两种类型:消息缓冲在内存中开设缓冲区,发送进程将消息送入缓冲区,接收进程接收传递来的缓冲区
属于直接通信方式
信箱通信属于间接通信方式
1、消息缓冲通信(直接通信方式)交换以消息(message)为单位(网络中称为报文)发送进程直接将消息发送给接收进程,并将之挂在接收进程的消息缓冲队列上,接收进程直接从消息缓冲队列接收消息