第二章—C进程通信ppt课件_第1页
第二章—C进程通信ppt课件_第2页
第二章—C进程通信ppt课件_第3页
第二章—C进程通信ppt课件_第4页
第二章—C进程通信ppt课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.5 2.5 进程通信进程通信 进程通信:指进程间的信息交换。进程通信:指进程间的信息交换。 按通信内容可以划分为按通信内容可以划分为2种种 低级通信:进程之间控制信息的交换称为低级通信。低级通信:进程之间控制信息的交换称为低级通信。 一般只传送一个或几个字节的信息,到一般只传送一个或几个字节的信息,到达达 控制进程执行速度的作用。(进程的同控制进程执行速度的作用。(进程的同步和互斥)步和互斥) 信号量机制作为同步工具是卓有成效的,但作为信号量机制作为同步工具是卓有成效的,但作为通信工具则不够理想,(通信工具则不够理想,(效率低。效率低。通信对用户通信对用户不透明。)不透明。) 高级通信:用

2、户可以直接利用操作系统所提供的一高级通信:用户可以直接利用操作系统所提供的一组通信命令,高效地传送大量数据的一种通信方式。组通信命令,高效地传送大量数据的一种通信方式。 进程的同步与互斥是一种通信方式,一进进程的同步与互斥是一种通信方式,一进程可通过修改变量或信号量告知另一进程,它程可通过修改变量或信号量告知另一进程,它是否可以继续执行下去。利用生产者是否可以继续执行下去。利用生产者消费消费者算法,生产者进程可以传送一批数据给消费者算法,生产者进程可以传送一批数据给消费进程,或者说生产者通过缓冲区与消费者进行进程,或者说生产者通过缓冲区与消费者进行通信,但通信,但P P、V V操作只能传递信号

3、,信号本身不操作只能传递信号,信号本身不包含任何数据,而进程不当还容易导致进程死包含任何数据,而进程不当还容易导致进程死锁,因此,称这些同步机构为低级通信机构。锁,因此,称这些同步机构为低级通信机构。高级通信的三种方式:高级通信的三种方式: 1 1、共享存储器系统、共享存储器系统 2 2、消息传递系统、消息传递系统 3 3、管道通信、管道通信-共享文件通信共享文件通信消息缓冲通信消息缓冲通信( (直接通信直接通信) )信箱通信信箱通信( (间接通信间接通信) )2.5.1 2.5.1 进程通信的类型进程通信的类型高级通信机制类型高级通信机制类型1 1 共享存储器系统共享存储器系统(Shared

4、-Memory System)(Shared-Memory System)2 2 消息传递系统消息传递系统(Message passing System)(Message passing System)3 3 管道管道(pipe)(pipe)通信系统通信系统 1 共享存储器系统 共享存储器系统:相互通信的进程通过共共享存储器系统:相互通信的进程通过共享某些数据结构或存储区进行通信,因而可进享某些数据结构或存储区进行通信,因而可进一步分为:一步分为: 基于共享数据结构的通信方式;(低效,只基于共享数据结构的通信方式;(低效,只适于传递少量数据)适于传递少量数据) 基于共享存储区的通信方式。为了传

5、送大量基于共享存储区的通信方式。为了传送大量数据,在存储区中划出一块共享存储区,诸进数据,在存储区中划出一块共享存储区,诸进程可通过对共享存储区进行读或写数据实现通程可通过对共享存储区进行读或写数据实现通信。信。 2 消息传递系统 在消息传递系统中,进程间的数据交换是以消息(message,在计算机网络中又称报文)为单位。程序员直接利用系统提供的一组通信命令原语来实现通信。 因其实现方法的不同,又可分为: 直接通信方式消息缓冲机制)间接通信方式信箱通信方式) 直接通信方式:直接通信方式: 发送进程直接将消息发送给接收进程,发送进程直接将消息发送给接收进程,并将它挂在接收进程的消息缓冲队列上。并

6、将它挂在接收进程的消息缓冲队列上。接收进程从消息缓冲队列中取得消息。故接收进程从消息缓冲队列中取得消息。故称为消息缓冲机制。称为消息缓冲机制。 在直接通信方式下在直接通信方式下,企图发送或接收消企图发送或接收消息的每个进程必须指出信件发给谁或从哪息的每个进程必须指出信件发给谁或从哪里接收消息里接收消息,可用可用send原语和原语和receive原语原语来实现进程之间的通信来实现进程之间的通信: send(P,音讯音讯):把一个消息发送给进把一个消息发送给进程程P。 receive(Q,音讯音讯):从进程从进程Q接收一个接收一个消息。消息。 间接通信方式:间接通信方式: 发送进程将消息发送到某个

7、中间实体发送进程将消息发送到某个中间实体一般称为信箱中,接收进程从中取得一般称为信箱中,接收进程从中取得消息,所以称为信箱通信方式,相应的系消息,所以称为信箱通信方式,相应的系统称为电子邮件系统。统称为电子邮件系统。 消息缓冲机制直接通信)发送进程在自己的内存空间设置一个把要发送的消息填入发送区发送区接收区接收进程在自己的内存空间设置一个公用缓冲区两通信进程必须满足下列条件两通信进程必须满足下列条件在发送进程把消息写入缓冲区和把缓冲区挂入消息队在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时,列时, 应禁止其他进程对缓冲区消息队列的访问。同理,应禁止其他进程对缓冲区消息队列的访问。同理,接收

8、进程取消息时也禁止其他进程访问缓冲区消息接收进程取消息时也禁止其他进程访问缓冲区消息队列队列2 当缓冲区中没有信息存在时,接收进程不能接收到当缓冲区中没有信息存在时,接收进程不能接收到任何消息任何消息PCBPCB.Send(R, M)Send(R, M).SIZE:SIZE:消息长度消息长度TEXT:TEXT:消息正文消息正文.消息链指针消息链指针.Receive(pid, N)Receive(pid, N).SIZE:SIZE:消息长度消息长度TEXT:TEXT:消息正文消息正文.M:M:N:N:接收进程接收进程 R R发送进程发送进程 S S音讯音讯音讯音讯音讯音讯. 发送进程和接收进程发

9、送进程和接收进程发送原语发送原语Send()和接收原语()和接收原语receive()()设公用信号量设公用信号量mutex,并置初值为,并置初值为1设设SM为接收进程的私用信号量,置初值为为接收进程的私用信号量,置初值为0Send(m) begin 向系统申请一个消息缓冲区 P(mutex) 使用公用缓冲区 将发送区消息m送入新申请的消息缓冲区 把消息缓冲区挂入接收进程的消息队列 V(mutex) 释放缓冲区 V(SM) 向接收进程发送消息 endReceive(m ) begin P(SM) 等待接的消息的个数 P(mutex) 使用公用缓冲区 摘下消息队列中的消息m 将消息队列m从缓冲区

10、复制到接收区 释放缓冲区 V(mutex) 释放公用缓冲区 end信箱通信间接通信)信箱通信间接通信)信邮箱 信箱是一种数据结构,逻辑上它分成两部分:信箱头和由若干格子组成的信箱体。 间接通信方式中的发送和接收原语的形式如下: send(A,信件):把一个信件发送给信箱A; receive(A,信件):从信箱A接收一封信件;发送和接收消息原语的功能如下: 接收信件:如果指定信箱中有信,则取出一封信件,并释放等待信箱的等待者,否则,接收信件者被置成等待信箱中信件的状态。 发送信件:如果指定的信箱未满,则将信件送入信箱中由指针所指示的位置,并释放等待该信箱中的信件的等待者;否则,发送信件者被置成等

11、待信箱状态。 信箱可由信箱可由OSOS创建,也可由用户进程创建,创建创建,也可由用户进程创建,创建者是信箱的拥有者,据此可把信箱分为:私用信者是信箱的拥有者,据此可把信箱分为:私用信箱,公用信箱,共享信箱。箱,公用信箱,共享信箱。 在利用信箱通信时,在发送进程和接在利用信箱通信时,在发送进程和接收进程之间,存在着四种关系:收进程之间,存在着四种关系:一对一关系:即可以为发送进程和接收进程建立一对一关系:即可以为发送进程和接收进程建立一条专用的通信链路;一条专用的通信链路;多对一关系:允许提供服务的进程与多个用户进多对一关系:允许提供服务的进程与多个用户进程进行交互,也称客户程进行交互,也称客户

12、/服务器交互;服务器交互;一对多关系:允许一个发送进程与多个接收进程一对多关系:允许一个发送进程与多个接收进程交互,使发送进程用广播的形式,发送消息;交互,使发送进程用广播的形式,发送消息;多对多关系:允许建立一个公用信箱,让多个进多对多关系:允许建立一个公用信箱,让多个进程都能向信箱投递消息,也可取走属于自己的消程都能向信箱投递消息,也可取走属于自己的消息。息。 3 3、管道通信、管道通信 管道管道pipepipe通信由通信由UNIXUNIX首创的一种借首创的一种借助文件和文件系统形成的一种通信方式。由助文件和文件系统形成的一种通信方式。由于其有效性,一些系统继于其有效性,一些系统继UNIXUNIX之后相继引入之后相继引入了管道技术,如了管道技术,如pc-dospc-dos,管道通信将成为进,管道通信将成为进程通信的一种重要方式。程通信的一种重要方式。 消息缓冲通信机构是以内存缓冲区为基消息缓冲通信机构是以内存缓冲区为基础。础。 管道是以文件系统为基础。管道是以文件系统为基础。有名管道有名管道无名管道无名管道 管道 是指用于连接一个读进程和一个写进程,以实现它们之间通信的一个共享文件,又称pipe文件。 向管道共享文件提供输入的发送进程即写进程),以字符流形式将大量的数据送入管道;而接收管道输出的接收进程即读进程),可从管道接收数据,由于发送和接收都是利用管道进行通信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论