一种计算机以及信息处理方法

文档序号:6471216阅读:227来源:国知局
专利名称:一种计算机以及信息处理方法
技术领域
本发明涉及计算机领域,特别是指一种计算机以及信息处理方法。
背景技术
在计算机虚拟机技术领域中,如图1所示,虚拟机系统通常包括安装在计算机硬 件平台上的虚拟机管理器(如Xen中的Hypervisor)以及多个操作系统,其中一个操作系 统为Domain O,其余为Guest 0S,即客户操作系统,在虚拟机环境下,真实硬件设备即物理 设备通常安装在硬件平台中,该真实硬件设备能够被Domain O直接访问,但Guest OS必须 通过该Domain 0访问虚拟机管理器为该Guest OS分配的虚拟设备,从而实现Guest OS对 底层设备的通信。 图1中所示的现有Guest OS访问底层硬件设备的流程,主要包括 1) Guest OS对虚拟设备进行访问,该Guest OS的访问请求指令传输至虚拟机管理
器Hypervisor中的端口处理模块; 2)Hypervisor中的端口处理模块将端口访问信息转发到Domain 0中的虚拟设备 端口处理模块; 3)对于不需要访问虚拟硬件的指令,虚拟设备端口处理模块直接对该指令处理后 返回给Hypervisor ; 4)Hypervisor中的端口处理模块将端口访问指令的处理结果返回给GuestOS ;
5)对于需要访问虚拟硬件的指令,Domain 0中虚拟设备端口处理模块发送指令 给Domain 0中的虚拟设备驱动; 6) Domain 0中的虚拟设备驱动发送指令给虚拟硬件; 7)虚拟硬件执行指令后向Domain 0中的虚拟设备驱动返回结果; 8)Domain 0中的虚拟设备驱动将结果转发给虚拟设备端口处理模块。 发明人在实现本发明的过程中,发现现有技术中至少存在如下问题 Xen使用Domain 0来管理其它Guest OS的设备,Guest OS中对虚拟硬件设备
的访问由Hypervisor转发给Domain 0处理,Domain 0处理后向Hypervisor返回结果,
Hypervisor将结果返回Guest 0S,当Guest OS同时有多个操作指令进行处理,每一个操作
指令都需要传输给Domain 0进行处理,造成后面的操作指令等待时间较长,使Guest OS的
访问效率非常低,例如当存在磁盘操作时,音频设备操作由于阻塞出现爆音。

发明内容
本发明要解决的技术问题是提供一种计算机以及信息处理方法,使虚拟机管理器 快速向Guest OS返回非硬件设备操作指令的处理结果,縮短了 Guest OS对设备访问的等 待时间,使Guest OS能够及时处理其它设备的访问请求,提高单个Guest OS的访问效率。
为解决上述技术问题,本发明的实施例提供技术方案如下
—种计算机,包括
硬件平台,具有虚拟硬件设备; 虚拟机管理模块,位于所述硬件平台之上,安装有虚拟机管理器;
第一操作模块,位于所述硬件平台之上,安装有第一操作系统; 第二操作模块,安装有第二操作系统,所述第二操作系统安装在所述虚拟机管理 器上;所述虚拟机管理模块包括 处理模块,用于获取所述第二操作系统的操作指令,在所述操作指令是非虚拟硬 件操作指令时,直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理 结果返回给所述第二操作系统;在所述操作指令是虚拟硬件操作指令时,将所述操作指令 传输给所述第一操作系统进行处理,并将所述第一操作系统返回的处理结果返回给所述第 二操作系统。 优选的,所述处理模块包括 获取模块,用于获取所述第二操作系统的操作指令; 判断模块,用于判断所述获取模块所获取的操作指令是否是非虚拟硬件操作指 令,产生一判断结果; 第一处理模块,用于在所述判断结果为所述操作指令是非虚拟硬件操作指令时, 直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理结果返回给所 述第二操作系统; 第二处理模块,用于在所述判断结果为所述操作指令是虚拟硬件操作指令时,将
所述虚拟硬件操作指令传输给所述第一操作系统进行处理,并将所述第一操作系统返回的
处理结果返回给所述第二操作系统。 优选的,所述虚拟机管理模块还包括 共享内存,用于存储在所述第一操作模块和所述虚拟机管理模块间共享的虚拟硬 件信息; 所述第一处理模块接收到非虚拟硬件操作指令后,根据所述共享内存中的虚拟硬
件信息,直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理结果返
回给所述第二操作系统。
优选的,所述第一操作模块包括 第三处理模块,用于接收所述第二处理模块传送的所述虚拟硬件操作指令,并将 对所述虚拟硬件的操作结果返回给所述第二处理模块; 第一驱动模块,用于安装所述虚拟硬件设备的驱动,根据所述第三处理模块接收
的所述虚拟硬件操作指令,对所述虚拟硬件设备进行操作,产生一操作结果,并将所述操作
结果返回给所述第三处理模块。
优选的,所述第二操作模块包括 第二驱动模块,用于向所述虚拟机管理器发送操作指令或者接收所述虚拟机管理 器返回的处理结果。 优选的,所述第三处理模块为虚拟硬件设备端口处理模块。
—种信息处理方法,包括
获取第二操作系统的操作指令; 在所述操作指令是非虚拟硬件操作指令时,直接对所述非虚拟硬件操作指令进行
5处理,产生一处理结果,并将所述处理结果返回给所述第二操作系统; 在所述操作指令是虚拟硬件操作指令时,将所述虚拟硬件操作指令传输给所述第 一操作系统进行处理,并将所述第一操作系统返回的处理结果返回给所述第二操作系统。
优选的,所述在所述操作指令是非虚拟硬件操作指令时,直接对所述非虚拟硬件 操作指令进行处理,产生一处理结果,并将所述处理结果返回给所述第二操作系统的步骤 具体为 根据共享内存中的虚拟硬件信息,直接对所述非虚拟硬件操作指令进行处理,产 生一处理结果,并将所述处理结果返回给所述第二操作系统。 优选的,将所述虚拟硬件操作指令传输给所述第一操作系统进行处理,并将所述
第一操作系统返回的处理结果返回给所述第二操作系统的步骤包括 将所述虚拟硬件操作指令,以中断形式发送给所述第一操作系统; 接收所述第一操作系统根据所述虚拟硬件操作指令对虚拟硬件设备进行操作的
操作结果; 将所述操作结果返回给所述第二操作系统。
本发明的实施例具有以下有益效果 上述技术方案通过在虚拟机管理器中设置处理模块,对第二操作系统发出的非虚 拟硬件操作指令进行拦截,并对这些非虚拟硬件操作指令直接进行处理,将处理结果返回 至第二操作系统;将第二操作系统的虚拟硬件操作指令,通过第一操作系统,对虚拟硬件设 备进行访问处理,并将最后的处理结果返回至第二操作系统,使第二操作系统縮短了对特 定虚拟硬件设备的访问的等待时间,提高了第二操作系统的访问效率,改进了单个第二操 作系统的性能;同时,对于虚拟机管理器,减少了与第一操作系统之间的调度次数,从而提 高了整个计算机的性能。


图1为现有的基于虚拟技术的计算机的架构示意图;
图2为本发明的实施例计算机的整体架构示意图;
图3为图2所示计算机的一具体架构意示图;
图4为本发明的实施例信息处理方法的流程示意图。
具体实施例方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合 附图及具体实施例进行详细描述。 本发明的实施例针对现有技术中基于虚拟技术的计算机中,虚拟操作系统(Guest OS)的所有操作指令,包括对底层硬件设备的操作指令和不是对底层硬件设备的操作指令, 都需要传输给主操作系统(Domain 0)进行处理,这样使对底层硬件设备的操作指令等待 时间较长,Guest OS的访问效率低的问题,提供一种使Guest OS的非虚拟硬件设备操作指 令得到及时处理,且Guest OS的访问效率高的计算机及信息处理方法。
如图2所示,本发明的实施例计算机,包括 硬件平台,具有虚拟硬件设备;该硬件平台包括真实的物理硬件,其中,具有为该计算机每个操作系统虚拟出来的虚拟硬件设备,如计算机的真实物理硬盘只有一个,而对 于计算机的多个操作系统来讲,该物理硬盘可被虚拟出多个磁盘区域,每一个操作系统可 根据其权限对分配给该操作系统的磁盘区域进行操作; 虚拟机管理模块,位于所述硬件平台之上,安装有虚拟机管理器,如Xen的 Hypervisor ; 第一操作模块,位于所述硬件平台之上,安装有第一操作系统,如Domain0操作系 统; 第二操作模块,安装有第二操作系统,如Guest 0S,所述第二操作系统安装在所述 虚拟机管理器上;当然该计算机架构中,还可以有多个第二操作模块,每个第二操作模块中 可安装一 Guest OS,每一个Guest OS都安装在虚拟机管理器上;
上述虚拟机管理模块包括 处理模块,用于获取所述第二操作系统的操作指令,在所述操作指令是非虚拟硬 件操作指令时,直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理 结果返回给所述第二操作系统;在所述操作指令是虚拟硬件操作指令时,将所述操作指令 传输给所述第一操作系统进行处理,并将所述第一操作系统返回的处理结果返回给所述第 二操作系统。 该实施例中,虚拟机管理器的处理模块在收到第二操作系统的操作指令后,对于 不需要调用设备驱动的指令,即非虚拟硬件操作指令,直接处理后返回处理结果给第二操 作系统,而不是将任何指令都转发给第一操作系统进行处理,縮短了第二操作系统的特定 指令的访问等待时间,使第二操作系统及时处理排在非虚拟硬件操作指令后面的其他对底 层硬件设备的访问请求,提高了第二操作系统的访问效率,改进了单个第二操作系统的性 能;另外,由于非虚拟硬件操作指令不再转发给第一操作系统处理,虚拟机管理器减少了其 与第一操作系统之间的调度,从而提高了整个计算机的性能。 如图3所示,为上述图2所示实施例的一具体架构示意图,该实施例中,虚拟机管 理器中的处理模块具体包括 获取模块,用于获取所述第二操作系统的操作指令; 判断模块,用于判断所述获取模块所获取的操作指令是否是非虚拟硬件操作指 令,产生一判断结果; 第一处理模块,用于在所述判断结果为,所述操作指令是非虚拟硬件操作指令时, 直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理结果返回给所 述第二操作系统; 第二处理模块,用于在所述判断结果为,所述操作指令是虚拟硬件操作指令时,将 所述虚拟硬件操作指令传输给所述第一操作系统进行处理,并将所述第一操作系统返回的 处理结果返回给所述第二操作系统。
另外,该虚拟机管理器还包括 共享内存,用于存储在所述第一操作模块和所述虚拟机管理模块间共享的虚拟硬 件信息; 所述第一处理模块接收到非虚拟硬件操作指令后,根据所述共享内存中的虚拟硬 件信息,直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理结果返回给所述第二操作系统。 以硬盘为例,对该硬盘进行操作时,该非虚拟硬件操作指令可以为读取该硬盘 的属性和状态信息,或者对硬盘的属性和状态的设置,该共享内存中存储有该硬盘的属 性或者状态信息,包括如厂商信息,硬盘序列号,最大扇区数,传输模式,写缓存enalbe/ disable,预读enable/disable等,处理模块接收到该非虚拟硬件操作指令后,通过读取共 享内存中的硬盘的上述信息,就可得到处理结果,该处理模块直接将该处理结果返回给第 二操作系统,该非虚拟硬件操作指令就不会再传输给第一操作系统进行处理,减小了后面 的访问设备的等待时间,提高了效率; 以音频/视频设备为例,如果第二操作系统需要读取一光盘中的音频/视频,则需 要调用第一操作系统中的光盘驱动,对该虚拟光驱进行访问,这时,第二操作系统的指令为 虚拟硬件操作指令;而对于那些查看该音频/视频设备的属性信息以及状态信息的指令, 则为非虚拟硬件操作指令,该共享内存中存储有该音频/视频设备的相关信息,包括该音 频/视频设备的属性信息以及状态信息等;该处理模块根据该非虚拟硬件操作指令直接对 该共享内存进行读取,就可向第二操作系统返回正确的操作结果; 但是,如,第二操作系统读取光驱中的光盘中的内容时,就会向虚拟机管理器发出 一虚拟硬件操作指令,由于该共享内存中的信息满足不了该虚拟硬件操作指令的读写要 求,因为这种虚拟硬件操作指令,必须要传输到硬件平台中的硬件设备,才能返回正确的操 作结果,因此,该虚拟硬件操作指令需要传输给第一操作系统,由第一操作系统对硬件平台 中的虚拟光驱进行处理,即,读取光盘中的内容,并将最后的处理结果返回第二操作系统;
而对于第二操作系统查看该光盘相关内容属性信息的操作指令,S卩非虚拟硬件操 作指令,或者上述读取硬盘属性信息的操作指令,虚拟机管理器中的处理模块只要去共享 内存中读取,而不需要再传输给第一操作系统进行处理,这样就使排在该查看音频设备属 性信息的操作指令或者读取硬盘属性信息等非虚拟硬件操作指令后面的虚拟硬件操作指 令(如对音频/视频文件的读写操作指令),不需要等待前面的查看音频设备的操作指令处 理后,再得到响应,而是虚拟机管理器中的处理模块得知该指令是虚拟硬件操作指令,直接 将该指令传输给第一操作系统进行处理,使该虚拟硬件操作指令得到及时响应,提高了第 二操作系统的特定设备的操作指令的访问效率,改进了第二操作系统的性能;同时,非虚拟 硬件操作指令由虚拟机管理器中的处理模块直接根据共享内存中的相关信息进行处理,返 回处理结果,使虚拟机管理器减少了与第一操作系统之间的调度次数,从而提高了整机的 性能。 另外,上述实施例中的第一操作模块包括 第三处理模块,用于接收所述第二处理模块传送的所述虚拟硬件操作指令,并将 对所述虚拟硬件的操作结果返回给所述第二处理模块; 第一驱动模块,用于安装所述虚拟硬件设备的驱动,根据所述第三处理模块接收 的所述虚拟硬件操作指令,对所述虚拟硬件设备进行操作,产生一操作结果,并将所述操作 结果返回给所述第三处理模块。 该第三处理模块可以为QEMU中的虚拟设备端口处理模块;该QEMU是一套可以在 Windows操作系统中仿真出另一套操作系统的仿真软件模块。因为它可以在系统中仿真出 一颗虚拟的CPU,然后将要仿真的操作系统交给这颗虚拟CPU去处理,所以能够达到同一平台能同时执行两种操作系统的目的; 该第一驱动模块中安装的虚拟硬件设备的驱动,针对不同的虚拟硬件设备,其驱
动也有所不同,如光盘驱动或者网卡驱动等。 另外,在第二操作模块中,也可包括 第二驱动模块,用于向所述虚拟机管理器发送操作指令,包括虚拟硬件操作指令 和非虚拟硬件操作指令,或者接收所述虚拟机管理器返回的,根据虚拟硬件操作指令或者 非虚拟硬件操作指令进行操作的处理结果。 在上述的所有实施例中,第一操作系统和第二操作系统仅为描述方便所用,而不
用于限定是Domain 0操作系统或者Guest 0S,即第二操作系统也可以为Domain 0操作系
统,而第一操作系统也可以为Guest OS,但此时,第一操作系统可以为多个。 综上,本发明的实施例通过在虚拟机管理器中设置处理模块,对第二操作系统发
出的非虚拟硬件操作指令进行拦截,并对这些非虚拟硬件操作指令直接进行处理,将处理
结果返回至第二操作系统;只将第二操作系统对底层虚拟硬件设备进行访问的操作指令,
即虚拟硬件操作指令,通过主操作系统,如第一操作系统,对虚拟硬件设备进行访问处理,
并将最后的处理结果返回至第二操作系统,使排在非虚拟硬件操作指令后面的虚拟硬件操
作指令能够得到及时的处理,縮短了第二操作系统对特定虚拟硬件设备的访问的等待时
间,提高了第二操作系统的访问效率,改进了单个第二操作系统的性能,同时,对于虚拟机
管理器,减少了与第一操作系统之间的调度次数,从而提高了整个计算机的性能。 如图4所示,本发明的实施例还提供一种信息处理方法,包括 步骤S41,获取第二操作系统的操作指令; 步骤S42,在所述操作指令是非虚拟硬件操作指令时,直接对所述非虚拟硬件操作
指令进行处理,产生一处理结果,并将所述处理结果返回给所述第二操作系统; 步骤S43,在所述操作指令是虚拟硬件操作指令时,将所述虚拟硬件操作指令传输
给所述第一操作系统进行处理,并将所述第一操作系统返回的处理结果返回给所述第二操
作系统。 该方法中,获取第二操作系统的操作指令后,对于不需要调用设备驱动的指令,即 非虚拟硬件操作指令,直接处理后返回处理结果给第二操作系统,而不是将任何指令都转 发给第一操作系统进行处理,縮短了第二操作系统的特定指令的访问等待时间,使第二操 作系统及时处理排在非虚拟硬件操作指令后面的其他对底层硬件设备的访问请求,提高了 第二操作系统的访问效率,改进了单个第二操作系统的性能;另外,由于非虚拟硬件操作指 令不再转发给第一操作系统处理,虚拟机管理器减少了其与第一操作系统之间的调度,从 而提高了整个计算机的性能。
在上述的步骤S42具体为 根据保存的所述虚拟硬件信息,直接对所述非虚拟硬件操作指令进行处理,产生 一处理结果,并将所述处理结果返回给所述第二操作系统; 以硬盘为例,对该硬盘进行操作时,该非虚拟硬件操作指令可以为读取该硬盘的 属性和状态信息,或者对硬盘的属性和状态的设置,该共享内存中的信息包括硬盘的属 性或者状态信息,包括如厂商信息,硬盘序列号,最大扇区数,传输模式,写缓存enalbe/ disable,予页读enable/disable等;
9
上述步骤S43具体包括 将所述虚拟硬件操作指令,以中断形式发送给所述第一操作系统; 所述第一操作系统接收到该虚拟硬件操作指令后,将该指令传输给虚拟硬件设备
的驱动模块,该驱动模块根据所述虚拟硬件操作指令对虚拟硬件设备进行操作,产生一操
作结果, 接收该操作结果,并将该操作结果通过虚拟机管理器返回给所述第二操作系统。 综上,对第二操作系统发出的非虚拟硬件操作指令进行拦截,并根据共享内存中
的虚拟设备相关信息对这些非虚拟硬件操作指令直接进行处理,将处理结果返回至第二操
作系统;只将第二操作系统对底层虚拟硬件设备进行访问的操作指令,即虚拟硬件操作指
令,通过主操作系统,如第一操作系统,对虚拟硬件设备进行访问处理,并将最后的处理结
果返回至第二操作系统,使排在非虚拟硬件操作指令后面的虚拟硬件操作指令能够得到及
时的处理,縮短了第二操作系统对特定虚拟硬件设备的访问的等待时间,提高了第二操作
系统的访问效率,改进了单个第二操作系统的性能,同时,对于虚拟机管理器,减少了与第
一操作系统之间的调度次数,从而提高了整个计算机的处理效率和性能。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员
来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也
应视为本发明的保护范围。
10
权利要求
一种计算机,包括硬件平台,具有虚拟硬件设备;虚拟机管理模块,位于所述硬件平台之上,安装有虚拟机管理器;第一操作模块,位于所述硬件平台之上,安装有第一操作系统;第二操作模块,安装有第二操作系统,所述第二操作系统安装在所述虚拟机管理器上;其特征在于,所述虚拟机管理模块包括处理模块,用于获取所述第二操作系统的操作指令,在所述操作指令是非虚拟硬件操作指令时,直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理结果返回给所述第二操作系统;在所述操作指令是虚拟硬件操作指令时,将所述操作指令传输给所述第一操作系统进行处理,并将所述第一操作系统返回的处理结果返回给所述第二操作系统。
2. 根据权利要求1所述的计算机,其特征在于,所述处理模块包括 获取模块,用于获取所述第二操作系统的操作指令;判断模块,用于判断所述获取模块所获取的操作指令是否是非虚拟硬件操作指令,产 生一判断结果;第一处理模块,用于在所述判断结果为所述操作指令是非虚拟硬件操作指令时,直接 对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理结果返回给所述第 二操作系统;第二处理模块,用于在所述判断结果为所述操作指令是虚拟硬件操作指令时,将所述 虚拟硬件操作指令传输给所述第一操作系统进行处理,并将所述第一操作系统返回的处理 结果返回给所述第二操作系统。
3. 根据权利要求2所述的计算机,其特征在于,所述虚拟机管理模块还包括 共享内存,用于存储在所述第一操作模块和所述虚拟机管理模块间共享的虚拟硬件信息;所述第一处理模块收到非虚拟硬件操作指令后,根据所述共享内存中的虚拟硬件信 息,直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理结果返回给 所述第二操作系统。
4. 根据权利要求2所述的计算机,其特征在于,所述第一操作模块包括 第三处理模块,用于接收所述第二处理模块传送的所述虚拟硬件操作指令,并将对所述虚拟硬件的操作结果返回给所述第二处理模块;第一驱动模块,用于安装所述虚拟硬件设备的驱动,根据所述第三处理模块接收的所 述虚拟硬件操作指令,对所述虚拟硬件设备进行操作,产生一操作结果,并将所述操作结果 返回给所述第三处理模块。
5. 根据权利要求1所述的计算机,其特征在于,所述第二操作模块包括 第二驱动模块,用于向所述虚拟机管理器发送操作指令或者接收所述虚拟机管理器返回的处理结果。
6. 根据权利要求4所述的计算机,其特征在于,所述第三处理模块为虚拟硬件设备端 口处理模块。
7. —种信息处理方法,其特征在于,包括获取第二操作系统的操作指令;在所述操作指令是非虚拟硬件操作指令时,直接对所述非虚拟硬件操作指令进行处 理,产生一处理结果,并将所述处理结果返回给所述第二操作系统;在所述操作指令是虚拟硬件操作指令时,将所述虚拟硬件操作指令传输给所述第一操 作系统进行处理,并将所述第一操作系统返回的处理结果返回给所述第二操作系统。
8. 根据权利要求7所述的方法,其特征在于,所述在所述操作指令是非虚拟硬件操作 指令时,直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理结果返 回给所述第二操作系统的步骤具体为根据共享内存中的虚拟硬件信息,直接对所述非虚拟硬件操作指令进行处理,产生一 处理结果,并将所述处理结果返回给所述第二操作系统。
9. 根据权利要求7或8所述的方法,其特征在于,所述将所述虚拟硬件操作指令传输给 所述第一操作系统进行处理,并将所述第一操作系统返回的处理结果返回给所述第二操作系统的步骤包括将所述虚拟硬件操作指令,以中断形式发送给所述第一操作系统;接收所述第一操作系统根据所述虚拟硬件操作指令对虚拟硬件设备进行操作的操作 结果;将所述操作结果返回给所述第二操作系统。
全文摘要
本发明提供一种计算机及信息处理方法,其方法包括获取第二操作系统的操作指令;在所述操作指令是非虚拟硬件操作指令时,直接对所述非虚拟硬件操作指令进行处理,产生一处理结果,并将所述处理结果返回给所述第二操作系统;在所述操作指令是虚拟硬件操作指令时,将所述虚拟硬件操作指令传输给所述第一操作系统进行处理,并将所述第一操作系统返回的处理结果返回给所述第二操作系统。本发明缩短了第二操作系统对设备访问的等待时间,提高第二操作系统的访问效率和整机的处理效率。
文档编号G06F9/455GK101739284SQ20081022693
公开日2010年6月16日 申请日期2008年11月20日 优先权日2008年11月20日
发明者尹萍, 汤良 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1