进程通信方法、装置及系统制造方法及图纸

技术编号:17779515 阅读:23 留言:0更新日期:2018-04-22 07:55
本发明专利技术公开了一种进程通信方法、装置及系统,涉及信息技术领域,可以提高虚拟机中进程与宿主机中进程之间的通信效率。本发明专利技术的主要技术方案为:首先宿主机接收虚拟机发送的共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息;然后根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;最后通过所述共享内存区与所述虚拟机进行进程通信。本发明专利技术主要用于进程之间的通信。

【技术实现步骤摘要】
进程通信方法、装置及系统
本专利技术涉及信息
,尤其涉及一种进程通信方法、装置及系统。
技术介绍
随着信息技术的不断发展,虚拟机技术得到广泛应用。虚拟机(VirtualMachine)是指通过软件模拟的、具有完整硬件功能的,运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台物理计算机上模拟出一台或多台虚拟的计算机。虚拟机可以像真正的计算机那样进行工作,例如,可以安装操作系统、安装应用程序、访问网络资源等等。通常虚拟机所在的物理计算机称为宿主机(HOST),虚拟机自身称为客户机(Guest)。虚拟机中进程与宿主机中进程之间可以进行通信,从而可以实现虚拟机与宿主机之间的数据交互。目前,在虚拟化平台上,虚拟机中进程与宿主机中进程之间进行通信时,通常是通过网络传输虚拟机与宿主机之间的交互数据,然而,由于网络条件受外界干扰因素较多,无法保证网络条件一直保持良好状态,当网络条件较差时,会导致进程之间的通信效率低下。
技术实现思路
有鉴于此,本专利技术实施例提供了一种进程通信方法、装置及系统,主要目的是解决通过网络进行虚拟机中进程与宿主机中进程之间的通信,会造成进程通信效率较低的问题。为达到上述目的,本专利技术提供如下技术方案:一方面,本专利技术提供了一种进程通信方法,包括:宿主机接收虚拟机发送的共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息;根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;通过所述共享内存区与所述虚拟机进行进程通信。另一方面,本专利技术提供了另一种进程通信方法,包括:虚拟机向宿主机发送共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息,以使得所述宿主机根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;通过所述共享内存区与所述宿主机进行进程通信。又一方面,本专利技术提供了一种宿主机,包括:接收单元,用于接收虚拟机发送的共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息;创建单元,用于根据所述接收单元接收的创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;通信单元,用于通过所述创建单元创建的共享内存区与所述虚拟机进行进程通信。再一方面,本专利技术提供了一种虚拟机,包括:发送单元,用于向宿主机发送共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息,以使得所述宿主机根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;通信单元,用于通过所述共享内存区与所述宿主机进行进程通信。再一方面,本专利技术提供了一种进程通信系统,包括:宿主机和虚拟机;所述虚拟机,用于向所述宿主机发送共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息;所述宿主机,用于接收所述虚拟机发送的共享内存区的创建请求;根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;通过所述共享内存区与所述虚拟机进行进程通信。借由上述技术方案,本专利技术实施例提供的技术方案至少具有下列优点:本专利技术实施例提供的一种进程通信方法、装置及系统,首先宿主机接收虚拟机发送的共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息;然后根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;最后通过所述共享内存区与所述虚拟机进行进程通信。与目前通过网络进行虚拟机中进程与宿主机中进程之间的通信相比,本专利技术可以在不重启虚拟机、不新增虚拟设备的情况下,建立虚拟机中进程与宿主机中进程之间的内存共享区,创建得到的内存共享区的大小及数量可以灵活配置,通过内存共享区进行进程之间的通信,不会受到网络条件因素的影响,可以提高进程之间的通信效率,并且同一个虚拟机中进程可以和一个或多个宿主机中进程建立内存共享区进行通信。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例提供的共享内存区实例示意图;图2示出了本专利技术实施例提供的一种进程通信方法的流程图;图3示出了本专利技术实施例提供的另一种进程通信方法的流程图;图4示出了本专利技术实施例提供的间接页实例示意图;图5示出了本专利技术实施例提供的又一种进程通信方法的流程图;图6示出了本专利技术实施例提供的再一种进程通信方法的流程图;图7示出了本专利技术实施例提供的一种宿主机的结构示意图;图8示出了本专利技术实施例提供的另一种宿主机的结构示意图;图9示出了本专利技术实施例提供的一种虚拟机的结构示意图;图10示出了本专利技术实施例提供的另一种虚拟机的结构示意图;图11示出了本专利技术实施例提供的一种进程通信系统的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术实施例提供了一种虚拟机中进程与宿主机中进程之间创建共享内存区的机制,具体的,如图1所示,以虚拟操作系统模拟器Qemu为例进行说明。Qemu在宿主机中启动时,将虚拟机的内存后端文件映射到Qemu进程的地址空间中。宿主机中的进程根据Qemu进程的PID(ProcessIdentification,进程识别号),在Qemu用户空间中查找映射虚拟机中内存的进程线性区,通过该进程线性区确定虚拟机的内存后端文件,然后将该文件中的部分内容映射到宿主机中进程的地址空间,进而建立虚拟机中进程与宿主机中进程之间的共享内存区。基于上述机制,本专利技术实施例提供了一种进程通信方法,可以应用于宿主机,如图2所示,所述方法包括:101、宿主机接收虚拟机发送的共享内存区的创建请求。其中,所述创建请求中包含所述共享内存区对应的创建配置信息。所述创建配置信息中可以包含需要创建的共享内存区的长度、虚拟机中为进程分配的共享内存对应的每个共享内存页的物理空间地址等。102、根据创建配置信息,创建宿主机中进程与虚拟机中进程之间的共享内存区。对于本专利技术实施例,提供了一种虚拟机中进程与宿主机中进程之间创建共享内存区的机制,具体的以虚拟操作系统模拟器Qemu为例进行说明。例如,根据要创建的共享内存区的长度,在宿主机进程中分配一大块连续的线性区,并将创建配置信息中包含的虚拟机中为进程分配的共享内存对应的每个共享内存页的物理空间地址转换成对应的宿主机虚拟空间地址,然后逐页以映射共享MAP_SHARED的方式,将虚拟机中共享内存对应的内存后端文件通过预设MMAP函数映射到上述分配的一大块连续的线性区中,进而得到本地进程与虚拟机中进程之间的共享内存区。其中,预设MMAP函数可以根据实际需求进行编写配置,用本文档来自技高网...
进程通信方法、装置及系统

【技术保护点】
一种进程通信方法,其特征在于,包括:宿主机接收虚拟机发送的共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息;根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;通过所述共享内存区与所述虚拟机进行进程通信。

【技术特征摘要】
1.一种进程通信方法,其特征在于,包括:宿主机接收虚拟机发送的共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息;根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;通过所述共享内存区与所述虚拟机进行进程通信。2.根据权利要求1所述的进程通信方法,其特征在于,所述创建配置信息中包含需要创建的共享内存区的长度以及所述虚拟机中为进程分配的共享内存对应的每个共享内存页的物理空间地址。3.根据权利要求2所述的进程通信方法,其特征在于,所述根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区包括:根据所述需要创建的共享内存区的长度,在所述宿主机中进程中分配进程线性区;根据所述进程线性区和所述每个共享内存页的物理空间地址,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区。4.根据权利要求3所述的进程通信方法,其特征在于,所述虚拟机中共享内存内保存有内存后端文件,所述根据所述进程线性区和所述每个共享内存页的物理空间地址,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区包括:通过将所述每个共享内存页的物理空间地址转换为所述宿主机中虚拟空间地址,将所述内存后端文件映射到所述进程线性区中,得到所述宿主机中进程与所述虚拟机中进程之间的共享内存区。5.根据权利要求4所述的进程通信方法,其特征在于,所述通过所述共享内存区与所述虚拟机进行进程通信包括:通过所述进程线性区中映射的所述内存后端文件,进行所述宿主机中进程与所述虚拟机中进程之间的通信。6.根据权利要求4所述的进程通信方法,其特征在于,所述根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区之后,所述方法还包括:记录所述共享内存区的标识信息并发送给所述虚拟机;按照预设时间间隔检测是否触发预设删除共享内存区条件;若是,则将所述共享内存区进行删除并向所述虚拟机发送所述共享内存区的删除成功信息,以使得所述虚拟机根据所述删除成功信息,对所述共享内存对应的共享内存页的引用计数进行统计。7.根据权利要求6所述的进程通信方法,其特征在于,所述将所述共享内存区进行删除包括:通过解除所述共享内存区与所述内存后端文件之间的映射关系并将预设文件映射到所述共享内存区对应的进程线性区中,将所述共享内存区进行删除。8.根据权利要求6所述的进程通信方法,其特征在于,所述按照预设时间间隔检测是否触发预设删除共享内存区条件包括:按照预设时间间隔检测是否接收到虚拟机发送的共享内存区的删除请求,所述删除请求中包含需要删除的共享内存区的标识信息,以便删除与所述标识信息对应的共享内存区;若是,则确定触发预设删除共享内存区条件。9.根据权利要求6所述的进程通信方法,其特征在于,所述按照预设时间间隔检测是否触发预设删除共享内存区条件包括:按照预设时间间隔检测共享内存区对应的所述宿主机中进程是否终止;若是,则确定触发预设删除共享内存区条件。10.根据权利要求1所述的进程通信方法,其特征在于,若所述创建请求的数据长度大于或等于预设阈值,所述接收虚拟机发送的共享内存区的创建请求包括:接收虚拟机通过间接页发送的共享内存区的创建请求,所述间接页中保存有所述虚拟机中为进程分配的共享内存对应的每个共享内存页的物理空间地址。11.根据权利要求1所述的进程通信方法,其特征在于,所述宿主机接收虚拟机发送的共享内存区的创建请求包括:通过预设高级虚拟化管理接口AVMI接口函数,宿主机接收虚拟机发送的共享内存区的创建请求。12.一种进程通信方法,其特征在于,包括:虚拟机向宿主机发送共享内存区的创建请求,所述创建请求中包含所述共享内存区对应的创建配置信息,以使得所述宿主机根据所述创建配置信息,创建所述宿主机中进程与所述虚拟机中进程之间的共享内存区;通过所述共享内存区与所述宿主机进行进程通信。13.根据权利要求12所述的进程通信方法,其特征在于,所述创建配置信息中包含需要创建的共享内存区的长度以及所述虚拟机中为进程分配的共享内存对应的每个共享内存页的物理空间地址。14.根据权利要求12所述的进程通信方法,其特征在于,所述虚拟机向宿主机发送共享内存区的创建请求之前,所述方法还包括:为所述虚拟机中进程分配共享内存;将内存后端文件保存在所述共享内存中。15.根据权利要求14所述的进程通信方法,其特征在于,所述通过所述共享内存区与所述宿主机进行进程通信包括:通过所述宿主机分配的进程线性区中映射的所述内存后端文件,进行所述虚拟机中进程与所述宿主机中进程之间的通信。16.根据权利要求12所述的进程通信方法,其特征在于,所述虚拟机向宿主机发送共享内存区的创建请求之后,所述方法还包括:对所述共享内存对应的共享内存页的引用计数进行统计;记录所述宿主机发送的共享内存区的标识信息;当接收到共享内存区的删除指令时,向所述宿主机发送共享内存区的删除请求,所述删除请求中包含需要删除的共享内存区的标识信息,以使得所述宿主机删除与所述标识信息对应的共享内存区;当接收到所述宿主机发送的所述共享内存区的删除成功信息时,根据所述删除成功信息,对所述共享内存对应的共享内存页的引用计数进行统计。17.根据权利要求12所述的进程通信方法,其特征在于,所述虚拟机向宿主机发送共享内存区的创建请求包括:检测所述创建请求的数据长度是否大于或等于预设阈值;若是,则通过间接页向所述宿主机发送所述创建请求,所述间接页中保存有为所述虚拟机中进程分配的共享内存对应的每个共享内存页的物理空间地址。18.根据权利要求12所述的进程通信方法,其特征在于,所述虚拟机向宿主机发送共享内存区的创建请求包括:通过预设高级虚拟化管理接口AVMI接口函数,向宿主机...

【专利技术属性】
技术研发人员:何志平李雨宋卓
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1