- 1、本文档共142页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2、消息传递系统 在消息传递中,进程间的数据交换以消息为单位。程序员直接利用系统提供的通信命令(原语)来实现。 (1)直接通信方式。 发送进程直接将消息发送给接收进程并将它挂在接收进程的消息缓冲队列上,接收进程从消息缓冲队列取得消息。 Send(B,a) ● id:B Size:5 Text:hello 发送区a a 进程A Receive(b) ● id:A Size:5 Text:hello 接收区 b b 进程B PCB(B) mq ● mutex sm Size:5 Text: hello Next: 0 Sender:A 第1个消息缓冲区 图3-22 消息缓冲通信示意图 (2)间接通信方式。 发送进程将消息发送到某种中间实体中,接收进程从中取得消息。这种中间实体一般为信箱,故也称之为信箱通信方式。 信箱通信示意图 进程 A 信箱头 … send receive 进程 B send receive 图3-23 信箱通信示意图 3、管道通信方式 管道是指用于连接一个读进程和一个写进程以实现它们之间通信的共享文件,又称为pipe文件。 管道通信须提供3方面的协调能力: (1)互斥 (2)同步 (3)对方是否存在 共享文件(管道)通信示意图 图3-24 共享文件(管道)通信示意图 发送进程 接收进程 三、直接通信和间接通信 1.直接通信方式 指发送进程利用操作系统提供的发送和接收命令(原语)进行通信。发送消息时直接指明接收者或发送者进程ID。 发送原语:send(receiver,message); 接收原语:receiver(sender,message); Send(B,a) ● id:B Size:5 Text:hello 发送区a a 进程A Receive(b) ● id:A Size:5 Text:hello 接收区 b b 进程B PCB(B) mq ● mutex sm Size:5 Text: hello Next: 0 Sender:A 第1个消息缓冲区 图3-22 消息缓冲通信示意图 举例:(UNIX中两进程利用信号通信)。 Process A ┆ send(1040, SIGUSR1); #向1040号进程发送 一个SIGUSR1信号。 Process B ┆ receive(SIGUSR1,func);#当收到SIGUSR1信 号时,就执行func(),如果SIGUSR1 信号未到,则系统登记func函数, 待其信号到时再调用执行。 ┆ ┆ 2.间接通信方式 基本思想:系统为每个信箱设一个消息队列,消息发送和接收都指向该消息队列,(每个进程可以对消息队列发送并接收/只发送/只接收) 缺点:必须有一个通信双方共享的一个逻辑消息队列(UNIX的PIPE,FIFO及IPC消息传递机制都属于这种形式),使用时消息发送者约定写方式打开信箱,消息接收者约定读方式打开信箱或同时读写打开。 优点:很容易建立双向通信链(只要对信箱说明为读写打开)。 四、用消息传递实现互斥 Program mulualexclusion Const n=…;(*进程个数*) Procedure P(I:integer); Var msg:message; Begin repeat receive(mutex,msg); critical section; send(mutex,msg); remainder forever End; Begin(*main program*) Create-mailbox(mutex); Send(mutex,null); Parbegin P(1); P(2); … P(n); Parend End. 又例:用消息传递解决有限缓冲区的生产者/消费者问题 使用两个邮箱(两个缓冲区)。 生产者将生产出的数据作为消息送到邮箱mayconsume,只要邮箱中有消息,消费者就可以消费。 最初,邮箱mayproduce充满了与缓冲区容量相同数量的空消息,mayproduce中的消息随生产者的生产而减少,随消费者的消费而增加。 Program producerconsumer Const capacity=….; null=…; Var I:integer; Procedure producer; var pmsg:message; Begin while true do begin receive(mayproduce,psmg); pmsg:=produce; send(maysonsume,pmsg)
您可能关注的文档
- 打造卓越课堂的有效载体--导学案的编制和使用.ppt
- 打造完美人生.ppt
- 打造忠诚专业的营销组织.ppt
- 手阳明大肠经4.ppt
- 打造有特色的酒店文化.ppt
- 托幼机构幼儿膳食管理2010.07.28.ppt
- 打造高效课堂.ppt
- 打火机演变历程.ppt
- 手机销售入门.ppt
- 手的运动有声音(1).ppt
- 2025AACR十大热门靶点推荐和解读报告52页.docx
- 财务部管理报表.xlsx
- 高中物理新人教版选修3-1课件第二章恒定电流第7节闭合电路欧姆定律.ppt
- 第三单元知识梳理(课件)-三年级语文下册单元复习(部编版).pptx
- 俄罗斯知识点训练课件-七年级地理下学期人教版(2024).pptx
- 课外古诗词诵读龟虽寿-八年级语文上学期课内课件(统编版).pptx
- 高三语文二轮复习课件第七部分实用类文本阅读7.2.1.ppt
- 高考物理人教版一轮复习课件第4章第3讲圆周运动.ppt
- 高考英语一轮复习课件53Lifeinthefuture.ppt
- 2025-2030衣柜行业风险投资发展分析及投资融资策略研究报告.docx
最近下载
- 开封市检察机关聘用制书记员招聘笔试真题2023.docx VIP
- 易飞代理商高级生产应用认证考试(答案).docx VIP
- 工厂运营培训课件.pptx VIP
- 中国移动L1-L3等级认证(无线LTE网络优化)考试复习题库汇总-中(多选题汇总).docx VIP
- DB21_T 2977-2018低影响开发城镇雨水收集利用工程技术规程.docx
- 2024年贵州贵州省旅游产业发展集团有限公司招聘真题.docx VIP
- FPGA开发入门教程.pdf VIP
- 夏秋贵州省旅游产业发展集团有限公司员工招聘考试真题2024.docx VIP
- AWS D1.1-2020钢结构焊接规范(中英文版).pdf
- XX公司审计整改工作实施方案.doc VIP
文档评论(0)