基于分布式网络进程间通信系统设计与研究.docVIP

基于分布式网络进程间通信系统设计与研究.doc

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

基于分布式网络进程间通信系统设计与研究   [摘 要] 在分布式网络通信系统中,一个全局过程的执行被划分为在许多场地上子过程的执行。分布式通信进程要能够在多个服务器上执行,必须使用进程管理器来协调各个服务器对过程的处理操作,同时为减少网络故障对分布式通信过程处理的影响,通过进程管理可以避免不同服务器间数据的不一致。基于此,本文对分布式环境下的进程间通信系统设计与实现进行了初步研究。   [关键词] 分布式 进程通信 系统设计      1进程间通信概述   进程间通信就是在不同进程之间传播或交换信息,进程的用户空间是互相独立的。一般而言是不能互相访问的,唯一的例外是共享内存区,内核可以提供这样的条件。除此以外,那就是双方都可以访问的外设了。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。进程间通信主要包括管道、系统IPC(包括消息队列,信号量,共享存储)、SOCKET。其中管道包括三种:①普通管道PIPE,通常有种限制,一是半双工,只能单向传输;二是只能在父子进程间使用。②流管道s_pipe:去除了第一种限制,可以双向传输。③命名管道name_pipe:去除了第二种限制,可以在许多并不相关的进程之间进行通讯。Linux系统采用的进程通信方式如下。   1)文件和记录锁定。   为避免两个进程间同时要求访问同一共享资源而引起访问和操作的混乱,在进程对共享资源进行访问前必须对其进行锁定,该进程访问完后再释放。这是Linux为共享资源提供的互斥性保障。   2)FIFO。   FIFO是一种先进先出的队列。它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO。因此也成为命名管。   3)消息队列。   Linux下不同进程之间可实现共享资源的一种机制;Linux允许不同进程将格式化的数据流以消息形式发送给任意进程。对消息队列具有操作权限的进程都可以使用msget完成对消息队列的操作控制。通过使用消息类型,进程可以按任何顺序读消息,或为消息安排优先级顺序。   4)信号灯。   作为进程间通讯的一种方法,它不是用于交换大批数据,而用于多进程之间的同步(协调对共享存储段的存取)。   2分布式进程间通信系统的初步设计   2.1建立进程服务器   在网络通信中,要与一个进程通信,或访问一个进程提供的服务,都需要通过它的IP地址和端口号来定位该进程,?xIP地址,端口号?y就构成了网络中一个进程的地址,然而,在分布式环境下使用这种地址结构作为名字就会破坏分布式系统的透明性,IP地址会暴露一个进程具体运行在系统中的哪个环节点上,一旦进程迁移到其它节点,那么原来编写的程序将无法正常工作,因此,拟建立一种与网络拓扑机构和具体物理连接无关,对于本地进程和远程进程没有差别的进程服务机制,在这种机制中的进程名字不带有其地址信息,即与其地址无关。我们采用模拟单机系统中的进程号,在分布式信号通信系统中建立分布式环境下的进程号pid_p,通过这个进程号可以唯一的标识分布式系统中的进程,即一个分布式进程号仅用来代表通信系统中的一个进程,一个进程也只拥有一个分布式进程号,当用户程序要发送信号时,只需要向系统提供pid_p和信号值就可以将信号发给目标进程,因此,从用户的角度,这种信号发送方式与单机下信号发送方式是没有区别的。对于系统来说,要对用户进程进行操作或访问,只需要将进程的分布式进程号pid_p转换成它的地址?xIP,pid?y,转换过程可由一个进程服务器(PS)来完成。   进程服务器要为用户进程提供注册,注销服务,还要为各个节点上的组件提供进程查询服务。可以建立分布式进程名表(PS_table),表中记录用户进程的分布式进程号pid_p,IP地址和单机内的进程号pid。   分布式进程名表的表项结构采用链表结构定义。   typedef struct_nslist_item{   pid_p mpid_p;//进程的分布进程号pid_p   unsigned long int IP;//节点的二进制IP地址   pid_t mpid; //进程在单机内的进程号pid   struct_nslist_item*next;//指向下一表项的指针   } nslist_item   2.2 并发通信系统模型   客户/服务器模型是分布式系统最常用的体系结构,分布式信号通信系统可以基于这种结构为用户进程提供服务,用户进程向分布式信号通信系统申请信号发送服务,并通知系统信号发送的目标和信号值,系统接到请求后为用户服务,将信号发送给目标进程。   在分布式环境中,模块运行在彼此独立的进程中,

您可能关注的文档

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档