一种虚拟存储器的驱动方法以及驱动器的制造方法

文档序号:9631364阅读:688来源:国知局
一种虚拟存储器的驱动方法以及驱动器的制造方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种虚拟存储器的驱动方法以及驱动器。
【背景技术】
[0002]虚拟机监控程序(英文全称:Virtual Machine Monitor,英文简称:VMM)又被称之为虚拟机监管程序(英文全称:Hypervisor),通过对计算机硬件资源进行虚拟化,允许在一台物理计算机上创建多个虚拟机,分别运行多个不同或相同的操作系统,各个操作系统之上独立运行各自的应用程序。
[0003]现有的VMM通常通过事件通知的方式,向虚拟机提供对物理存储器的读写服务。以Xen虚拟机监控程序为例,虚拟机的前端驱动器(英文全称:Front-end driver)将对虚拟存储器的输入/输出(英文全称:Input Output,英文简称:10)请求存入前端驱动器和后端驱动器(英文全称:Back_end driver)的共享内存,然后调用Hypercall服务通知后端驱动器,请求后端驱动器处理10请求。后端驱动器从共享内存读取10请求,通过物理存储器的原生驱动器(英文全称:Native driver)对物理存储器进行读写操作后得到10响应。后端驱动器将10响应存入共享内存,然后调用Hypercall服务通知前端驱动器从共享内存读取10响应。
[0004]从虚拟机发出10请求到接收到10响应的时间间隔,代表了虚拟机的读写速度,该时间间隔越短表示虚拟机的读写速度越快。随着物理存储器性能不断改善,物理存储器处理10请求的速度不断提高,因此虚拟机的读写速度也得到了提升。然而,在前端驱动器和后端驱动器进行数据交互的过程中,调用事件通知服务本身所耗费的时间却始终是制约虚拟机读写速度的瓶颈。

【发明内容】

[0005]本申请提供一种虚拟存储器的驱动方法以及驱动器,能够提高虚拟机的读写速度。
[0006]为达到上述目的,本申请采用如下技术方案:
[0007]第一方面,本申请提供一种虚拟存储器的驱动方法,前端驱动器与后端驱动器的共享数据环(英文全称:ring)包括第一内存共享区域和第二内存共享区域。其中,第一内存共享区域用于存储10请求,第二内存共享区域用于存储10响应。前端驱动器从虚拟机操作系统接收到10请求之后,将10请求存入第一内存共享区域的空闲位置。后端驱动器从第一内存共享区域读取10请求,将10请求发送至原生驱动器,并接收原生驱动器返回的10响应。后端驱动器确定第二内存共享区域是否有空闲位置,当确定第二内存共享区域有空闲位置时,将10响应存入第二内存共享区域的空闲位置,前端驱动器从第二内存共享区域读取10响应。
[0008]第一内存共享区域用于存储10请求,前端驱动器向第一内存共享区域存入10请求后,后端驱动器主动从第一内存共享区域读取10请求。第二内存共享区域用于存储10响应,后端驱动器向第二内存共享区域存入10响应后,前端驱动器主动从第二内存共享区域读取10响应。前端驱动器与后端驱动器之间无需经过事件通知即可完成数据交互过程,省去了调用事件通知服务所耗费的时间,由此提高了虚拟机的读写速度。
[0009]结合第一方面,在第一种实现方式中,后端驱动器循环检测第一内存共享区域的占用情况,当第一内存共享区域处于非空闲状态时,即一旦有10请求存入第一内存共享区域时,后端驱动器从第一内存共享区域读取10请求。后端驱动器通过循环检测的方式,主动读取存储于第一内存共享区域中的10请求,因而无需前端驱动器进行事件通知。
[0010]结合第一方面的第一种实现方式,在第二种实现方式中,前端驱动器循环检测第二内存共享区域的占用情况,当第二内存共享区域处于非空闲状态时,从第二内存共享区域读取10响应。前端驱动器通过循环检测的方式,主动读取存储于第二内存共享区域中的10响应,因而无需后端驱动器进行事件通知。
[0011]结合第一方面至第一方面的第二种实现方式,在第三种实现方式中,后端驱动器或者前端驱动器其中之一向对方发送第二指示消息,通过第二指示消息向对方指示第一内存共享区域和第二内存共享区域的地址范围。因此后端驱动器和前端驱动器可以通过协商的方式确定第一内存共享区域和第二内存共享区域位置以及大小。进一步的,后端驱动器和前端驱动器可以通过多次发送第二指示消息对第一内存共享区域和第二内存共享区域的地址范围进行动态配置。
[0012]第二方面,本申请提供一种前端驱动器以及后端驱动器,用于执行第一方面所提供的虚拟存储器的驱动方法。
【附图说明】
[0013]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1为基于VMM的虚拟机系统的架构不意图;
[0015]图2为本发明的实施例所提供的一种虚拟存储器的驱动方法流程图;
[0016]图3为Xen平台下虚拟域系统的架构示意图;
[0017]图4为现有技术中前端驱动器和后端驱动器之间数据交互过程的示意图;
[0018]图5为本发明的实施例中前端驱动器和后端驱动器之间数据交互过程的示意图;
[0019]图6为本发明的实施例所提供的一种后端驱动器的结构示意图;
[0020]图7为本发明的实施例所提供的另一种后端驱动器的结构示意图;
[0021]图8为本发明的实施例所提供的一种前端驱动器的结构示意图;
[0022]图9为本发明的实施例所提供的另一种前端驱动器的结构示意图。
【具体实施方式】
[0023]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024]为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
[0025]本发明的实施例提供一种虚拟存储器的驱动方法以及驱动器,应用于如图1所示的虚拟机系统中,虚拟机系统包括计算机硬件平台、VMM以及建立在VMM之上的至少一台虚拟机(英文全称:Virtual Machine,英文简称:VM)。
[0026]其中,计算机硬件平台包括处理器、存储器,还可以进一步包括输入输出设备等物理资源。
[0027]VMM为运行在计算机硬件平台上对硬件资源进行虚拟化的管理程序,通常也叫做虚拟机监管程序(英文全称:Hypervisor)。VMM通过对计算机硬件平台的资源进行虚拟化,允许在计算机硬件平台上创建至少一台虚拟机。
[0028]VMM包括原生驱动器(英文全称:Native driver)以及后端驱动器(英文全称:Back-end driver),虚拟机包括前端驱动器。
[0029]前端驱动器为虚拟机的操作系统访问虚拟机自身虚拟资源的驱动器,原生驱动器为计算机硬件资源的驱动,后端驱动器为前端驱动器提供了访问原生驱动器的接口。不同的虚拟机只能访问各自的虚拟资源,当一台虚拟机的操作系统访问该虚拟机的虚拟资源时,该虚拟机的前端驱动器通过后端驱动器请求原生驱动器访问计算机硬件资源。
[0030]VMM允许多台虚拟机通过各自的前端驱动器与后端驱动器通信,后端驱动器再请求原生驱动器访问计算机硬件资源,从而达到多台虚拟机共享计算机硬件资源的目的。
[0031]虚拟机包括操作系统以及应用程序。不同虚拟机的操作系统可以不同,也可以相同。虚拟机的操作系统通过其前端驱动器访问其虚拟存储器时,前端驱动器将10请求发送到后端驱动器,后端驱动器通过原生驱动器访问物理存储器,并向前端驱动器返回10响应。
[0032]本发明的实施例中,结合Xen平台对虚拟存储器的驱动方法以及驱动器进行说明。当然,这并不表示本发明的实施例所提供的虚拟存储器的驱动方法以及驱动器仅适用于Xen平台。本发明对具体的VMM类型不做限定。
[0033]实施例
[0034]本发明的实施例提供一种虚拟存储器的驱动方法,参照图2所示,包括以下步骤:
[0035]2
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1