进程通信第三章32_第1页
进程通信第三章32_第2页
进程通信第三章32_第3页
进程通信第三章32_第4页
进程通信第三章32_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、3.2 3.2 进程通信进程通信3.2.1 3.2.1 进程通信的类型进程通信的类型3.2.2 3.2.2 直接通信方式直接通信方式3.2.1 3.2.1 进程通信的类型进程通信的类型3.2.1 3.2.1 进程通信的类型进程通信的类型3.2.2 3.2.2 直接通信方式直接通信方式一、直接通信方式的基本思想一、直接通信方式的基本思想二、实例二、实例消息缓冲队列通信机制消息缓冲队列通信机制一、直接通信方式的基本思想一、直接通信方式的基本思想3.2.2 3.2.2 直接通信方式直接通信方式 根据根据生产者生产者消费者消费者关系原理,利用内存关系原理,利用内存的公用消息缓冲池实现进程之间的信息交换

2、。的公用消息缓冲池实现进程之间的信息交换。 发送者进程直接将消息送入内存公用消息发送者进程直接将消息送入内存公用消息缓冲池,并将它挂接在接收者进程的缓冲池,并将它挂接在接收者进程的消息缓消息缓冲队列冲队列上,接收进程从消息缓冲队列中取走上,接收进程从消息缓冲队列中取走消息。消息。二、实例二、实例消息缓冲队列通信机制消息缓冲队列通信机制1 1、通信描述、通信描述进进程程 A A发发送送区区s se en nd d( (B B, ,a a) )进进程程 B B接接收收区区m mq qm mu ut te ex xs sm m公公用用消消息息缓缓冲冲池池P PC CB B( (B B) )a as

3、se en nd de er r: :A As si iz ze e: :5 5t te ex xt t: :H He el ll lo or re ec ce ei iv ve e( (b b) )bEmpheadN NU UL LL Li is se en nd de er r : :A As si iz ze e : : 5 5T Te ex xt t: :H He el ll lo on ne ex xt t: : 0 0进进程程 A A发发送送区区s se en nd d( (B B, ,a a) )进进程程 B B接接收收区区m mq qm mu ut te ex xs sm m公

4、公用用消消息息缓缓冲冲池池P PC CB B( (B B) )a as se en nd de er r: :A As si iz ze e: :5 5t te ex xt t: :H He el ll lo or re ec ce ei iv ve e( (b b) )bEmpheadN NU UL LL Ls se en nd de er r : :A As si iz ze e : : 5 5T Te ex xt t: :H He el ll lo on ne ex xt t: : 0 0s se en nd de er r: :A As si iz ze e : : 5 5t te e

5、x xt t: :H He el ll lo o1 1、通信描述、通信描述i i二、实例二、实例消息缓冲队列通信机制消息缓冲队列通信机制进进程程 A A发发送送区区s se en nd d( (B B, ,a a) )进进程程 B B接接收收区区m mq qm mu ut te ex xs sm m公公用用消消息息缓缓冲冲池池P PC CB B( (B B) )a as se en nd de er r: :A As si iz ze e: :5 5t te ex xt t: :H He el ll lo or re ec ce ei iv ve e( (b b) )bEmpheadN NU

6、UL LL Lsendersender: :A Asizesize : : 5 5texttext: :HelloHello1 1、通信描述、通信描述i i二、实例二、实例消息缓冲队列通信机制消息缓冲队列通信机制s se en nd de er r : :A As si iz ze e : : 5 5T Te ex xt t: :H He el ll lo on ne ex xt t: : 0 0二、实例二、实例消息缓冲队列通信机制消息缓冲队列通信机制3.2.23.2.2 直直接接通通信信方方式式2 2、发送、接收原语、发送、接收原语发送原语发送原语-send(receiver-send(re

7、ceiver,a)a)send(receiversend(receiver,a)a)原语用来发送消息原语用来发送消息, , receiver receiver 是接收者进程是接收者进程,a,a是发送区起始地址;是发送区起始地址;接收原语接收原语- receive(b)- receive(b) receive(b) receive(b)原语用来接收消息,原语用来接收消息, b b是接收区首地址;是接收区首地址;send(receiversend(receiver,a)a)二、实例二、实例消息缓冲队列通信机制消息缓冲队列通信机制3.2.23.2.2 直直接接通通信信方方式式2 2、发送、接收原语、

8、发送、接收原语二、实例二、实例消息缓冲队列通信机制消息缓冲队列通信机制3.2.23.2.2 直直接接通通信信方方式式3 3、实现、实现数据结构数据结构消息缓冲块消息缓冲块PCBPCB中有关通信的数据项中有关通信的数据项mq :mq :消息队列头指针消息队列头指针; ;mutex :mutex :消息队列互斥信号量,初值为消息队列互斥信号量,初值为1;1;sm sm 同步信号量同步信号量, ,用于消息队列中的消息计数用于消息队列中的消息计数, ,初值为初值为0;0;BufmutexBufmutex:缓冲池的互斥信号量,初值为:缓冲池的互斥信号量,初值为1;1;消息缓冲通信机制还应包含的内容:消息

9、缓冲通信机制还应包含的内容:EmpheadEmphead:空缓冲队列头指针;:空缓冲队列头指针;BufemptyBufempty:缓冲池的同步信号量,初值为:缓冲池的同步信号量,初值为n;n;二、实例二、实例消息缓冲队列通信机制消息缓冲队列通信机制3.2.23.2.2 直直接接通通信信方方式式3 3、实现、实现发送、接收原语的类发送、接收原语的类C C语言描述语言描述3.2.2 3.2.2 直接通信方式直接通信方式例例1 1:如下图所示的是高级通讯原语如下图所示的是高级通讯原语SENDSEND和和RECEIVERECEIVE不完整的框图。请填充适当的不完整的框图。请填充适当的P P,V V操作

10、,并说明所用信号量的意义和初值。操作,并说明所用信号量的意义和初值。对消息链表互斥访问的信号量对消息链表互斥访问的信号量S,S,初值为初值为1 1私有信号量私有信号量S1S1,表示当前消息链中消息的数目,表示当前消息链中消息的数目, 初值为初值为0 0发送者发送者申请一消息区申请一消息区消息送消息区消息送消息区消息挂入消息链消息挂入消息链V(S1)V(S1)接收者接收者从消息链摘下一消息从消息链摘下一消息消息送接收区消息送接收区释放消息区释放消息区发送者发送者申请一消息区申请一消息区消息送消息区消息送消息区消息挂入消息链消息挂入消息链V(S1)V(S1)接收者接收者从消息链摘下一消息从消息链摘下一消息消息送接收区消息送接收区释放

温馨提示

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

评论

0/150

提交评论