进程通信分类:1、低级通信:进程的互斥和同步,2、高级通信:指用户可直接利用os提供的 一组通信命令,高校地传送大量数据的一种通信方式。对用户同名。
高级通信分类:共享存储器系统、消息传递系统、管道通信
共享存储器系统:1、共享数据结构的通信方式 进程之间通过某种数据结构,如缓冲池进程通
信方式;
2、共享存储区通信方式 为了传送大量信息,进程可通过对共享存储区进行读或写来是想通信,属于高级通信方式。
消息传递系统:信息交换单位是消息或报文:分成两种:1、直接通信方式,2、间接通信方式
计算机网络中将消息成为报文。
直接通信方式:发送进程直接吧消息发送给目标进程 发送进程和接受进程都已显试本别提供对方的标志符。
系统提供两条通信原语:
Send(Receiver, message);
Receive(Sender , message);
信息发送和接收到原语:
Send( mailbox , message): 将一个信息发送到指定信箱
Receive( mailbox , message) :从指定信箱中接受一个消息
信箱分类:私用信箱,共用信箱,共享信箱;
私用信箱:用户进程建立,作为该进程的一部分; 拥有者有权读消息,其他用户只能 发送 ; 采用单向通信链路 进程结束是信箱消失
公用信箱:他又OS创建. 提供给系统中的所有核准进程使用。 进程既发送也
可取出 采用双向通信链路的信箱来实现。 系统运行期间始终存在
共享信箱:由某个进程创建,创建是提供共享进程(用户)的名字。 信箱的拥有 者和共享这,都有权从信箱中取走发送给自己的消息。
信箱通信是发送进程和接收进程的关系:
一对一关系:建立一条专用的通信链路。
多对一关系:服务进程与多个进程之间进行交互,又称客户/服务器交互。
一对多关系:一个发送进程与多个接收进程进行交互,使发送进程可用广播形式,向接收者发送消息。
多对多关系:建立一个共用信箱,多个进程投递并取走自己的消息。
管道通信: (管道实质就是一个共享文件)
:管道通信方式建立在文件系统的基础上,利用共享文件链接两个相互通信的进程,此共享文件成为管道(Pipe)。
管道是指用于连接一个读进程和一个写进程,一实现他们之间的共享文件
1、互斥 当一个进程正在对管道进行读/写操作是,另一进程必须等待
2、同步 当写(输入)进程把一定量的数据(如4K)写入管道后,便去睡眠等待,
直到读(输出)进程取走数据后在把它唤醒。当读进程发现管道空时也应睡眠等待,
直至写进程将消息写入管道后,才将它唤醒。
3、判别对方是否存在。只有确定对方存在时方能进行通信