The invention discloses a method and device for communication between virtual machines based on shared memory, in order to solve the virtual machine communication process physical computer in virtual machine access to shared memory, virtual machine and virtual machine monitors need to perform frequent handover to perform security checks and page authorization problem of virtual machine, improve the the efficiency of communication. The method comprises the following steps: sending VM virtual machine to determine the sharing of regional spatial memory VM receiver; the first data is written to the regional space, and add data write request to the regional space in which the data write request carries the position of the first data in the region of space identification, sender identification and VM the type of operation request; the receiving end receives second data returned by VM, second data receiving end VM access to data, and write requests according to the first data location identification, based on the type of operation the request to get first data execution after the corresponding operation.
【技术实现步骤摘要】
一种基于共享内存的虚拟机间通信方法及装置
本专利技术涉及虚拟化
,尤其涉及一种基于共享内存的虚拟机间通信方法及装置。
技术介绍
虚拟化是指通过虚拟化技术将一台物理计算机虚拟为多台逻辑计算机,即虚拟机(VirtualMachine,VM)。在一台计算机上可以同时运行多个VM,每个VM可以运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高了计算机的工作效率。虚拟机监视器(VirtualMachineMonitor,VMM)是虚拟机技术的核心,它是一层位于操作系统和计算机硬件之间的代码,它的主要任务是实现VM技术的各种底层机制,如虚拟化CPU(CentralProcessingUnit,中央处理器)、虚拟化设备、虚拟化内存和虚拟化网络等机制都是在VMM中实现的,VMM用于隔离并且管理上层运行的多个虚拟机,仲裁VM对底层硬件的访问,每个VM通过VMM来与硬件进行通信。当前计算机上的VM之间的通信方式有两种:基于CPU外总线和基于共享内存的通信方式。基于共享内存的通信方式具有通信协议简单、传输延迟低的优势,使用内存授权表(granttable)机制,来实现VM之间的内存页面传递和共享。然而,在VM的通信过程中,当VM访问共享内存时,VMM需要与VM进行频繁切换,以对VM进行安全性检查和页面授权,严重影响了通信效率。
技术实现思路
本专利技术公开了一种基于共享内存的虚拟机间通信方法及装置,用以解决物理计算机中的虚拟机通信过程中,虚拟机访问共享内存时,虚拟机监视器需要与虚拟机进行频繁切换来对虚拟机进行安全性检查和页面授权的问题,提高了 ...
【技术保护点】
一种基于共享内存的虚拟机间通信方法,其特征在于,包括:发送端虚拟机VM确定共享内存中接收端VM的区域空间;将第一数据写入所述区域空间中,并向所述区域空间中添加数据写请求,其中,所述数据写请求中携带有所述第一数据在所述区域空间中的位置标识、所述发送端VM的标识以及所述请求的操作类型;接收所述接收端VM返回的第二数据,所述第二数据为所述接收端VM获取所述数据写请求、并根据所述位置标识获取所述第一数据后,根据所述请求的操作类型对所述第一数据执行对应的操作后得到的。
【技术特征摘要】
1.一种基于共享内存的虚拟机间通信方法,其特征在于,包括:发送端虚拟机VM确定共享内存中接收端VM的区域空间;将第一数据写入所述区域空间中,并向所述区域空间中添加数据写请求,其中,所述数据写请求中携带有所述第一数据在所述区域空间中的位置标识、所述发送端VM的标识以及所述请求的操作类型;接收所述接收端VM返回的第二数据,所述第二数据为所述接收端VM获取所述数据写请求、并根据所述位置标识获取所述第一数据后,根据所述请求的操作类型对所述第一数据执行对应的操作后得到的。2.如权利要求1所述的方法,其特征在于,所述区域空间中包括接收端VM的数据交换空间以及请求队列,所述数据交换空间由若干个块Block组成,用于存储与其它VM之间的传输数据;以及将第一数据写入所述区域空间,具体包括:在所述数据交换空间中选择任意一个未被使用的Block,并将所述第一数据写入选择的Block中;以及在将第一数据写入所述区域空间中之后,向所述区域空间中添加数据写请求之前,还包括:将所述Block的标识确定为所述第一数据在所述区域空间中的位置标识。3.如权利要求1所述的方法,其特征在于,向所述区域空间中添加数据写请求之后,还包括:发送第一处理器间中断IPI给所述接收端VM;以及在发送第一IPI给所述接收端VM之后,接收所述接收端VM返回的第二数据之前,还包括:响应所述接收端VM发送的第二IPI;确定所述第二IPI的中断号表示系统间通信。4.如权利要求1或2所述的方法,其特征在于,在发送端虚拟机VM确定共享内存中接收端VM的区域空间之前,还包括:所述发送端VM和所述接收端VM分别对各自的区域空间进行下述初始化:初始化各自的数据交换空间以及请求队列,并将各自的数据交换空间以及请求队列记录到各自的区域空间中;和/或将各自的标识记录于各自的区域空间中;和/或设置各自的处理请求的回调函数,所述处理请求的回调函数用于唤醒任务处理请求;和/或设置各自的发送请求的回调函数,所述发送请求的回调函数用于唤醒任务发送请求。5.如权利要求1所述的方法,其特征在于,如果发送端VM存在多个时,每一发送端VM在确定前一个发送端VM向所述接收端VM的区域空间添加所述前一发送端VM的数据写请求成功之后,再向所述接收端VM的区域空间添加该发送端VM的数据写请求。6.一种基于共享内存的虚拟机间通信装置,其特征在于,包括:...
【专利技术属性】
技术研发人员:唐兴培,
申请(专利权)人:北京东土科技股份有限公司,北京科银京成技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。