第3章进程管理通信.pptVIP

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章进程管理通信

;3.4 进程通信(communication);3.4 进程通信;3.4.1 概念;一、单机系统中进程间通信的四种形式 P62 主从式、会话式、 消息或邮箱机制、 共享存储区方式 二、高级通讯机制类型 1 共享存储器系统(Shared-Memory System) 2 消息传递系统(Message passing System) 3 管道(pipe)通信系统(共享文件方式) ;1、共享存储器系统;;2、消息传递系统;;思考;3、管道通信;两通信进程必须满足下列条件 在发送进程把消息写入缓冲区和把缓冲区挂入消息队列时, 应禁止其他进程对缓冲区消息队列的访问。同理,接收进程取消息时也禁止其他进程访问缓冲区消息队列 2 当缓冲区中没有信息存在时,接收进程不能接收到任何消息;在操作系统空间设置一组缓冲区。 当发送进程需要发送消息时,执行send系统调用,产生访管中断,进入操作系统。 操作系统为发送进程分配一个空缓冲区,并将所发送的消息从发送进程copy到缓冲区中,然后将该载有消息的缓冲区连接到接收进程的消息链链尾,如此就完成了发送过程。 发送进程返回到用户态继续执行。;;PCB; type messageBuffer=record sender ;//发送者ID size ;//消息长度 text ;//消息正文 next ;//消息队列指针 end ;PCB中有关通信的数据项;设公用信号量mutex,并置初值为1 设SM为接收进程的私用信号量,置初值为0;begin P(SM) //等待接的消息的个数 P(mutex) //使用公用缓冲区 摘下消息队列中的消息m 将消息队列m从缓冲区复制到接收区 释放缓冲区 V(mutex) // 释放公用缓冲区 end;1.? 信(邮)箱 信箱是一种数据结构,逻辑上它分成两部分:信箱头和由若干格子组成的信箱体。 ;;Send实现;Receive实现; 消息缓冲通信机构是以内存缓冲区为基础。 管道是以文件系统为基础。 有名管道 无名管道 ; ;管道通信的思想 (1)发送进程可以源源不断的从pipe一端写入数据流,在规定的pipe文件的最大长度(如4096字节)范围内,每次写入的信息长度是可变的 (2)接收进程在需要时可以从pipe的另一端读出数据,读出单位长度也是可变的 ;1.? Pipe的建立和使用方式 pipe 文件在使用之前,必须先由使用者建立并打开, 建立pipe的主要工作是在系统打开文件表中建立该pipe的两个表目, 一个表目用于控制该pipe的写操作(写入端) 另一表目用于控制该pipe的读操作(读出端)此时,pipe本身还是个空白文件。 ; 系统文件 write(fd[1],buf,size) 功能:把buf中的长度为size字符的消息送入管道入口fd[1] fd[1]—pipe入口 buf:存放消息的空间 size :要写入的字符长度 系统文件 read(fd[0],buf,size) fd[0]――pipe的出口 功能:从pipe出口fd[0]读出size字符的消息置入 buf中。 ; pipe只允许建立者及其子进程使用。一进程及其所有‘子孙’构成一个进程族,同族中的多个进程可共享一个pipe,为了避免混乱,通常一个pipe为两个进程专用,且一个进程只用其写入端,另一进程只用其读出端。;1.? Pipe文件的读写操作的同步与互斥 如同消息缓冲一样,在对pipe文件进行读写操作过程中要对发送进程和接送进程实施正确的同步与互斥以确保通信的正确性. 接收进程:当接收进程读pipe时,若发现pipe为空,则进入等待状态。一旦有发送进程对该pipe执行写操作是唤醒等待进程. ;发送进程:当发送进程在写pipe时,总是先按pipe文件的当前长度设置,如果pipe文件长度已经到4096字节,但仍有一部分信息没有写入,则系统使要求写pipe的进程进入睡眠状态,当读pipe进程收走了全部信息时,此时,系统再唤醒待写的进程。它将余下部分信息继续送入pipe中。

您可能关注的文档

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档