虚拟机监视器、虚拟机系统及真实物理设备访问方法

文档序号:6610138阅读:179来源:国知局
专利名称:虚拟机监视器、虚拟机系统及真实物理设备访问方法
技术领域
本发明涉及虚拟技术,特别是一种虚拟机监视器、虚拟机系统及虚拟机监
视器、虚拟机系统及真实物理i殳备访问方法。
背景技术
现有的虚拟化系统中,真实物理设备的使用方式主要是VM直接访问、半 虚拟化方式和^t拟方式三种。
同时,以模拟方式来使用真实物理设备又分为VMM (Virtual Machine Monitor,虚拟机监视器)模拟方式、基于Host OS (宿主操作系统)的VMM 模拟方式和IO (输入输出)虚拟机的模拟方式。
其中,VMM模拟方式需要在虚拟机监视器中包含物理设备驱动,然而由 于真实物理设备千差万别的,因此VMM需要支持多种硬件平台,维护工作量 太大。
而基于Host OS的VMM模拟方式由于VMM运行于宿主操作系统之上, 无需包含物理设备驱动,所以维护工作量减小了,但性能较差。
为了解决上述出现的问题,出现了 IO虛拟机的模拟方式。
图1为现有技术中利用IO虚拟机的模拟方式的虚拟机系统的结构示意 图。该虚拟机系统包括
虚拟才几监纟见器(VMM);
服务操作系统(SOS);
至少一个GOS (图1中仅示出1个GOS)。
其中SOS启动时,扫描PCI总线,发现真实物理设备,通过真实物理设 备驱动模块对真实物理设备进行访问。
同时,SOS包含与GOS对应的设备模型(DM),为GOS提供一个模拟 物理设备。
GOS启动时,执行扫描操作,其扫描操作被VMM拦截,通过通信模块 转发给对应的DM, DM给该GOS注册模拟物理设备。
此后,GOS与真实物理设备的数据交互都通过模拟物理设备驱动、VMM、 DM和真实物理设备驱动模块进行。
其中,该设备模型具体包括
虚拟机监视器读写接口 ,用于与虚拟机监视器中的通信模块进行数据交
互;
物理设备读写接口 ,用于与真实物理设备驱动模块进行数据交互; 设备内部处理模拟模块,与虚拟机监视器读写接口和物理设备读写接口连 接,用于交互数据的内部处理。
上述的设置于VMM中的通信模块具体包括
设备模型读写接口 ,用于与虚拟机监视器读写接口连接进行数据交互; 客户操作系统读写接口,用于处理物理设备内部逻辑,并与客户操作系统
的模拟物理设备驱动模块连接进行数据交互。
上述的虚拟机操作系统中,设备模型在获知真实物理设备驱动模块有数据
需要传送到客户操作系统时,需要等待被SOS调度才能从真实物理设备驱动
模块获取数据;
同时在设备内部处理模拟模块处理完内部逻辑后,需要给虚拟机监视器注 射中断,而虚拟机监视器处理中断,从设备模型获取数据,需要再一次等待该 设备模型被SOS调度才能获取数据。
从上述的描述可以发现,虽然IO虚拟机的模拟方式相对于基于Host OS 的VMM模拟方式性能有所提高,但仍然需要在设备模型和VMM之间进行多 次交互,同时等待DM被调度,处理时间仍然非常长,无法满足用户需求。

发明内容
本发明的目的是提供一种虚拟机监视器、虚拟机系统及真实物理设备访问 方法,有效地减少客户操作系统访问真实物理设备的时间,提高系统性能。
为了实现上述目的,本发明提供了一种虚拟机监视器,包括第二接口模块、 设备内部处理模拟模块和通信模块,其中
所述第二接口才莫块,与真实物理设备驱动模块连接,用于实现设备内部处
理模拟模块与真实物理设备驱动模块之间的数据交互;
设备内部处理模拟模块,用于通过第二接口模块从真实物理设备驱动模块 接收输入数据,并通过通信模块从模拟物理设备驱动模块接收输出数据后,对 输入数据和输出数据进行设备的内部逻辑处理;
通信模块,与模拟物理设备驱动模块连接,用于实现设备内部处理模拟模 块与模拟物理设备驱动模块之间的数据交互。
上述的虚拟机监视器,其中,所述第二接口模块与设置于真实物理设备驱 动模块的第 一接口模块连接,实现设备内部处理模拟模块与真实物理设备驱动 模块之间的数据交互。
上述的虚拟机监视器,其中,所述设备内部处理模拟模块设置有数据緩存 区,用于緩存所述输入数据和输出数据。
为了更好的实现上述目的,本发明还提供了一种虛拟机系统,包括真实物 理设备、服务操作系统、虚拟机监视器和客户操作系统,所述虚拟机监视器包 括第二接口模块、设备内部处理模拟模块和通信模块,其中
所述第二接口模块,与真实物理设备驱动模块连接,用于实现设备内部处
理模拟模块与真实物理设备驱动模块之间的数据交互;-
设备内部处理模拟模块,用于通过第二接口模块从真实物理设备驱动模块 接收输入数据,并通过通信模块从模拟物理设备驱动模块接收输出数据后,对
输入数据和输出数据进行设备的内部逻辑处理;
通信模块,与模拟物理设备驱动模块连接,用于实现设备内部处理模拟模 块与模拟物理设备驱动模块之间的数据交互。
上述的虚拟机系统,其中,所述第二接口模块与设置于真实物理设备驱动
模块的第 一接口模块连接,实现设备内部处理模拟模块与真实物理设备驱动模
块之间的数据交互。
上述的虚拟机系统,其中,所述设备内部处理模拟模块设置有数据緩存区,
用于緩存所述输入数据和输出数据。
为了更好的实现上述目的,本发明还提供了一种虚拟机系统的真实物理设
备访问方法,包4舌
数据输入步骤,设置于虚拟机监视器的设备内部处理模拟模块通过设置于 虚拟机监视器的第二接口模块从真实物理设备驱动模块接收输入数据,对输入 数据进行设备的内部逻辑处理,并将输入数据通过设置于虛拟机监视器的通信
模块传输到模拟物理设备驱动模块;和
数据输出步骤,设置于虚拟机监视器的设备内部处理模拟模块通过设置于 虛拟机监视器的通信模块从模拟物理设备驱动模块接收输出数据后,对输出数 据进行设备的内部逻辑处理,并将输出数据通过设置于虚拟机监视器的第二接 口模块传输到真实物理设备驱动模块。
上述的方法,其中,设置于虛拟机监视器的设备内部处理模拟模块接收到 的数据緩存于数据緩存区。
上述的方法,其中,所述第二接口模块与设置于真实物理设备驱动模块的 第 一接口模块连接,实现设备内部处理模拟模块与真实物理设备驱动模块之间 的数据交互。
上述的方法,其中,所述数据输入步骤具体包括
真实物理设备驱动模块从真实物理设备获取输入数据后,通过第 一接口将
输入数据发送给虛拟一几监一见器;
设备内部处理模拟模块通过第二接口模块接收输入数据后,对输入数据进
行内部逻辑处理;
通信模块向客户操作系统注射中断;
客户操作系统进行中断处理,并发送读数据指令到通信模块; 通信模块调用设备内部处理模拟模块获取输入数据后,返回输入数据给模
拟设备驱动模块。
上述的方法,其中,所述数据输出步骤具体包括
模拟设备驱动模块接收客户操作系统的输出数据后,将输出数据发送给虚 拟机监视器;
设备内部处理模拟模块通过通信模块接收输出数据后,对输出数据进行内 部逻辑处理;
设备内部处理模拟模块将输出数据通过第二接口模块发送给真实物理设 备驱动模块;
真实物理设备驱动模块通过第 一接口模块接收输出数据后,发送给真实物 理设备。
本发明的虚拟机监视器、虚拟机系统及真实物理设备访问方法,通过在虚 拟机监视器中设置一设备内部处理模拟模块,其分别通过第二接口模块和通信
模块直接与SOS中的真实物理设备驱动模块和模拟设备驱动模块连接,相对 于现有技术中的真实物理设备访问方法具有以下优点
1、 调度时间的节省
现有技术中的设备模型需要被操作系统调度到才会进行数据处理,而整个 处理流程中,需要被多次调度,由于真实物理设备驱动模块获取数据后直接通 过第二接口模块发送给设备内部处理模拟模块,相比之下,没有调度步骤,而
该调度时间在整个流程中时间相当长。
2、 流程的减少
现有技术中的设备模型需要与虚拟机监视器之间进行多次交互才能将数 据从真实物理设备驱动模块传送到虛拟机监视器,而由于真实物理设备驱动模 块获取数据后直接通过第二接口模块发送给本发明中设置于虚拟机监视器中 设备内部处理模拟模块, 一步即可实现。
3、 内部逻辑处理时间减少
现有技术中的设备模型设置于服务操作系统,其对输入数据和输出数据的 内部逻辑处理因为时间片到、中断等原因执行会被打断,而本发明的设备内部 处理模拟模块设置于虚拟机监视器,不会被打断,执行时间缩短;
综合以上几点可以看出,利用本发明可以有效地减少客户操作系统访问真 实物理设备的时间,提高系统性能。


图1为现有技术中使用IO虛拟机模拟方式的虛拟机系统的结构示意图; 图2为本发明的虚拟机系统的结构示意图3为本发明的真实物理设备访问方法进行数据输入的流程示意图; 图4为本发明的真实物理设备访问方法进行数据输出的流程示意图。
具体实施例方式
本发明的虚拟机监视器、虚拟机系统及真实物理设备访问方法,通过在虚
拟机监^L器中设置一i殳备内部处理模拟模块,其分别通过第二接口模块和通信 模块与SOS中的真实物理设备驱动模块和模拟设备驱动模块连接,实现客户 操作系统GOS对真实物理设备的访问。
如图2所示,本发明的虚拟机监视器包括第二接口模块、设备内部处理模 拟模块和通信模块,其中
第二接口模块,与真实物理设备驱动模块连接,用于实现设备内部处理模 拟模块与真实物理设备驱动模块之间的数据交互;
设备内部处理模拟模块,用于通过第二接口模块从真实物理设备驱动模块 接收输入数据,并通过通信模块从模拟物理设备驱动模块接收输出数据后,对 数据进行设备的内部逻辑处理;
通信模块,与模拟物理设备驱动模块连接,用于实现设备内部处理模拟模 块与模拟物理设备驱动^^莫块之间的数据交互。
设备内部处理模拟模块设置有数据緩存区,用于緩存所述输入数据和输出 数据。
如图2所示,本发明的虚拟机系统包括真实物理设备、服务操作系统、 VMM和至少一个GOS,其中
SOS启动时,扫描PCI总线,发现真实物理设备,通过真实物理设备驱 动模块对真实物理设备进行访问;
GOS启动时,执行扫描操作,其扫描操作被VMM拦截,通过通信模块
转发给对应的设备内部处理模拟模块,由设备内部处理模拟模块给该GOS注 册模拟物理设备。
此后,GOS与真实物理设备的数据交互都通过模拟物理设备驱动模块、 通信模块、设备内部处理模拟模块、第二接口模块和真实物理设备驱动模块进 行。
其中,该SOS上的真实物理设备驱动模块设置有第一接口模块,通过该 第 一接口模块与虚拟机监视器进行交互。
下面对本发明的真实物理设备访问方法进行详细说明。
如图3所示,本发明的真实物理设备访问方法进行数据输入包括如下步

步骤31,真实物理设备驱动模块从真实物理设备获取输入数据; 步骤32,真实物理设备驱动模块通过第一接口将输入数据发送给虚拟机 监视器;
步骤33,设备内部处理模拟模块通过第二接口模块接收输入数据后,对 输入数据进行内部逻辑处理;
步骤34,通信模块向客户操作系统注射中断;
步骤35,客户才喿作系统进行中断处理,并发送读数据指令到通信模块; 步骤36,通信模块调用设备内部处理模拟模块获取输入数据后,返回输 入数据给模拟设备驱动模块。
如图4所示,本发明的真实物理设备访问方法进行数据输出包括如下步

步骤41,模拟设备驱动模块接收客户操作系统的输出数据;
步骤42,模拟设备驱动模块将输出数据发送给虚拟机监视器;
步骤43,设备内部处理模拟模块通过通信模块接收输出数据后,对输出
数据进行内部逻辑处理;
步骤44,设备内部处理模拟模块将输出数据通过第二接口模块发送给真
实物理设备驱动模块;
步骤45,真实物理设备驱动模块通过第一接口模块接收输出数据后,发
送给真实物理设备。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种虚拟机监视器,其特征在于,包括第二接口模块、设备内部处理模拟模块和通信模块,其中所述第二接口模块,与真实物理设备驱动模块连接,用于实现设备内部处理模拟模块与真实物理设备驱动模块之间的数据交互;设备内部处理模拟模块,用于通过第二接口模块从真实物理设备驱动模块接收输入数据,并通过通信模块从模拟物理设备驱动模块接收输出数据后,对输入数据和输出数据进行设备的内部逻辑处理;通信模块,与模拟物理设备驱动模块连接,用于实现设备内部处理模拟模块与模拟物理设备驱动模块之间的数据交互。
2. 根据权利要求1所述的虚拟机监视器,其特征在于,所述第二接口模 块与设置于真实物理设备驱动模块的第 一接口模块连接,实现设备内部处理模 拟模块与真实物理设备驱动模块之间的数据交互。
3. 根据权利要求1所述的虚拟机监视器,其特征在于,所述设备内部处 理模拟模块设置有数据緩存区,用于緩存所述输入数据和输出数据。
4. 一种虚拟机系统,包括真实物理设备、服务操作系统、虚拟机监视器 和客户操作系统,其特征在于,所述虚拟机监视器包括第二接口模块、设备内 部处理模拟模块和通信模块,其中所述第二接口模块,与真实物理设备驱动模块连接,用于实现设备内部处 理模拟模块与真实物理设备驱动模块之间的数据交互;设备内部处理模拟模块,用于通过第二接口模块从真实物理设备驱动模块 接收输入数据,并通过通信模块从模拟物理设备驱动模块接收输出数据后,对 输入数据和输出数据进行设备的内部逻辑处理;通信模块,与模拟物理设备驱动模块连接,用于实现设备内部处理模拟模 块与模拟物理设备驱动模块之间的数据交互。
5. 根据权利要求4所述的虚拟机系统,其特征在于,所述第二接口模块 与设置于真实物理设备驱动模块的第 一接口模块连接,实现设备内部处理模拟 模块与真实物理设备驱动模块之间的数据交互。
6. 根据权利要求4所述的虚拟机系统,其特征在于,所述设备内部处理 模拟模块设置有数据緩存区,用于缓存所述输入数据和输出数据。
7. —种虚拟机系统的真实物理设备访问方法,其特征在于,包括 数据输入步骤,设置于虚拟机监视器的设备内部处理模拟模块通过设置于虚拟机监视器的第二接口模块从真实物理设备驱动模块接收输入数据,对输入 数据进行设备的内部逻辑处理,并将输入数据通过设置于虚拟机监视器的通信 模块传输到模拟物理设备驱动模块;和数据输出步骤,设置于虚拟机监视器的设备内部处理模拟模块通过设置于 虚拟机监视器的通信模块从模拟物理设备驱动模块接收输出数据后,对输出数 据进行设备的内部逻辑处理,并将输出数据通过设置于虚拟机监视器的第二接 口模块传输到真实物理设备驱动模块。
8. 根据权利要求7所述的方法,其特征在于,设置于虚拟机监视器的设 备内部处理才莫拟模块接收到的数据緩存于数据緩存区。
9. 根据权利要求7所述的方法,其特征在于,所述第二接口模块与设置 于真实物理设备驱动模块的第 一接口模块连接,实现设备内部处理模拟模块与 真实物理设备驱动模块之间的数据交互。
10. 根据权利要求7所述的方法,其特征在于,所述数据输入步骤具体包括真实物理设备驱动^^莫块从真实物理设备获取输入^t据后,通过第一接口将 输入数据发送给虚拟机监视器;设备内部处理模拟^t块通过第二接口模块接收输入数据后,对输入数据进 行内部逻辑处理;通信模块向客户操作系统注射中断;客户操作系统进行中断处理,并发送读数据指令到通信模块; 通信模块调用设备内部处理模拟模块获取输入数据后,返回输入数据给模拟设备驱动模块。
11. 根据权利要求7所述的方法,其特征在于,所述数据输出步骤具体包括模拟设备驱动模块接收客户操作系统的输出数据后,将输出数据发送给虚 拟机监视器;设备内部处理模拟模块通过通信模块接收输出数据后,对输出数据进行内 部逻辑处理;设备内部处理模拟模块将输出数据通过第二接口模块发送给真实物理设 备驱动模块;真实物理设备驱动模块通过第 一接口模块接收输出数据后,发送给真实物 理设备。
全文摘要
本发明公开了一种虚拟机监视器、虚拟机系统及真实物理设备访问方法,该虚拟机监视器包括第二接口模块、设备内部处理模拟模块和通信模块,其中第二接口模块与真实物理设备驱动模块连接,用于实现设备内部处理模拟模块与真实物理设备驱动模块之间的数据交互;设备内部处理模拟模块,用于通过第二接口模块从真实物理设备驱动模块接收输入数据,并通过通信模块从模拟物理设备驱动模块接收输出数据后,对输入数据和输出数据进行设备的内部逻辑处理;通信模块与模拟物理设备驱动模块连接,用于实现设备内部处理模拟模块与模拟物理设备驱动模块之间的数据交互。本发明有效地减少了客户操作系统对真实物理设备进行访问的处理时间,提高了系统系能。
文档编号G06F9/455GK101364183SQ20071012000
公开日2009年2月11日 申请日期2007年8月6日 优先权日2007年8月6日
发明者王碧波, 军 陈 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1