CN105045727A - 一种访问共享内存的方法及设备 - Google Patents

一种访问共享内存的方法及设备 Download PDF

Info

Publication number
CN105045727A
CN105045727A CN201510502435.0A CN201510502435A CN105045727A CN 105045727 A CN105045727 A CN 105045727A CN 201510502435 A CN201510502435 A CN 201510502435A CN 105045727 A CN105045727 A CN 105045727A
Authority
CN
China
Prior art keywords
virtual machine
pci
business event
pci equipment
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510502435.0A
Other languages
English (en)
Other versions
CN105045727B (zh
Inventor
刘一峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510502435.0A priority Critical patent/CN105045727B/zh
Publication of CN105045727A publication Critical patent/CN105045727A/zh
Application granted granted Critical
Publication of CN105045727B publication Critical patent/CN105045727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种访问共享内存的方法及设备,涉及计算机领域,用于解决访问共享内存的实时性较差以及浪费了线程资源的问题。该方法包括:第一虚拟机在该第一虚拟机中的第一PCI设备被第二PCI设备触发中断后,获取第二虚拟机在该第二PCI设备写入的第一中断向量,并控制该第一PCI设备根据该第一中断向量,触发该第一中断向量对应的第一业务事件,控制自身中的应用程序采用一个线程执行多路复用监听函数,在该应用程序获取到该多路复用监听函数返回的该第一业务事件后,对该第一虚拟机与该第二虚拟机之间的共享内存执行该第一业务事件对应的业务操作。本发明实施例用于访问共享内存。

Description

一种访问共享内存的方法及设备
技术领域
本发明涉及计算机领域,尤其涉及一种访问共享内存的方法及设备。
背景技术
目前,为了实现一个虚拟机对其他多个虚拟机进行统一管理,通常将一个虚拟机与其他多个虚拟机共享内存,如图1所示,计算机包括N个虚拟机以及内存,其中,第一虚拟机包括多个外设部件互连标准(英文全称:PeripheralComponentInterconnect,简称:PCI)设备,如图1示出的PCI设备1至PCI设备N-1,第二虚拟机至第N虚拟机各包括一个PCI设备,如图1示出的PCI设备1'至PCI设备N-1',并且,PCI设备1'至PCI设备N-1'与第一虚拟机包括的PCI设备1至PCI设备N-1一一对应,相对应的两个PCI设备在内存中具有同一共享内存,如图1所示,PCI设备1与PCI设备1'均可以对第一共享内存进行数据读写,从而实现第一虚拟机与第二虚拟机之间的数据共享。
以图1举例说明,现有技术中,第二虚拟机的PCI设备1'在第一共享内存读写数据后,可以通知第一虚拟机中的PCI设备1,以便PCI设备1在状态寄存器中记录第一共享内存的数据读写情况,对于第一虚拟机中包括的多个PCI设备,该第一虚拟机可以非阻塞式查询或者阻塞式查询每个PCI设备的状态寄存器,其中,非阻塞式查询是指采用一个线程对第一虚拟机的每个PCI设备的状态寄存器进行轮询的方式,若某一PCI设备的状态寄存器表明对应的共享内存存在有效数,则该第一虚拟机可以访问该共享内存,获取该有效数据,若该PCI设备的状态寄存器表明对应的共享内存不存在有效数据,则继续使用该线程查询另一个PCI设备;阻塞式查询是指设立与每个PCI设备一一对应的线程,对每个PCI设备进行实时监控的方式。
由上可知,当采用非阻塞式查询时,第一虚拟机不能立即感知共享内存的数据写入情况,只有在轮询到某一个PCI设备时,才能知道该PCI设备对应共享内存中的数据读写情况,其实时性差,而对于阻塞式查询,第一虚拟机需要对每个PCI设备设置对应的线程,使用了过多的线程资源。
发明内容
本发明实施例提供一种读写共享内存的通知方法及设备,用于解决访问共享内存的实时性较差以及浪费了线程资源的问题。
为了达到上述目的,本发明采用如下的技术方案:
第一方面,提供一种访问共享内存的方法,包括:
第一虚拟机在所述第一虚拟机中的第一外设部件互连标准PCI设备被第二PCI设备触发中断后,获取第二虚拟机在所述第二PCI设备写入的第一中断向量;
其中,所述第一虚拟机与多个虚拟机之间分别共享内存,所述第一PCI设备是所述第一虚拟机包括的多个PCI设备中的任意一个;所述多个虚拟机中的每个虚拟机包括至少一个PCI设备,且每个虚拟机中存在PCI设备与所述第一虚拟机中的PCI设备相对应;所述第二虚拟机为所述多个虚拟机中包括与所述第一PCI设备对应的所述第二PCI设备的虚拟机;
所述第一虚拟机控制所述第一PCI设备根据所述第一中断向量,触发所述第一中断向量对应的第一业务事件;
所述第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,所述多路复用监听函数在监听到所述第一业务事件被触发时,将所述第一业务事件返回至所述应用程序;
所述第一虚拟机在所述应用程序获取到所述第一业务事件后,对所述第一虚拟机与所述第二虚拟机之间的共享内存执行所述第一业务事件对应的业务操作。
在结合第一方面的第一种可能的实现方式中,所述第一虚拟机控制所述第一PCI设备根据所述第一中断向量,触发所述第一中断向量对应的第一业务事件,包括:
所述第一虚拟机控制所述第一PCI设备将所述第一中断向量发送至所述第一虚拟机中对应所述第一PCI设备的PCI驱动实例;并
控制所述PCI驱动实例确定与所述第一中断向量对应的所述第一业务事件,并将所述第一业务事件设置为已发生状态。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述第一PCI设备被所述第二PCI设备触发中断之前,还包括:
所述第一虚拟机控制所述应用程序为不同的业务分别设置业务事件,并将设置的多个业务事件分配至所述PCI驱动实例,所述多个业务事件包括所述第一业务事件;
所述第一虚拟机控制所述PCI驱动实例为所述多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至所述第一PCI设备,所述多个中断向量包括所述第一中断向量。
结合第一方面至第一方面的第二种可能的实现方式中的任一种可能的实现方式,在第三种可能的实现方式中,所述第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,包括:
所述第一虚拟机控制自身中的应用程序采用一个线程执行所述多路复用监听函数时,若所述多路复用监听函数未监听到任一业务事件被触发,阻塞所述线程;以及
若所述多路复用监听函数监听到所述业务事件被触发,唤醒所述线程,并根据所述线程将所述业务事件返回至所述应用程序。
结合第一方面至第一方面的第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,所述多路复用监听函数是Linux系统提供的epoll函数;或者
所述多路复用监听函数是Linux系统提供的poll函数;或者
所述多路复用监听函数是Linux系统提供的select函数。
第二方面,提供一种访问共享内存的方法,包括:
第二虚拟机控制自身中的应用程序对所述第二虚拟机与第一虚拟机之间的共享内存进行业务操作;
所述第二虚拟机控制所述应用程序将所述业务操作对应的第一中断向量写入所述第二虚拟机包括的第二PCI设备;
所述第二虚拟机控制所述第二PCI设备触发所述第一虚拟机中的第一PCI设备产生中断。
第三方面提供一种计算机,所述计算机运行第一虚拟机,所述第一虚拟机包括:第一外设部件互连标准PCI设备,获取单元,控制单元,业务执行单元;
所述获取单元,用于在所述第一PCI设备被第二PCI设备触发中断后,获取第二虚拟机在所述第二PCI设备写入的第一中断向量;
其中,所述第一虚拟机与多个虚拟机之间分别共享内存,所述第一PCI设备是所述第一虚拟机包括的多个PCI设备中的任意一个;所述多个虚拟机中的每个虚拟机包括至少一个PCI设备,且每个虚拟机中存在PCI设备与所述第一虚拟机中的PCI设备相对应;所述第二虚拟机为所述多个虚拟机中包括与所述第一PCI设备对应的所述第二PCI设备的虚拟机;
所述控制单元,用于控制所述第一PCI设备根据所述第一中断向量,触发所述第一中断向量对应的第一业务事件;
控制所述第一虚拟机中的应用程序采用一个线程执行多路复用监听函数,所述多路复用监听函数在监听到所述第一业务事件被触发时,将所述第一业务事件返回至所述应用程序;
所述业务执行单元,用于在所述应用程序获取到所述第一业务事件后,对所述第一虚拟机与所述第二虚拟机之间的共享内存执行所述第一业务事件对应的业务操作。
在结合第三方面的第一种可能的实现方式中,所述控制单元具体用于,
控制所述第一PCI设备将所述第一中断向量发送至所述第一虚拟机中对应所述第一PCI设备的PCI驱动实例;并
控制所述PCI驱动实例确定与所述第一中断向量对应的所述第一业务事件,并将所述第一业务事件设置为已发生状态。
结合第三方面或者第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述控制单元还用于,控制所述应用程序为不同的业务分别设置业务事件,并将设置的多个业务事件分配至所述PCI驱动实例,所述多个业务事件包括所述第一业务事件;
控制所述PCI驱动实例为所述多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至所述第一PCI设备,所述多个中断向量包括所述第一中断向量。
结合第三方面至第三方面的第二种可能的实现方式中的任一种可能的实现方式,在第三种可能的实现方式中,所述控制单元具体用于,控制所述第一虚拟机中的应用程序采用一个线程执行所述多路复用监听函数时,若所述多路复用监听函数未监听到任一业务事件被触发,阻塞所述线程;以及
若所述多路复用监听函数监听到所述业务事件被触发,唤醒所述线程,并根据所述线程将所述业务事件返回至所述应用程序。
第四方面,提供一种计算机,所述计算机运行第二虚拟机,所述第二虚拟机包括:第二外设部件互连标准PCI设备和控制单元;
所述控制单元,用于控制所述第二虚拟机中的应用程序对所述第二虚拟机与第一虚拟机之间的共享内存进行业务操作;
控制所述应用程序将所述业务操作对应的第一中断向量写入所述第二PCI设备;
控制所述第二PCI设备触发所述第一虚拟机中的第一PCI设备产生中断。
采用上述方案,第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,由该多路复用监听函数监听该第一虚拟机中的多个PCI设备上的业务事件是否被触发,该多路复用函数在监听到任一业务事件被触发时,将该业务事件返回至应用程序,相比现有技术采用针对第一虚拟机中的每个PCI设备设立一个线程,本发明节省了线程资源,并且,由于第一虚拟机中的PCI设备是根据中断机制触发业务事件,也就是说,该第一PCI设备在被该第二PCI设备触发中断时,立即暂停当前的其他业务,并根据该第一中断向量触发该第一业务事件,同时,该多路复用监听函数在监听到该第一业务事件被触发时,立即将该第一业务事件返回至应用程序,从而无需应用程序采用线程对第一虚拟机中的每一个PCI设备进行轮询,保证了第一虚拟机获知其他虚拟机对共享内存的读写情况的实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种虚拟机之间共享内存的系统架构的示意图;
图2为本发明实施例提供的一种访问共享内存的方法的流程示意图;
图3为本发明实施例提供的另一种访问共享内存的方法的流程示意图;
图4为本发明提供的另一种虚拟机之间共享内存的系统架构的示意图;
图5为本发明实施例提供的又一种访问共享内存的方法的流程示意图;
图6为本发明实施例提供的一种计算机的结构示意图;
图7为本发明实施例提供的另一种计算机的结构示意图;
图8为本发明实施例提供的又一种计算机的结构示意图;
图9为本发明实施例提供的又一种计算机的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例提供一种访问共享内存的方法,如图2所示,该方法包括:
S201、第一虚拟机在该第一虚拟机中的第一外设部件互连标准PCI设备被第二PCI设备触发中断后,获取第二虚拟机在该第二PCI设备写入的第一中断向量。
其中,该第一虚拟机与多个虚拟机之间分别共享内存,该第一PCI设备是该第一虚拟机包括的多个PCI设备中的任意一个;该多个虚拟机中的每个虚拟机包括至少一个PCI设备,且每个虚拟机中存在PCI设备与所述第一虚拟机中的PCI设备相对应;该第二虚拟机为该多个虚拟机中包括与该第一PCI设备对应的该第二PCI设备的虚拟机。
示例地,参照图1,所述第一PCI设备可以是图1中示出的PCI设备1,所述第二PCI设备是图1中示出的PCI设备1',值得说明的是,相互对应的两个PCI设备中的数据是相同的。具体地,该第二虚拟机中的应用程序执行某一业务对图1所示的第一共享内存进行读写后,将该业务对应的第一中断向量写入该PCI设备1',该PCI设备1'触发该PCI设备1产生中断,并将该第一中断向量写入该PCI设备1。这样,该PCI设备1在被触发中断后,获取该第一中断向量。
S202、该第一虚拟机控制该第一PCI设备根据该第一中断向量,触发该第一中断向量对应的第一业务事件。
可选地,步骤S202包括:该第一虚拟机控制该第一PCI设备将该第一中断向量发送至该第一虚拟机中对应该第一PCI设备的PCI驱动实例;并控制该PCI驱动实例确定与该第一中断向量对应的该第一业务事件,并将该第一业务事件设置为已发生状态。
需要说明的是,该第一虚拟机中包括用于驱动PCI设备的PCI驱动实例,其中,PCI驱动实例与PCI设备一一对应,每个PCI驱动实例存储有中断向量与业务事件的对应关系,该业务事件可以由应用程序预先设置。
具体地,在本发明实施例的一种可能的实现方式中,该第一虚拟机在步骤S201之前,控制该应用程序为不同的业务分别设置业务事件,并将设置的多个业务事件分配至第一PCI设备对应的PCI驱动实例,该多个业务事件包括该第一业务事件,该第一虚拟机控制该PCI驱动实例为该多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至该第一PCI设备,该多个中断向量包括该第一中断向量。由于该第一PCI设备与该第二PCI设备中的数据相同,因此,该第二虚拟机中的应用程序可以在该第二PCI设备中获取到该第一虚拟机中的PCI驱动实例为业务事件配置的对应的中断向量,并建立第二虚拟机中的应用程序的业务操作与中断向量之间的对应关系。
这样,该第二虚拟机中的应用程序在对第一虚拟机与第二虚拟机之间的共享内存执行业务操作后,将该业务操作对应的中断向量写入该第二PCI设备,并控制该第二PCI设备触发该第一PCI设备产生中断,该第一PCI设备在被触发中断后,获取该第一中断向量,并将该第一中断向量发送至对应的PCI驱动实例,由该PCI驱动实例触发该第一中断向量对应的第一业务事件。
S203、该第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,该多路复用监听函数在监听到该第一业务事件被触发时,将该第一业务事件返回至该应用程序。
具体地,该多路复用监听函数可以同时监听该第一虚拟机中的所有PCI设备,在监听到任一PCI设备触发业务事件时,将该业务事件返回至应用程序。该多路复用监听函数可以是Linux系统提供的epoll函数、poll函数或者select函数。
可选地,该第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,包括:该第一虚拟机控制自身中的应用程序采用一个线程执行该多路复用监听函数时,若该多路复用监听函数未监听到任一业务事件被触发,阻塞该线程;若该多路复用监听函数监听到该业务事件被触发,唤醒该线程,并根据该线程将该业务事件返回至该应用程序。
值得说明的是,线程处于阻塞状态时,不能执行其他操作,相当于执行等待,使得该线程能够在该多路复用函数监听到业务事件被触发时,立即将该业务事件返回至应用程序,保证了业务事件返回的实时性。
S204、该第一虚拟机在该应用程序获取到该第一业务事件后,对该第一虚拟机与该第二虚拟机之间的共享内存执行该第一业务事件对应的业务操作。
这样,与该第一虚拟机共享内存的任一虚拟机在对共享内存进行读写操作后,均可以通过上述步骤S201至步骤S204通知第一虚拟机对共享内存进行相应的业务操作,示例地,如图1所示,该第二虚拟机中的应用程序预先存储有业务与中断向量的对应关系,则该第二虚拟机在第一共享内存写入心跳消息报告后,将该心跳消息报告对应的中断向量写入PCI设备1',并由该PCI设备1'触发该PCI设备1产生中断,进一步地,经过上述步骤S201至步骤S204,该第一虚拟机中的应用程序可以根据该中断向量对应的业务事件在该第一共享内存中读取该心跳消息报告,并根据该心跳消息报告确定该第二虚拟机是否正常运行,实现了共享内存的读写通知。
采用上述方案,第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,由该多路复用监听函数监听该第一虚拟机中的多个PCI设备上的业务事件是否被触发,该多路复用函数在监听到任一业务事件被触发时,将该业务事件返回至应用程序,相比现有技术采用针对第一虚拟机中的每个PCI设备设立一个线程,本发明节省了线程资源,并且,由于第一虚拟机中的PCI设备是根据中断机制触发业务事件,也就是说,该第一PCI设备在被该第二PCI设备触发中断时,立即暂停当前的其他业务,并根据该第一中断向量触发该第一业务事件,同时,该多路复用监听函数在监听到该第一业务事件被触发时,立即将该第一业务事件返回至应用程序,从而无需应用程序采用线程对第一虚拟机中的每一个PCI设备进行轮询,保证了第一虚拟机获知其他虚拟机对共享内存的读写情况的实时性。
实施例二
本发明实施例提供另一种访问共享内存的方法,如图3所示,该方法包括:
S301、第二虚拟机控制自身中的应用程序对该第二虚拟机与第一虚拟机之间的共享内存进行业务操作。
S302、该第二虚拟机控制该应用程序将该业务操作对应的第一中断向量写入该第二虚拟机包括的第二PCI设备。
其中,该第二虚拟机中的应用程序预先存储有不同业务操作对应的中断向量。
具体地,在本发明实施例的一种可能的实现方式中,该第一虚拟机可以预先控制自身的应用程序为不同的业务分别设置业务事件,并将设置的多个业务事件分配至PCI驱动实例,进一步地,该第一虚拟机控制PCI驱动实例为该多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至PCI驱动实例对应的PCI设备,这样,由于该第一虚拟机中的第一PCI设备与该第二虚拟机中的第二PCI设备中的数据相同,因此,该第二虚拟机中的应用程序可以在该第二PCI设备中获取到该第一虚拟机为该第一PCI设备分配的中断向量,并建立第二虚拟机中的应用程序的业务操作与该中断向量之间的对应关系,因此,该第二虚拟机中的应用程序在对第一虚拟机与第二虚拟机之间的共享内存执行业务操作后,可以将该业务操作对应的中断向量写入该第二PCI设备。
S303、该第二虚拟机控制该第二PCI设备触发该第一虚拟机中的第一PCI设备产生中断。
其中,该第二PCI设备触发该第一PCI设备产生的中断具体为消息中断(英文全称:MessageSignaledInterrupt,简称:MSI),MSI允许第二虚拟机向指定的内存地址写中断数据,即该第一中断向量,并以此产生相应的中断给第一PCI设备。
这样,该第一PCI设备在被触发中断后,该第一虚拟机控制该第一PCI设备获取该第一中断向量,触发该第一虚拟机中的应用程序获得该第一中断向量对应的第一业务事件,对该共享内存执行该第一业务事件对应的业务操作,其具体过程可以参照本发明实施例一中相应的描述,此处不再赘述。
采用上述方案,第二虚拟机控制第二PCI设备触发第一PCI设备产生中断后,该第一虚拟机控制该第一PCI设备获取该第一中断向量,并且由于第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,由该多路复用监听函数监听该第一虚拟机中的多个PCI设备上的业务事件是否被触发,这样,该多路复用函数在监听到任一业务事件被触发时,将该业务事件返回至应用程序,相比现有技术采用针对第一虚拟机中的每个PCI设备设立一个线程,本发明节省了线程资源,并且,由于第一虚拟机中的PCI设备是根据中断机制触发业务事件,也就是说,该第一PCI设备在被该第二PCI设备触发中断时,立即暂停当前的其他业务,并根据该第一中断向量触发该第一业务事件,同时,该多路复用监听函数在监听到该第一业务事件被触发时,立即将该第一业务事件返回至应用程序,从而无需应用程序采用线程对第一虚拟机中的每一个PCI设备进行轮询,保证了第一虚拟机获知其他虚拟机对共享内存的读写情况的实时性。
实施例三
为了使本领域技术人员能够更清楚地理解本发明提供的一种访问共享内存的方法的技术方案,下面结合图4所示的虚拟机内存共享系统,通过详细的实施例进行说明,本领域的技术人员应该理解到,图4仅示出了第一虚拟机中对应第二PCI设备的第一PCI设备,在具体实施过程中,该第一虚拟机还包括其他PCI设备,对应于其他虚拟机中的PCI设备,并且该第二虚拟机也可以包括其他PCI设备,本发明对此不做限定。本发明提供的一种访问共享内存的方法适用于该第一虚拟机与其他虚拟机共享内存的情况,如图5所示,该方法包括:
S501、第二虚拟机控制第二应用程序对该共享内存进行业务操作,并确定该业务操作对应的第一中断向量。
其中,该第二应用程序存储有不同业务操作对应的中断向量。
S502、该第二应用程序将该第一中断向量发送至第二PCI驱动实例。
S503、该第二PCI驱动实例将该第一中断向量写入第二PCI设备。
S504、该第二PCI设备触发该第一PCI设备产生中断。
S505、该第一PCI设备在被触发中断后,获取该第一中断向量。
S506、该第一PCI设备将该第一中断向量发送至第一PCI驱动实例。
S507、该第一PCI驱动实例触发该第一中断向量对应的第一业务事件。
S508、该第一应用程序执行的多路复用监听函数在监听到该第一业务事件被触发时,将该第一业务事件返回至该第一应用程序。
其中,该第一虚拟机可以控制该第一应用程序采用一个线程执行该多路复用监听函数。
示例地,该多路复用监听函数可以是Linux系统提供的epoll函数、poll函数或者select函数,下面以epoll函数为例进行说明:
该epoll函数包括epoll_create,epoll_ctl,epoll_wait三个系统调用函数,其中epoll_create用于创建一个epoll文件描述符,epoll_ctl用来添加/修改/删除需要侦听的文件描述符及其业务事件,epoll_wait用于接收发生在被侦听的描述符上的业务事件,这样,在本发明实施例中,该第一虚拟机可以控制第一应用程序为不同的业务分别设置多个业务事件,并调用epoll_ctl函数将该多个业务事件注册到epoll函数,以便epoll函数进行监听,进一步的,该第一虚拟机将该多个业务事件分配至第一虚拟机中的PCI驱动实例,其中,分配至该第一PCI驱动实例的业务事件包括该第一业务事件,进一步地,该第一虚拟机控制PCI驱动实例为分配至该PCI驱动实例的多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至对应的PCI设备,其中,分配至该第一PCI设备多个中断向量包括该第一中断向量。
S509、该第一应用程序对该共享内存执行该第一业务事件对应的业务操作。
这样,由于第一应用程序采用一个线程执行多路复用函数,该多路复用监听函数在监听到任一业务事件被触发时,将该业务事件返回至应用程序,相比现有技术采用针对第一虚拟机中的每个PCI设备设立一个线程,本发明节省了线程资源,并且,由于第一虚拟机中的PCI设备是根据中断机制触发业务事件,也就是说,该第一PCI设备在被该第二PCI设备触发中断时,立即暂停当前的其他业务,并根据该第一中断向量触发该第一业务事件,同时,该多路复用监听函数在监听到该第一业务事件被触发时,立即将该第一业务事件返回至应用程序,从而无需应用程序采用线程对第一虚拟机中的每一个PCI设备进行轮询,保证了第一虚拟机获知其他虚拟机对共享内存的读写情况的实时性。
需要说明的是,图5所示步骤只是举例说明,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例四
本发明实施例提供一种计算机,该计算机运行第一虚拟机60,用于实施本发明实施例一提供的一种访问共享内存的方法,如图6所示,该第一虚拟机60包括:第一外设部件互连标准PCI设备61,获取单元62,控制单元63,业务执行单元64。
其中,该获取单元62,用于在该第一PCI设备被第二PCI设备触发中断后,获取第二虚拟机在该第二PCI设备写入的第一中断向量。该第一虚拟机与多个虚拟机之间分别共享内存,该第一PCI设备是该第一虚拟机包括的多个PCI设备中的任意一个;所述多个虚拟机中的每个虚拟机包括至少一个PCI设备,且所述每个虚拟机中存在PCI设备与所述第一虚拟机中的PCI设备相对应;该第二虚拟机为该多个虚拟机中包括与该第一PCI设备对应的该第二PCI设备的虚拟机;
该控制单元63,用于控制该第一PCI设备根据该第一中断向量,触发该第一中断向量对应的第一业务事件,并控制该第一虚拟机中的应用程序采用一个线程执行多路复用监听函数,该多路复用监听函数在监听到该第一业务事件被触发时,将该第一业务事件返回至该应用程序。
该业务执行单元64,用于在该应用程序获取到该第一业务事件后,对该第一虚拟机与该第二虚拟机之间的共享内存执行该第一业务事件对应的业务操作。
可选地,该控制单元63具体用于,控制该第一PCI设备将该第一中断向量发送至该第一虚拟机中对应该第一PCI设备的PCI驱动实例,并控制该PCI驱动实例确定与该第一中断向量对应的该第一业务事件,并将该第一业务事件设置为已发生状态。
需要说明的是,该第一虚拟机中包括用于驱动PCI设备的PCI驱动实例,其中,PCI驱动实例与PCI设备一一对应,每个PCI驱动实例存储有中断向量与业务事件的对应关系,该业务事件可以由应用程序预先设置。
示例地,该控制单元63还用于,控制该应用程序为不同的业务分别设置业务事件,并将设置的多个业务事件分配至该PCI驱动实例,该多个业务事件包括该第一业务事件,并控制该PCI驱动实例为该多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至该第一PCI设备,该多个中断向量包括该第一中断向量。
由于该第一PCI设备与该第二PCI设备中的数据相同,因此,该第二虚拟机中的应用程序可以在该第二PCI设备中获取到该第一虚拟机中的PCI驱动实例为业务事件配置的对应的中断向量,并建立第二虚拟机中的应用程序的业务操作与中断向量之间的对应关系。这样,该第二虚拟机中的应用程序在对第一虚拟机与第二虚拟机之间的共享内存执行业务操作后,将该业务操作对应的中断向量写入该第二PCI设备,并控制该第二PCI设备触发该第一PCI设备产生中断,该第一PCI设备在被触发中断后,获取该第一中断向量,并将该第一中断向量发送至对应的PCI驱动实例,由该PCI驱动实例触发该第一中断向量对应的第一业务事件。
可选地,该控制单元63具体用于,控制该第一虚拟机中的应用程序采用一个线程执行该多路复用监听函数时,若该多路复用监听函数未监听到任一业务事件被触发,阻塞该线程;若该多路复用监听函数监听到该业务事件被触发,唤醒该线程,并根据该线程将该业务事件返回至该应用程序。
值得说明的是,线程处于阻塞状态时,不能执行其他操作,相当于执行等待,使得该线程能够在该多路复用函数监听到业务事件被触发时,立即将该业务事件返回至应用程序,保证了业务事件返回的实时性。
采用本发明实施例提供的计算机,该计算机运行的第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,由该多路复用监听函数监听该第一虚拟机中的多个PCI设备上的业务事件是否被触发,该多路复用函数在监听到任一业务事件被触发时,将该业务事件返回至应用程序,相比现有技术采用针对第一虚拟机中的每个PCI设备设立一个线程,本发明节省了线程资源,并且,由于第一虚拟机中的PCI设备是根据中断机制触发业务事件,也就是说,该第一PCI设备在被该第二PCI设备触发中断时,立即暂停当前的其他业务,并根据该第一中断向量触发该第一业务事件,同时,该多路复用监听函数在监听到该第一业务事件被触发时,立即将该第一业务事件返回至应用程序,从而无需应用程序采用线程对第一虚拟机中的每一个PCI设备进行轮询,保证了第一虚拟机获知其他虚拟机对共享内存的读写情况的实时性。
所属本领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的计算机运行的第一虚拟机的具体工作过程和描述,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施例五
本发明实施例提供一种计算机,该计算机运行第二虚拟机70,用于实施本发明实施例二提供的一种访问共享内存的方法,如图7所示,该第二虚拟机70包括:第二外设部件互连标准PCI设备71和控制单元72。
其中,该控制单元72,用于控制该第二虚拟机中的应用程序对该第二虚拟机与第一虚拟机之间的共享内存进行业务操作;控制该应用程序将该业务操作对应的第一中断向量写入该第二PCI设备;控制该第二PCI设备触发该第一虚拟机中的第一PCI设备产生中断。
其中,该第二PCI设备触发该第一PCI设备产生的中断具体为MSI,MSI允许第二虚拟机向指定的内存地址写中断数据,即该第一中断向量,并以此产生相应的中断给第一PCI设备。
示例地,该第一虚拟机可以预先控制自身的应用程序为不同的业务分别设置业务事件,并将设置的多个业务事件分配至PCI驱动实例,进一步地,该第一虚拟机控制PCI驱动实例为该多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至PCI驱动实例对应的PCI设备,这样,由于该第一虚拟机中的第一PCI设备与该第二虚拟机中的第二PCI设备中的数据相同,因此,该第二虚拟机中的应用程序可以在该第二PCI设备中获取到该第一虚拟机为该第一PCI设备分配的中断向量,并建立第二虚拟机中的应用程序的业务操作与该中断向量之间的对应关系,因此,该第二虚拟机中的应用程序在对第一虚拟机与第二虚拟机之间的共享内存执行业务操作后,可以将该业务操作对应的中断向量写入该第二PCI设备。
这样,该第一PCI设备在被触发中断后,该第一虚拟机控制该第一PCI设备获取该第一中断向量,触发该第一虚拟机中的应用程序获得该第一中断向量对应的第一业务事件,对该共享内存执行该第一业务事件对应的业务操作,其具体过程可以参照本发明实施例一中相应的描述,此处不再赘述。
采用本发明实施例提供的计算机,该计算机运行的第二虚拟机控制自身的第二PCI设备触发第一PCI设备产生中断后,该第一虚拟机控制该第一PCI设备获取该第一中断向量,并且由于第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,由该多路复用监听函数监听该第一虚拟机中的多个PCI设备上的业务事件是否被触发,这样,该多路复用函数在监听到任一业务事件被触发时,将该业务事件返回至应用程序,相比现有技术采用针对第一虚拟机中的每个PCI设备设立一个线程,本发明节省了线程资源,并且,由于第一虚拟机中的PCI设备是根据中断机制触发业务事件,也就是说,该第一PCI设备在被该第二PCI设备触发中断时,立即暂停当前的其他业务,并根据该第一中断向量触发该第一业务事件,同时,该多路复用监听函数在监听到该第一业务事件被触发时,立即将该第一业务事件返回至应用程序,从而无需应用程序采用线程对第一虚拟机中的每一个PCI设备进行轮询,保证了第一虚拟机获知其他虚拟机对共享内存的读写情况的实时性。
所属本领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的计算机运行的第二虚拟机的具体工作过程和描述,可以参考前述方法实施例中的对应过程,在此不再赘述。
实施例六
本发明实施例提供又一种计算机,如图8所示,该计算机包括:
处理器(processor)81、通信接口(CommunicationsInterface)82、存储器(memory)83和通信总线84;其中,所述处理器81、所述通信接口82和所述存储器83通过所述通信总线84完成相互间的通信。
处理器81可能是一个多核中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器83用于存放程序代码,所述程序代码包括计算机操作指令和网络流图。存储器83可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。存储器83也可以是存储器阵列。存储器83还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
所述通信接口82,用于实现这些装置之间的连接通信。
所述处理器81用于执行所述存储器83中的程序代码,以运行第一虚拟机,并实现以下操作:
在所述第一虚拟机中的第一外设部件互连标准PCI设备被第二PCI设备触发中断后,获取第二虚拟机在所述第二PCI设备写入的第一中断向量;
其中,所述第一虚拟机与多个虚拟机之间分别共享内存,所述第一PCI设备是所述第一虚拟机包括的多个PCI设备中的任意一个;所述多个虚拟机中的每个虚拟机包括至少一个PCI设备,且所述每个虚拟机中存在PCI设备与所述第一虚拟机中的PCI设备相对应;所述第二虚拟机为所述多个虚拟机中包括与所述第一PCI设备对应的所述第二PCI设备的虚拟机;
控制所述第一PCI设备根据所述第一中断向量,触发所述第一中断向量对应的第一业务事件;
控制自身中的应用程序采用一个线程执行多路复用监听函数,所述多路复用监听函数在监听到所述第一业务事件被触发时,将所述第一业务事件返回至所述应用程序;
在所述应用程序获取到所述第一业务事件后,对所述第一虚拟机与所述第二虚拟机之间的共享内存执行所述第一业务事件对应的业务操作。
可选地,所述控制所述第一PCI设备根据所述第一中断向量,触发所述第一中断向量对应的第一业务事件,包括:
控制所述第一PCI设备将所述第一中断向量发送至所述第一虚拟机中对应所述第一PCI设备的PCI驱动实例;并控制所述PCI驱动实例确定与所述第一中断向量对应的所述第一业务事件,并将所述第一业务事件设置为已发生状态。
可选地,在所述第一PCI设备被所述第二PCI设备触发中断之前,还包括:
控制所述应用程序为不同的业务分别设置业务事件,并将设置的多个业务事件分配至所述PCI驱动实例,所述多个业务事件包括所述第一业务事件;
控制所述PCI驱动实例为所述多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至所述第一PCI设备,所述多个中断向量包括所述第一中断向量。
可选地,所述控制自身中的应用程序采用一个线程执行多路复用监听函数,包括:
控制自身中的应用程序采用一个线程执行所述多路复用监听函数时,若所述多路复用监听函数未监听到任一业务事件被触发,阻塞所述线程;若所述多路复用监听函数监听到所述业务事件被触发,唤醒所述线程,并根据所述线程将所述业务事件返回至所述应用程序。
实施例七
本发明实施例提供又一种计算机,如图9所示,该计算机包括:
处理器(processor)91、通信接口(CommunicationsInterface)92、存储器(memory)93和通信总线94;其中,所述处理器91、所述通信接口92和所述存储器93通过所述通信总线94完成相互间的通信。
处理器91可能是一个多核中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器93用于存放程序代码,所述程序代码包括计算机操作指令和网络流图。存储器93可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。存储器93也可以是存储器阵列。存储器93还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
所述通信接口92,用于实现这些装置之间的连接通信。
所述处理器91用于执行所述存储器93中的程序代码,以运行第二虚拟机,并实现以下操作:
控制所述第二虚拟机中的应用程序对所述第二虚拟机与第一虚拟机之间的共享内存进行业务操作;
控制所述应用程序将所述业务操作对应的第一中断向量写入所述第二虚拟机包括的第二PCI设备;
控制所述第二PCI设备触发所述第一虚拟机中的第一PCI设备产生中断。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,简称:ROM)、随机存取存储器(英文全称:RandomAccessMemory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (11)

1.一种访问共享内存的方法,其特征在于,包括:
第一虚拟机在所述第一虚拟机中的第一外设部件互连标准PCI设备被第二PCI设备触发中断后,获取第二虚拟机在所述第二PCI设备写入的第一中断向量;
其中,所述第一虚拟机与多个虚拟机之间分别共享内存,所述第一PCI设备是所述第一虚拟机包括的多个PCI设备中的任意一个;所述多个虚拟机中的每个虚拟机包括至少一个PCI设备,且每个虚拟机中存在PCI设备与所述第一虚拟机中的PCI设备相对应;所述第一虚拟机包括的所述多个PCI设备与所述多个虚拟机包括的PCI设备一一对应;所述第二虚拟机为所述多个虚拟机中包括与所述第一PCI设备对应的所述第二PCI设备的虚拟机;
所述第一虚拟机控制所述第一PCI设备根据所述第一中断向量,触发所述第一中断向量对应的第一业务事件;
所述第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,所述多路复用监听函数在监听到所述第一业务事件被触发时,将所述第一业务事件返回至所述应用程序;
所述第一虚拟机在所述应用程序获取到所述第一业务事件后,对所述第一虚拟机与所述第二虚拟机之间的共享内存执行所述第一业务事件对应的业务操作。
2.根据权利要求1所述的方法,其特征在于,所述第一虚拟机控制所述第一PCI设备根据所述第一中断向量,触发所述第一中断向量对应的第一业务事件,包括:
所述第一虚拟机控制所述第一PCI设备将所述第一中断向量发送至所述第一虚拟机中对应所述第一PCI设备的PCI驱动实例;并
控制所述PCI驱动实例确定与所述第一中断向量对应的所述第一业务事件,并将所述第一业务事件设置为已发生状态。
3.根据权利要求2所述的方法,其特征在于,在所述第一PCI设备被所述第二PCI设备触发中断之前,还包括:
所述第一虚拟机控制所述应用程序为不同的业务分别设置业务事件,并将设置的多个业务事件分配至所述PCI驱动实例,所述多个业务事件包括所述第一业务事件;
所述第一虚拟机控制所述PCI驱动实例为所述多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至所述第一PCI设备,所述多个中断向量包括所述第一中断向量。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,包括:
所述第一虚拟机控制自身中的应用程序采用一个线程执行所述多路复用监听函数时,若所述多路复用监听函数未监听到任一业务事件被触发,阻塞所述线程;以及
若所述多路复用监听函数监听到所述业务事件被触发,唤醒所述线程,并根据所述线程将所述业务事件返回至所述应用程序。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述多路复用监听函数是Linux系统提供的epoll函数;或者
所述多路复用监听函数是Linux系统提供的poll函数;或者
所述多路复用监听函数是Linux系统提供的select函数。
6.一种访问共享内存的方法,其特征在于,包括:
第二虚拟机控制自身中的应用程序对所述第二虚拟机与第一虚拟机之间的共享内存进行业务操作;
所述第二虚拟机控制所述应用程序将所述业务操作对应的第一中断向量写入所述第二虚拟机包括的第二PCI设备;
所述第二虚拟机控制所述第二PCI设备触发所述第一虚拟机中的第一PCI设备产生中断。
7.一种计算机,其特征在于,所述计算机运行第一虚拟机,所述第一虚拟机包括:第一外设部件互连标准PCI设备,获取单元,控制单元,业务执行单元;
所述获取单元,用于在所述第一PCI设备被第二PCI设备触发中断后,获取第二虚拟机在所述第二PCI设备写入的第一中断向量;
其中,所述第一虚拟机与多个虚拟机之间分别共享内存,所述第一PCI设备是所述第一虚拟机包括的多个PCI设备中的任意一个;所述多个虚拟机中的每个虚拟机包括至少一个PCI设备,且每个虚拟机中存在PCI设备与所述第一虚拟机中的PCI设备相对应;所述第二虚拟机为所述多个虚拟机中包括与所述第一PCI设备对应的所述第二PCI设备的虚拟机;
所述控制单元,用于控制所述第一PCI设备根据所述第一中断向量,触发所述第一中断向量对应的第一业务事件;
控制所述第一虚拟机中的应用程序采用一个线程执行多路复用监听函数,所述多路复用监听函数在监听到所述第一业务事件被触发时,将所述第一业务事件返回至所述应用程序;
所述业务执行单元,用于在所述应用程序获取到所述第一业务事件后,对所述第一虚拟机与所述第二虚拟机之间的共享内存执行所述第一业务事件对应的业务操作。
8.根据权利要求7所述的计算机,其特征在于,所述控制单元具体用于,
控制所述第一PCI设备将所述第一中断向量发送至所述第一虚拟机中对应所述第一PCI设备的PCI驱动实例;并
控制所述PCI驱动实例确定与所述第一中断向量对应的所述第一业务事件,并将所述第一业务事件设置为已发生状态。
9.根据权利要求8所述的计算机,其特征在于,所述控制单元还用于,控制所述应用程序为不同的业务分别设置业务事件,并将设置的多个业务事件分配至所述PCI驱动实例,所述多个业务事件包括所述第一业务事件;
控制所述PCI驱动实例为所述多个业务事件分别设置对应的中断向量,并将设置的多个中断向量分配至所述第一PCI设备,所述多个中断向量包括所述第一中断向量。
10.根据权利要求7至9任一项所述的计算机,其特征在于,所述控制单元具体用于,控制所述第一虚拟机中的应用程序采用一个线程执行所述多路复用监听函数时,若所述多路复用监听函数未监听到任一业务事件被触发,阻塞所述线程;以及
若所述多路复用监听函数监听到所述业务事件被触发,唤醒所述线程,并根据所述线程将所述业务事件返回至所述应用程序。
11.一种计算机,其特征在于,所述计算机运行第二虚拟机,所述第二虚拟机包括:第二外设部件互连标准PCI设备和控制单元;
所述控制单元,用于控制所述第二虚拟机中的应用程序对所述第二虚拟机与第一虚拟机之间的共享内存进行业务操作;
控制所述应用程序将所述业务操作对应的第一中断向量写入所述第二PCI设备;
控制所述第二PCI设备触发所述第一虚拟机中的第一PCI设备产生中断。
CN201510502435.0A 2015-08-14 2015-08-14 一种访问共享内存的方法及设备 Active CN105045727B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510502435.0A CN105045727B (zh) 2015-08-14 2015-08-14 一种访问共享内存的方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510502435.0A CN105045727B (zh) 2015-08-14 2015-08-14 一种访问共享内存的方法及设备

Publications (2)

Publication Number Publication Date
CN105045727A true CN105045727A (zh) 2015-11-11
CN105045727B CN105045727B (zh) 2018-06-26

Family

ID=54452290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510502435.0A Active CN105045727B (zh) 2015-08-14 2015-08-14 一种访问共享内存的方法及设备

Country Status (1)

Country Link
CN (1) CN105045727B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483384A (zh) * 2016-06-08 2017-12-15 国家计算机网络与信息安全管理中心 一种网络数据交互方法及装置
CN108351802A (zh) * 2015-11-13 2018-07-31 华为技术有限公司 计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法
CN112804202A (zh) * 2020-12-30 2021-05-14 平安证券股份有限公司 多网间数据安全交互方法、装置、服务器及存储介质
CN113590254A (zh) * 2020-04-30 2021-11-02 深信服科技股份有限公司 一种虚拟机通信的方法、装置、系统和介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101575A (zh) * 2006-07-04 2008-01-09 联想(北京)有限公司 一种数据安全存储的方法及装置
CN101211323A (zh) * 2006-12-28 2008-07-02 联想(北京)有限公司 一种硬件中断的处理方法和处理装置
CN102223377A (zh) * 2011-06-25 2011-10-19 华南理工大学 一种Xen虚拟机可信域间网络连接的控制方法
CN102763098A (zh) * 2009-12-14 2012-10-31 思杰系统有限公司 用于在可信和不可信虚拟机之间通信的方法和系统
CN103984591A (zh) * 2014-05-15 2014-08-13 中国人民解放军国防科学技术大学 计算机虚拟化系统的PCI设备INTx中断投递方法
CN104426958A (zh) * 2013-08-29 2015-03-18 华为技术有限公司 一种通信方法、装置及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101101575A (zh) * 2006-07-04 2008-01-09 联想(北京)有限公司 一种数据安全存储的方法及装置
CN101211323A (zh) * 2006-12-28 2008-07-02 联想(北京)有限公司 一种硬件中断的处理方法和处理装置
CN102763098A (zh) * 2009-12-14 2012-10-31 思杰系统有限公司 用于在可信和不可信虚拟机之间通信的方法和系统
CN102223377A (zh) * 2011-06-25 2011-10-19 华南理工大学 一种Xen虚拟机可信域间网络连接的控制方法
CN104426958A (zh) * 2013-08-29 2015-03-18 华为技术有限公司 一种通信方法、装置及系统
CN103984591A (zh) * 2014-05-15 2014-08-13 中国人民解放军国防科学技术大学 计算机虚拟化系统的PCI设备INTx中断投递方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108351802A (zh) * 2015-11-13 2018-07-31 华为技术有限公司 计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法
CN108351802B (zh) * 2015-11-13 2021-07-20 华为技术有限公司 计算机数据处理系统和用于虚拟机通信的基于通信流量的优化的方法
CN107483384A (zh) * 2016-06-08 2017-12-15 国家计算机网络与信息安全管理中心 一种网络数据交互方法及装置
CN107483384B (zh) * 2016-06-08 2020-07-14 国家计算机网络与信息安全管理中心 一种网络数据交互方法及装置
CN113590254A (zh) * 2020-04-30 2021-11-02 深信服科技股份有限公司 一种虚拟机通信的方法、装置、系统和介质
CN112804202A (zh) * 2020-12-30 2021-05-14 平安证券股份有限公司 多网间数据安全交互方法、装置、服务器及存储介质
CN112804202B (zh) * 2020-12-30 2023-04-11 平安证券股份有限公司 多网间数据安全交互方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN105045727B (zh) 2018-06-26

Similar Documents

Publication Publication Date Title
US9798682B2 (en) Completion notification for a storage device
US10956148B2 (en) Concurrent I/O enclosure firmware/field-programmable gate array (FPGA) update in a multi-node environment
CN103530167A (zh) 一种虚拟机内存数据的迁移方法及相关装置和集群系统
CN105045727A (zh) 一种访问共享内存的方法及设备
US9063918B2 (en) Determining a virtual interrupt source number from a physical interrupt source number
CN113918101B (zh) 一种写数据高速缓存的方法、系统、设备和存储介质
CN103210379A (zh) 服务器系统、管理方法及设备
CN108141471B (zh) 压缩数据的方法、装置和设备
CN106502814B (zh) 一种记录pcie设备错误信息的方法及装置
CN105446657A (zh) 一种监控raid卡的方法
US20160216965A1 (en) Clearing specified blocks of main storage
CN104424122A (zh) 一种电子设备及内存划分方法
JP2020053013A (ja) 要求処理方法及び装置
CN104104705A (zh) 分布式存储系统的接入方法和设备
CN104102549A (zh) 一种实现多线程互斥操作的方法、装置和芯片
US20190156245A1 (en) Platform as a service cloud server and machine learning data processing method thereof
CN103500108A (zh) 系统内存访问方法、节点控制器和多处理器系统
US10061676B2 (en) Remotely located timing method and device for a processing unit in an information processing system
CN109002286A (zh) 基于同步编程的数据异步处理方法及装置
CN105786456B (zh) 一种实现VxWorks任务钩子函数功能的方法及装置
CN103634344A (zh) 一种单机运行多MySQL数据库实例的方法和设备
US20170034946A1 (en) Server embedded storage device
CN104123261A (zh) 一种电子设备及信息传送方法
CN113032088A (zh) 脏页记录方法、装置、电子设备及计算机可读介质
CN110968370B (zh) 一种数据处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant