- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【操作系统】第二章进程管理3
进程通信的类型
一、单机系统中进程间通信的四种形式
主从式、会话式、消息或邮箱机制、共享存储区方式
二、高级通讯机制类型
1 共享存储器系统(Shared-Memory System)
2 消息传递系统(Message passing System)
3 管道(pipe)通信系统
;1 共享存储器系统;2 消息传递系统; ;消息缓冲机制(直接通信);
消息的一般形式 ?
消息缓冲通讯技术由Hansen 首先提出的,基本思想是:根据“生产者——消费者关系”原理,利用公用消息缓冲区实现进程间的信息交换。
发送进程先申请一个消息缓冲区,写入消息后把该消息缓冲区送入接收进程的消息队列中,通知接收进程。接收进程从消息队列中摘下一消息缓冲区,取出所需要的信息。 ;消息的一般形式:
发送消息的进程名
接收消息的进程名
消息长度
消息正文
?
; 消息缓冲通讯机构包含下列内容:
消息缓冲区是一个数据结构
用Pascal 描述为:
type msg=recorod
sender: 消息发送者名
size: 消息长度
Text: 消息正文
Next: 下一个消息的链指针
; 发送进程和接收进程
发送原语Send()和接收原语receive()
设公用信号量mutex,并置初值为1
设SM为接收进程的私用信号量,置初值为0;邮箱通信(间接通信); ;发送进程
A; 该发送进程调用过程deposit(m)将消息发送到邮箱,接收进程调用过程remove(m),将消息m从邮箱中取出。
Fromnum—发送进程的私用信号量。记录信箱空格,初值为n
Mesnum—接收进程的私用信号量。记录信箱有消息的个数 初值为0
;Fromnum记录信箱空格,初值为n
Mesnum记录信箱有消息的个数 初值为0
Deposit(m);
Begin local x
P(fromnum) 空格数减1
选择空格x
将消息m放入空格x中
置格x的标志为满
V(mesnum) 向接收进程发送消息
end 消息个数+1;进程通信的例――管道
管道(pipe)通讯由UNIX首创的一种借助文件和文件系统形成的一种通信方式,。由于其有效性,一些系统继UNIX之后相继引入了管道技术,如pc-dos,管道通信将成为进程通讯的一种重要方式。
消息缓冲通信机构是以内存缓冲区为基础。
管道是以文件系统为基础。
有名管道
无名管道
; ; ;管道通信的思想
(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中。
;线程的引入;线程的定
您可能关注的文档
最近下载
- 中国现代文学史(第三版)第五章50—70年代台港诗歌、戏剧、散文.pptx
- 教育家精神专题课件.ppt VIP
- 一年级心理健康教育教案(20篇).docx VIP
- 三菱电梯菱云2LEHY2调试资料.pdf
- 0—3岁婴幼儿抚养与教育电子教案 第三章 第三节 婴幼儿三浴锻炼与抚触.docx VIP
- 急诊常见首发症状的鉴别与诊疗思路题库答案-2025年华医网继续教育.docx VIP
- 《不抱怨的世界》-读书分享课件.pptx VIP
- 商务数据分析 项目1 认识Excel与商务数据分析.pptx VIP
- 错合畸形的分类课件.pptx VIP
- 2025年华医网继续教育CRRT在急诊重症患者中的临床应用答案.docx VIP
文档评论(0)