36进程通信communication内容摘要:

P(mutex) 使用公用缓冲区 将发送区消息 m送入新申请的消息缓冲区 把消息缓冲区挂入接收进程的消息队列 V(mutex) 释放缓冲区 V(SM) 向接收进程发送消息 end Receive(m ) begin P(SM) 等待接的消息的个数 P(mutex) 使用公用缓冲区 摘下消息队列中的消息 m 将消息队列 m从缓冲区复制到接收区 释放缓冲区 V(mutex) 释放公用缓冲区 end 进 程 管 理 12 邮箱通信 (间接通信) 1. 信 ( 邮 ) 箱 信箱是一种数据结构 , 逻辑上它分成两部分: 信箱头 和由若干格子组成的 信箱体。 信箱中每个格子存放一封信 , 信箱中格子的数目和每格的大小在创建信箱时确定。 进程间的通信要满足如下条件: , 邮箱中至少要有一个空格存放该消息。 ,邮箱中至少要有一个消息存在。 进 程 管 理 13 信箱可由 OS创建,也可由用户进程创建,创建者是信箱的拥有者,据此可把信箱分为:私用信箱,公用信箱,共享信箱。 在利用信箱通信时,在发送进程和接收进程之间,存在着四种关系: 一对一关系 :即可以为发送进程和接收进程建立一条专用的通信链路; 多对一关系 :允许提供服务的进程与多个用户进程进行交互,也称客户 /服务器交互; 一对多关系 :允许一个发送进程与多个接收进程交互,使发送进程用广播的形式,发送消息; 多对多关系 :允许建立一个公用信箱,让多个进程都能向信箱投递消息,也可取走属于自己的消息。 进 程 管 理 14 发送进程 A 邮箱头 … 邮箱体 接收进程 B Deposite(m) Remove(m) 邮箱通信结构 邮箱头:邮箱名称、邮箱大小、拥有该邮箱的进程名 邮箱体:存放消息 使用邮箱的时候应该满足: 1 发送进程发送消息时,邮箱中至少要有一个空格能存放该消息 2 接收进程接收消息时,邮箱中至少有一个消息存在 进 程 管 理 15 该发送进程调用过程 deposit(m)将消息发送到邮箱 , 接收进程调用过程 remove(m),将消息 m从邮箱中取出。 Fromnum— 发送进程的私用信号量。 记录信箱空格 , 初值为 n。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。