《《C进程通信》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《C进程通信》PPT课件.ppt(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、12.5 2.5 进程通信进程通信 2进程通信:指进程间的信息交换。进程通信:指进程间的信息交换。按通信内容可以划分为按通信内容可以划分为2种种低级通信低级通信:进程之间:进程之间控制信息控制信息的交换称为低级通信。的交换称为低级通信。一般只传送一个或几个字节的信息,达到一般只传送一个或几个字节的信息,达到 控制进程执行速度的作用。控制进程执行速度的作用。(进程的同步和互斥)(进程的同步和互斥)信号量机制作为同步工具是卓有成效的,但作为通信工具则不够理想,信号量机制作为同步工具是卓有成效的,但作为通信工具则不够理想,(效率低效率低。通信对用户不透明通信对用户不透明。)。)高级通信高级通信:用户
2、可以直接利用:用户可以直接利用操作系统所提供的一组操作系统所提供的一组通信命令通信命令,高效地,高效地传送大量数据传送大量数据的一种通信方式。的一种通信方式。3 进程的同步与互斥是一种通信方式,一进进程的同步与互斥是一种通信方式,一进程可通过修改变量或信号量告知另一进程,它程可通过修改变量或信号量告知另一进程,它是否可以继续执行下去。利用生产者是否可以继续执行下去。利用生产者消费消费者算法,生产者进程可以传送一批数据给消费者算法,生产者进程可以传送一批数据给消费进程,或者说生产者通过缓冲区与消费者进行进程,或者说生产者通过缓冲区与消费者进行通信,但通信,但P P、V V操作只能操作只能传递信号
3、传递信号,信号本身不信号本身不包含任何数据,而进程不当还容易导致进程死包含任何数据,而进程不当还容易导致进程死锁,锁,因此,称这些同步机构为因此,称这些同步机构为低级通信机构低级通信机构。4高级通信的三种方式:高级通信的三种方式:1 1、共享存储器系统共享存储器系统 2 2、消息传递系统消息传递系统 3 3、管道管道通信通信-共享文件共享文件通信通信消息缓冲消息缓冲通信通信(直接通信直接通信)信箱信箱通信通信(间接通信间接通信)52.5.1 2.5.1 进程通信的类型进程通信的类型高级通信机制类型高级通信机制类型1 共享存储器系统共享存储器系统(Shared-Memory System)2 消
4、息传递系统消息传递系统(Message passing System)3 管道管道(pipe)通信系统通信系统 61 共享存储器系统 共享存储器系统共享存储器系统:相互通信的进程通过:相互通信的进程通过共共享某些数据结构享某些数据结构或或存储区存储区进行通信,因而可进进行通信,因而可进一步分为:一步分为:基于共享数据结构的通信方式基于共享数据结构的通信方式;(低效,只;(低效,只适于传递少量数据)适于传递少量数据)基于共享存储区的通信方式基于共享存储区的通信方式。为了传送大量为了传送大量数据,在存储区中划出一块共享存储区,诸进数据,在存储区中划出一块共享存储区,诸进程可通过对共享存储区进行读或
5、写数据实现通程可通过对共享存储区进行读或写数据实现通信。信。72 消息传递系统在消息传递系统中,进程间的数据交换是以消息(message,在计算机网络中又称报文)为单位。程序员直接利用系统提供的一组通信命令(原语)来实现通信。因其实现方法的不同,又可分为:直接通信方式(消息缓冲机制)间接通信方式(信箱通信方式)8 直接通信方式直接通信方式:发送进程直接将消息发送给接收进程,并将发送进程直接将消息发送给接收进程,并将它挂在接收进程的消息缓冲队列上。接收进程从它挂在接收进程的消息缓冲队列上。接收进程从消息缓冲队列中取得消息。故称为消息缓冲队列中取得消息。故称为消息缓冲机制。消息缓冲机制。在直接通信
6、方式下在直接通信方式下,企图发送或接收消息的每个企图发送或接收消息的每个进程进程必须指出信件发给谁必须指出信件发给谁或或从哪里接收消息从哪里接收消息,可用可用send原语和原语和receive原语来实现进程之间的通信原语来实现进程之间的通信:send(P,消息消息):把一个消息发送给进程把一个消息发送给进程P。receive(Q,消息消息):从进程从进程Q接收一个消息。接收一个消息。间接通信方式间接通信方式:发送进程将消息发送到某个中间实体(一般发送进程将消息发送到某个中间实体(一般称为信箱)中,接收进程从中取得消息,所以称称为信箱)中,接收进程从中取得消息,所以称为为信箱通信方式信箱通信方式
7、,相应的系统称为电子邮件系统。,相应的系统称为电子邮件系统。9M:M:N:N:接收进程接收进程 R R发送进程发送进程 S S.10信箱通信信箱通信(间接通信)(间接通信)信(邮)箱 信箱是一种数据结构,逻辑上它分成两部分:信箱头和由若干格子组成的信箱体。间接通信方式中的发送和接收原语的形式如下:send(A,信件):把一个信件发送给信箱A;receive(A,信件):从信箱A接收一封信件;发送和接收消息原语的功能如下:接收信件接收信件:如果指定信箱中有信,则取出一封信件,并释放等待信箱的等待者,否则,接收信件者被置成等待信箱中信件的状态。11 发发送送信信件件:如果指定的信箱未满,则将信件送
8、入信箱中由指针所指示的位置,并释放等待该信箱中的信件的等待者;否则,发送信件者被置成等待信箱状态。信箱可由信箱可由OSOS创建创建,也可由,也可由用户进程用户进程创建,创建创建,创建者是信箱的者是信箱的拥有者拥有者,据此可把信箱分为:,据此可把信箱分为:私用信私用信箱箱,公用信箱公用信箱,共享信箱共享信箱。12 在利用信箱通信时,在发送进程和接在利用信箱通信时,在发送进程和接收进程之间,存在着四种关系:收进程之间,存在着四种关系:一对一关系一对一关系:即可以为发送进程和接收进程建立:即可以为发送进程和接收进程建立一条一条专用的通信链路专用的通信链路;多对一关系多对一关系:允许提供服务的进程与多
9、个用户进:允许提供服务的进程与多个用户进程进行交互,也称程进行交互,也称客户客户/服务器交互服务器交互;一对多关系一对多关系:允许一个发送进程与多个接收进程:允许一个发送进程与多个接收进程交互,使发送进程交互,使发送进程用广播的形式用广播的形式,发送消息;,发送消息;多对多关系多对多关系:允许建立一个:允许建立一个公用信箱公用信箱,让多个进,让多个进程都能向信箱投递消息,也可取走属于自己的消程都能向信箱投递消息,也可取走属于自己的消息。息。133 3、管道通信管道通信 管管道道(pipepipe)通通信信由由UNIXUNIX首首创创的的一种借助文件和文件系统形成的一种通信方式。由由于于其其有有
10、效效性性,一一些些系系统统继继UNIXUNIX之之后后相相继继引引入入了了管管道道技技术术,如如pc-dospc-dos,管管道道通通信信将将成成为为进进程程通信的一种重要方式。通信的一种重要方式。消息缓冲通信机构是以内存缓冲区为基础。消息缓冲通信机构是以内存缓冲区为基础。管道是以文件系统为基础。管道是以文件系统为基础。有名管道有名管道无名管道无名管道141.1.信箱通信是一种信箱通信是一种信箱通信是一种信箱通信是一种()()通信方式。通信方式。通信方式。通信方式。A.A.直接通信直接通信直接通信直接通信 B.B.间接通信间接通信间接通信间接通信 C.C.低级通信低级通信低级通信低级通信 D.D.信号量信号量信号量信号量2.2.在操作系统中,在操作系统中,在操作系统中,在操作系统中,P P、V V操作是一种(操作是一种(操作是一种(操作是一种()。)。)。)。A A、机器指令、机器指令、机器指令、机器指令 B B、系统调用命令、系统调用命令、系统调用命令、系统调用命令 C C、作业控制命令、作业控制命令、作业控制命令、作业控制命令 D D、低级进程通信、低级进程通信、低级进程通信、低级进程通信原语原语原语原语B BD D