进程间通信的分布式实现

来源 :吉林大学 | 被引量 : 0次 | 上传用户:lok119119119
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
多数大型应用系统,往往需要众多的进程协作,因此程序中都大量的涉及到某种和几种形式的IPC,也就是进程间通信(Inter-Process Communication),所以进程间通信的重要性显而易见。利用IPC进行应用程序设计是一种可以充分利用系统资源、提高程序运行效率的良好方法。近几年,随着网络和分布计算技术的高速发展,在网络,特别是分布式环境下的应用系统越来越多。而在网络和分布程序设计中,通常包括很多需要相互通信的进程,因此进程间通信的机制在程序设计中就显得更为重要。传统的UNIX系统都提供了多种通信机制。从分布式的角度出发,大致可以把这些方法划分为两类:一类是应用在同一节点上的进程间通信方法,主要有管道、FIFO、信号、消息队列和共享内存等;一类是应用在不同节点上的进程间通信方法,只有套接字(sockets)一种。现有的分布式进程间通信机制主要有PVM(并行虚拟机)和MPI(报文传递接口)。传统的UNIX进程间通信机制和现有的分布式进程间通信机制都有各自的优缺点。从分布式的角度来看,传统的UNIX进程间通信方法的主要不足是,用于不同节点上进程间通信的方法过于单一,只有套接字(socket)一种方法,而且其太复杂,使用起来不是很方便,尤其是对于分布式环境下的编程,位置透明性和访问透明性不可能得到保证。而传统的用于同一节点上的进程间通信方法,虽然应用起来很方便,但是不能用于不同节点上进程间的通信,在使用上就受到了很大的局限。而使用现有的基于分布式环境下进程间通信的机制就要学习相关知识,需要大量时间和精力,这给那些已经熟悉UNIX系统的用户带来很多不便。况且这些程序不具有通<WP=54>用性,只能在特定的环境下运行。基于如上原因,本文给出了一种用于不同节点上进程间通信的新机制的设计思想,即将传统的用于同一节点上进程间通信方法用于不同节点上的进程,也就是说,程序员可以应用传统的用于同一节点上进程间通信方法的系统调用接口来实现在不同节点上进程间的通信,而不用关心通信的进程是否在同一节点上,即在位置和访问上实现透明性。与此同时,我们可以应用新设计的分布式进程通信机制,对原有的单机UNIX系统上的并发程序作简单的改动,甚至不作任何改动,就可以实现其在分布式系统上的并行执行。这样就不用为了将单机系统上的程序移植到分布式系统上而重新编制程序(PVM和MPI均需要重新编制程序),从而大大简化了程序从单机系统到分布式系统的移植过程。新的分布式进程间通信的主要是通过一个守护进程(也称为精灵进程,deamon)实现的。在分布式环境下的每个节点上,都有一个守护进程,守护进程负责不同节点之间的通信,而对于本节点内的进程来说,与其他节点上进程的通信就转化为同本节点上守护进程之间的通信,从而可以用现有的用于同一节点上的进程间通信接口来实现在不同节点上进程间的通信。我们在全局的高度维护一个用于通信的数据结构的标识符,也可称之为关键字(Key)。这个关键字是全局唯一的,它的唯一性由守护进程来维护,即守护进程之间通过相互的协调,使得创建的用于通信的数据结构具有全局唯一的关键字(标识符),想要通信的进程通过这个唯一的标识符来访问这个数据结构,从而达到相互通信的目的。这些标识符(描述符)有不同的形式,可以是一个数值,文件名或路径名等等。分布式进程间通信在实现的机制上大都可以分为四个基本的操作:创建(打开)、写(发送)数据、读(接收)数据和控制。在用户执行相应<WP=55>的操作时,首先向本节点内的守护进程发出相应的请求,守护进程接收到相应的请求后,进行不同的处理。如果是本地的,则调用本地的进程间通信接口。如果是异地的,则向所在节点发出对应的请求。异地节点接收到请求后,分析请求信息后给出相应的结果,并将其返回给请求节点的守护进程。请求节点的守护进程在收到应答后,分析应答信息,然后将分析的结果再返回给用户进程。在这期间,如果涉及到关键字值表的操作,还应对其进行必要的维护。在本文中除了提出一种分布式进程间通信机制的设计思想,还给出了一个实例——分布式消息队列。对应地,给出了分布式消息队列的设计思想和具体实现。在实现分布式消息队列的基础上,我们将其与传统的套接字方式进行了对比。在对比的结果中,我们可以看到,分布式消息队列在性能上与套接字方式接近,而在实用性和透明性上都有很好的表现。从而达到了本文的设计目的。本文的创新点是:实现了一种新的分布式进程间通信机制。通过这种机制,传统的UNIX用户可以使用原有的单机内的进程间通信接口就可以编制分布式环境下的程序。而他们不必使用复杂的套接字方式,更不用因为要编制分布式环境下的程序,而去学习现有的分布式进程间通信机制(PVM和MPI等)。并且,应用新的分布式进程通信机制,对原有的在单机系统上运行的并发程序作简单的改动,甚至有些可以不作任何改动,就可以实现在分布式系统环境下的并行执行,从而大大简化了程序从单机系统到分布式系统的移植过程。在当今,虽然分布计算系统已经成为一个重要的研究领域,但是直到现在仍然没有一
其他文献
随着Internet的飞速发展,Web的信息量越来越大,通用搜索引擎在信息采集、存储等方面面临更大的挑战。此外,由于通用搜索引擎面向所有的用户,力争在返回结果上做到面面俱到,而
  LDAP的不断发展完善及其在分布式环境中的广泛应用促进了目录服务的发展,然而在网络中总是有一些不安全的因素存在,对于那些对安全性要求较高的应用而言,提供安全可靠的目录
本文在分析和总结当前主要视频会议技术的基础上,论述了基于IP的集中式视频会议系统的设计与实现。全文共分七章:第一章简要说明视频会议的现状、发展趋势,以及关键技术;第二
Internet的出现使计算机软件所面临的运行环境开始从静态封闭逐步走向动态开放。为了适应这样一种发展趋势,软件系统开始呈现出一种柔性、多目标、连续反应式的新的系统形态,我
  VoIP电话网关是VoIP电话系统的重要组成部分,它提供了IP网络与PSTN网络的接口,将IP技术与传统的电话网络相融合,实现IP数据包与PSTN语音数据包的实时交换。 本文进行了实
现代基于网络的商业行为规模巨大,由于产品或者实体的数量繁多,用户不可能一一去阅览,从而有可能遗漏掉很多对用户有价值的商品。推荐系统是信息过滤领域的一个子集,目的是预
  本文的研究目标是解决项目门户系统上的用户身份认证以及资源访问控制方案的设计和实施问题。研究工作分两个方面进行:首先分析和比较了各种用户身份认证技术,从国家科技基
目前,XML(Extensible Markup Language)文档已被广泛用于电子商务、B2B通信、企业信息交换/集成、信息发布等应用领域。低效的XML解析会导致过度的内存消耗和过长的处理时间,
近年来,随着计算机技术的不断发展,智能教学系统也在生活的各个方面取得了广泛的应用,可以说,智能计算机辅助教学已成为人类社会数字化教育的必然发展方向。本论文在总结以往教学
在许多应用系统中,权限管理扮演着重要的角色。权限管理通过多年的研究已经形成了较成熟的模型,并被广泛地应用于各种应用系统中。虽然在大多数的应用系统中都具有权限管理模块