- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.5 进程通信 进程通信 进程通信:指进程间的信息交换。 按通信内容可以划分为2种 低级通信:进程之间控制信息的交换称为低级通信:进程间的互斥与同步。 高级通信:用户可以直接利用操作系统所提供的一组通信命令,高效地传送大量数据的一种通信方式。 进程高级通信的类型 共享存储器系统(Shared-Memory System) 消息传递系统(Message passing System) 管道(Pipe)通信系统 共享存储器系统 共享数据结构:(低效,只适于传递少量数据) 共享存储区:在存储区中划出一块共享存储区,诸进程可通过对共享存储区进行读或写数据实现通讯,可以传送大量数据。 共享存储区 消息传递系统 在消息传递系统中,进程间的数据交换是以消息(message,在计算机网络中又称报文)为单位。程序员直接利用系统提供的一组通讯命令(原语)来实现通讯。 因其实现方法的不同,又可分为 消息传递系统 直接通信方式:发送进程直接将消息发送给接收进程,并将它挂在接收进程的消息缓冲队列上。接收进程从消息缓冲队列中取得消息。故称为消息缓冲机制。 间接通信方式:发送进程将消息发送到某个中间实体(一般称为信箱)中,接收进程从中取得消息,所以称为信箱通讯方式,相应地系统称为电子邮件系统。 消息缓冲机制(直接通信) 消息缓冲通讯技术由Hansen首先提出的,基本思想是:根据“生产者-消费者关系”原理,利用公用消息缓冲区实现进程间的信息交换。 发送进程先申请一个消息缓冲区,写入消息后把该消息缓冲区送入接收进程的消息队列中,通知接收进程。接收进程从消息队列中摘下一消息缓冲区,取出所需要的信息。 进程通信原语 发送原语:Send(Receiver,message) 接受原语:Receive(Sender,message) 注意: 发送原语中必须指定目标进程的具体标识号; 接收原语中的源进程标识号有两种处理方法: 1)接收进程显示地指定发送进程标识号,这就要求接收进程必须事先接收那个进程来的消息; 2)接收进程可以不必指定接收哪个进程的消息 消息的一般形式 消息缓冲区的数据结构 struct msg { sender; // 消息发送者名 size; // 消息长度 Text; // 消息正文 Next; //下一个消息的链指针 } PCB中增加相关数据项 typedef struct process_control_block { .... mq; //消息队列 message queue mutex; //消息队列互斥信号量 sm; //消息队列资源信号量 .... } Send原语 void send( receiver , a ) { getbuf( a.size , msg ); //申请缓冲区,存入msg msg.sender = a.sender; msg.size = a.size; strcpy( a.text , msg.text) ; msg.next = 0; j = getinternal_name( receiver ); P( j.mutext ); insert( j.mq , msg ); //加入接收者的消息队列 V( j.mutext ); V( j.sm ); //消息个数加1 , 可能会唤醒接收者 } Receive原语 void receive( b ) { P( j.sm ); //申请取消息,若无则阻塞 P( j.mutext ); // 互斥访问消息队列 remove( j.mq , msg ); //摘下一个消息 V( j.mutext ); b.sender = msg.sender; b.size = msg.size; strcpy(msg.text , b.text ) ; putbuf ( msg ); //释放消息所占空间 } 消息缓冲通信基本原理 信箱通信方式(间接通信) 与直接通信方式不同,消息不再从发送发直接发送到接收方,而是通过发送进程与接收进程共享的一个数据结构进行中转,该数据结构称为信箱。 发送进程将消息发送到指定的信箱中,接收进程从信箱中接收信息 信箱 信(邮)箱 信箱是一种数据结构,逻辑上它分成两部分:信箱头和由若干格子组成的信箱体。 信箱中每个格子存放一封信,信
您可能关注的文档
- 呼吸系统疾病02-8-肺癌.ppt
- 呼吸系统疾病02-14-呼吸衰竭.ppt
- 化工热力学(阳庆元)Chapter1.pdf
- 化工热力学(阳庆元)Chapter2-1.pdf
- 化工热力学(阳庆元)Chapter2-2.pdf
- 化工热力学(阳庆元)Chapter2-3.pdf
- 化工热力学(阳庆元)Chapter2-4.pdf
- 化工热力学(阳庆元)Chapter3-1.pdf
- 化工热力学(阳庆元)Chapter3-2.pdf
- 化工热力学(阳庆元)Chapter3-3.pdf
- 220kV变电站主变压器泡沫喷淋灭火系统防误动控制方案研究.docx
- 2024消防水泵房施工方案.docx
- 密闭电石炉净化系操作说明--课件.ppt
- 小儿大动脉炎的科普知识.pptx
- 【备战25年高考数学】题型06 7类三角函数与三角恒等变换解题技巧(原卷版).docx
- 【备战25年高考数学】题型06 7类三角函数与三角恒等变换解题技巧(原卷版) (2).docx
- 2011年高考数学试卷(理)(天津)(空白卷).docx
- 【备战25年高考数学】题型08 10类球体的外接球及内切球解题技巧(解析版).docx
- 【备战25年高考数学】题型09 6类圆锥曲线离心率解题技巧(解析版).docx
- 【备战25年高考数学】题型08 10类球体的外接球及内切球解题技巧(原卷版).docx
最近下载
- 2025统编版(2024)小学道德与法治一年级下册教学计划.docx VIP
- 幼儿园教育评价概述 幼儿园教育评价的要素课件.ppt
- 16J604 塑料门窗(建筑图集).docx
- 第一单元写作《写出人物的特点》课件2024-2025学年统编版语文七年级下册.pptx VIP
- Q/CR 546.4-2016 - 动车组用涂料与涂装 第4部分:转向架用涂料及涂层体系.pdf
- 2019春人教版音乐二年级下册全册教案.doc VIP
- 2024年秋季苏科版八年级物理上册全册教学课件(2024年新教材).pptx
- 城市轨道交通信号施工全套教学课件.pptx
- 矿山股份合同模板5篇.docx
- 采购部门降本增效实施方案.pptx
文档评论(0)