[发明专利]一种访问共享内存的方法及设备有效
申请号: | 201510502435.0 | 申请日: | 2015-08-14 |
公开(公告)号: | CN105045727B | 公开(公告)日: | 2018-06-26 |
发明(设计)人: | 刘一峰 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08;G06F9/455 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 冯艳莲 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 虚拟机 访问共享内存 业务事件 中断向量 多路复用 应用程序 监听 计算机领域 触发中断 共享内存 函数返回 线程执行 业务操作 实时性 触发 线程 写入 | ||
本发明公开了一种访问共享内存的方法及设备,涉及计算机领域,用于解决访问共享内存的实时性较差以及浪费了线程资源的问题。该方法包括:第一虚拟机在该第一虚拟机中的第一PCI设备被第二PCI设备触发中断后,获取第二虚拟机在该第二PCI设备写入的第一中断向量,并控制该第一PCI设备根据该第一中断向量,触发该第一中断向量对应的第一业务事件,控制自身中的应用程序采用一个线程执行多路复用监听函数,在该应用程序获取到该多路复用监听函数返回的该第一业务事件后,对该第一虚拟机与该第二虚拟机之间的共享内存执行该第一业务事件对应的业务操作。本发明实施例用于访问共享内存。
技术领域
本发明涉及计算机领域,尤其涉及一种访问共享内存的方法及设备。
背景技术
目前,为了实现一个虚拟机对其他多个虚拟机进行统一管理,通常将一个虚拟机与其他多个虚拟机共享内存,如图1所示,计算机包括N个虚拟机以及内存,其中,第一虚拟机包括多个外设部件互连标准(英文全称:Peripheral Component Interconnect,简称: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设备根据所述第一中断向量,触发所述第一中断向量对应的第一业务事件;
所述第一虚拟机控制自身中的应用程序采用一个线程执行多路复用监听函数,所述多路复用监听函数在监听到所述第一业务事件被触发时,将所述第一业务事件返回至所述应用程序;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510502435.0/2.html,转载请声明来源钻瓜专利网。