操作系统学习记录之八:进程通信

进程通信

交往进程通过信号量操作实现进程互斥和同步,这是一种低级通信方式;
进程有时还需要交换更多的信息(如把数据传送给另一个进程),可以引进高级通信方式——进程通信机制,实现进程间用信件来交换信息;
进程通信扩充了并发进程的数据共享;
 

进程直接通信:

发送或接收信件的进程指出信件发给谁或从谁那里接收信件
send(P, 信件):把信件发送给进程P;
receive(Q, 信件):从进程Q接收信件;

进程间接通信:

发送或者接收信件通过一个信箱来进行, 该信箱有唯一标识符;
多个进程共享一个信箱
send(A, 信件) : 把信件传送到信箱A;
receive(A, 信件) : 从信箱A接收信件;
 

间接通信的信箱:

信箱是存放信件的存储区域,每个信箱可以分成信箱特征和信箱体两部分;
信箱特征指出信箱容量、信件格式、指针等;
信箱体用来存放信件,信箱体分成若干个区,每个区可容纳一封信;
 

发送信件原语的处理流程

若指定的信箱未满:
则把信件送入信箱中指针所指示的位置,释放等待该信箱中信件的等待者;
否则,发送信件者被置成等待信箱的状态;

接收信件的处理流程
若指定信箱中有信件:
则取出一封信件,释放等待信箱的等待者;
否则,接收信件者被置成等待信箱中信件的状态;

基于流的进程通信

多个进程使用一个共享的消息缓冲区(可称为管道、多路转接器、套接字);
一些进程往消息缓冲区中写入字符流(send/write);
一些进程从消息缓冲区中读出字符流(receive/read);
信息交换单位基于字符流,长度任意;

 基于RPC的高级通信

采用客户/服务器计算模式;
服务器进程提供一系列过程/服务,供客户进程调用;
客户进程通过调用服务器进程提供的过程/服务获得服务;
考虑到客户计算机和服务器计算机的硬件异构型,外部数据表示XDR被引入来转换每台计算机的特殊数据格式为标准数据格式;

扫描二维码关注公众号,回复: 2644483 查看本文章

猜你喜欢

转载自blog.csdn.net/cxy19931018/article/details/81436546