CN101093448A - 一种虚拟机系统及其硬件设备的切换方法 - Google Patents
一种虚拟机系统及其硬件设备的切换方法 Download PDFInfo
- Publication number
- CN101093448A CN101093448A CN 200610093162 CN200610093162A CN101093448A CN 101093448 A CN101093448 A CN 101093448A CN 200610093162 CN200610093162 CN 200610093162 CN 200610093162 A CN200610093162 A CN 200610093162A CN 101093448 A CN101093448 A CN 101093448A
- Authority
- CN
- China
- Prior art keywords
- operating system
- client operating
- hardware
- equipment
- switching
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种虚拟机系统及其硬件设备的切换方法。在该虚拟机系统中,硬件设备按使用方式可以划分为时时共享设备,分时切换设备,时时独占设备,其中,对分时切换设备采用硬件设备的切换方法,包括步骤:在系统切换时,将相应的切换信号发给前台客户操作系统对应的设备模型模块和后台客户操作系统的设备模型模块;前台客户操作系统对应的设备模型模块在自身的设备空间中释放硬件设备;后台客户操作系统对应的设备模型模块将前台客户操作系统对应的设备模型模块释放的硬件设备加入自己的设备空间。通过本发明的系统和方法,可以实现硬件设备在不同客户操作系统之间的切换。
Description
技术领域
本发明涉及一种虚拟机技术,特别是涉及一种虚拟机系统及其硬件设备的切换方法。
背景技术
在现有的虚拟化过程中,都有一个通用的虚拟设备平台,包括虚拟声卡、虚拟显卡等,由虚拟机监视器(Virtual Machine Monitor,VMM)将客户操作系统(Guest OS)对虚拟设备平台中的虚拟设备的访问通过服务操作系统(Service OS)或者主机操作系统(Host OS)访问到真实的硬件上。
图1为现有的Xen虚拟机系统的示意图。如图1所示,Xen虚拟机系统包括客户操作系统、服务操作系统、虚拟机监视器以及硬件。其中,客户操作系统中提供有应用以及驱动模块,服务操作系统具有设备模型模块(DeviceModel,DM)、以及驱动模块。
以下将参照图2说明在上述Xen虚拟机系统中客户操作系统对硬件的访问过程。
在客户操作系统进行硬件访问之前,首先,服务操作系统在启动时,扫描PCI总线,为硬件分配资源,包括IRQ、IO和MMIO等,当创建客户操作系统时通过设备模型模块为客户操作系统生成虚拟硬件平台;
客户操作系统在启动时,扫描虚拟PCI总线,为虚拟硬件分配资源。在客户操作系统为虚拟硬件分配资源之后,可以对设备IO进行访问。
下面具体描述客户操作系统进行设备IO访问时的过程:
客户操作系统在需要访问硬件IO空间时,通过虚拟硬件驱动模块发出相应的IO请求;
虚拟机监视器截获客户操作系统的驱动模块发出的IO请求,并将IO请求发送给服务操作系统中的设备模型模块;
设备模型模块分析IO请求后将其转换成相应的调用指令,由服务操作系统的驱动模块将调用指令转换成IO指令后调用相应的硬件;
在获得硬件响应后,服务操作系统将该响应通过虚拟机监视器传给客户操作系统,从而完成客户操作系统对硬件的访问。
以上只是以Xen虚拟机系统为例说明客户操作系统对硬件设备的访问过程,对于其他虚拟机系统,如VMware虚拟机系统,也执行类似的访问过程,只是将Xen虚拟机系统的服务操作系统所做的工作由主机操作系统完成。
由于现有虚拟机系统无法解决多个客户操作系统对真实硬件的共享问题,因此,在上述通用的虚拟化平台中,不论真实的硬件平台是什么,虚拟化出来的设备都一致,虽然这样对于各种客户操作系统都适用,但会出现以下问题:
1)虚拟机系统显示的硬件设备与真实的硬件设备不一致,用户无法看到真实的硬件;
2)此外,真实硬件的一些特性无法使用,如显卡的硬件加速特性,USB的新标准、声卡的高级特性等;
3)由于客户操作系统需要通过虚拟机监视器、以及服务操作系统后才能访问到硬件,因此增加了相应的中间过程,这样将影响到硬件访问的性能;
4)由于没有针对硬件特性提供相应的管理和控制,因此,没有充分发挥真实硬件的特性。
发明内容
本发明的目的是,提供一种虚拟机系统。
本发明的另一目的是,提供一种虚拟机系统中硬件设备的切换方法。
根据本发明第一方面,本发明的虚拟机系统,包括服务操作系统、客户操作系统、虚拟机监视器以及硬件,服务操作系统包括与各客户操作系统分别对应的设备模型模块,其特征在于,虚拟机监视器进一步包括资源转换模块、切换判断模块、以及访问控制模块。
其中,所述资源转换模块用于存储服务操作系统为硬件设备分配的资源、客户操作系统对服务操作系统为其提供的需要直接访问的硬件设备分配的资源二者之间的转换关系,并在客户操作系统对需要直接访问的硬件发出访问硬件设备的请求时,根据上述转换关系将客户操作系统的访问地址转化成对应硬件设备的真实物理地址。所述切换判断模块用于判断按键是否为切换组合键,如果是切换组合键,则通知访问控制模块,由访问控制模块按顺序通知前台客户操作系统的设备模型模块在自身的设备空间中释放需要切换的硬件设备,并由前台客户操作系统的设备模型模块通知访问控制模块去掉资源转换模块中相应的资源转换关系;以及,通知后台客户操作系统的设备模型模块在自身的设备空间中加入需要切换的硬件设备,并由后台客户操作系统的设备模型模块通知访问控制模块在资源转换模块中添加相应的资源转换关系。
根据本发明的另一方面,本发明的虚拟机系统,包括服务操作系统、客户操作系统、虚拟机监视器以及硬件,服务操作系统包括与各客户操作系统分别对应的设备模型模块,其特征在于,虚拟机监视器进一步包括资源转换模块以及访问控制模块,服务操作系统进一步包括切换服务模块。
其中,所述资源转换模块用于存储服务操作系统为硬件设备分配的资源、客户操作系统对服务操作系统为其提供的需要直接访问的硬件设备分配的资源二者之间的转换关系,并在客户操作系统对需要直接访问的硬件发出访问硬件设备的请求时,根据上述转换关系将客户操作系统的访问地址转化成对应硬件设备的真实物理地址。所述切换服务模块,提供设备切换的用户接口,用于在设备切换时,按顺序通知前台客户操作系统的设备模型模块在自身的设备空间中释放硬件设备,并由前台客户操作系统的设备模型模块通知访问控制模块去掉资源转换模块中相应的资源转换关系;以及,通知后台客户操作系统的设备模型模块在自身的设备空间中加入硬件设备,并由后台客户操作系统的设备模型模块通知访问控制模块在资源转换模块中添加相应的资源转换关系。
本发明的虚拟机系统中硬件设备的切换方法,包括步骤:
在系统或设备切换时,将相应的切换信号按顺序发给前台客户操作系统对应的设备模型模块和后台客户操作系统的设备模型模块;
前台客户操作系统对应的设备模型模块在自身的设备空间中释放硬件设备;
后台客户操作系统对应的设备模型模块将前台客户操作系统对应的设备模型模块释放的硬件设备加入自己的设备空间。
上述硬件设备为分时切换设备,包括键盘、和/或鼠标、和/或处于全屏显示模式的显卡、和/或声卡、和/或USB设备等。
与现有技术相比,本发明的有益效果是:
1)根据硬件设备使用的习惯或规定,设置设备在虚拟机系统间不同的共享模式,根据不同的共享模式,提供虚拟机系统访问硬件的不同方法。共享模式可以分为:时时共享,分时切换,时时独占等。这样最大限度地提高了虚拟系统访问硬件的性能;
2)虚拟机系统显示的硬件设备与设备的共享模式有关。对于独占设备可以显示真实的硬件设备;对于分时切换设备,当该虚拟系统拥有该设备时,可以看到真实的硬件设备,当该设备从该虚拟系统切走时,该虚拟系统没有该设备,也不能显示该设备,实现设备在不同客户操作系统之间的切换;对于时时共享设备,虚拟系统看到的是模拟的设备类型,这种方式与现有方式一致;
3)由于客户操作系统对分时切换设备或时时独占设备可以直接或者通过虚拟机监视器访问到真实硬件,这样提高了虚拟机系统硬件访问的效率。
附图说明
图1为现有的Xen虚拟机系统的示意图;
图2为图1所示的虚拟机系统中客户操作系统访问硬件设备的流程图;
图3为本发明的虚拟机系统的结构示意图;
图4为本发明虚拟机系统资源分配的流程图;
图5为本发明虚拟机系统中硬件设备访问方法的流程图;
图6为本发明虚拟机系统中硬件设备的切换方法的流程图。
具体实施方式
以下结合附图说明本发明的虚拟机系统及其硬件设备的切换方法。
在本发明的应用中,按照硬件使用的习惯或人为规定,将硬件的使用方式分为以下几种:
1)分时切换设备,例如,键盘、鼠标、显卡(全屏显示模式)、声卡、USB设备等,这些设备在同一时刻只能由一个客户操作系统获得独占使用权,但是在切换客户操作系统时,标准输入输出设备(键盘、鼠标、全屏显示模式的显卡)的使用权应当自动切换到前台系统,而声卡、USB设备等可以通过手工切换的方式由用户决定获得其使用权的客户操作系统;
2)时时共享设备,例如,硬盘、网络设备等,这些设备在虚拟机系统中运行时,通常可以由两个或两个以上的客户操作系统同时访问,如果采用切换方式会严重影响虚拟机系统的运行;
3)时时独占设备,例如PCI设备,其可以由用户指定给一个客户操作系统运行,任何时候其他的客户操作系统均无权对该设备进行访问,除非重新对虚拟机系统进行配置。在实际的应用中,声卡、USB设备等也可以根据用户的需要设置为时时独占设备,由指定的客户操作系统访问。
为了充分发挥真实硬件的性能,本发明中针对上述硬件使用模式和硬件特性提出一种虚拟机系统以及分时切换设备的分时切换方法。
图3为本发明的虚拟机系统的结构示意图。如图3所示,本发明的虚拟机系统包括服务操作系统、客户操作系统、虚拟机监视器以及硬件设备。其中,服务操作系统包括设备模型模块、驱动模块,设备模型模块分别和客户操作系统对应,即,客户操作系统1对应的设备模型模块为设备模型模块1,客户操作系统2对应的设备模型模块为设备模型模块2。
客户操作系统包括扫描模块和驱动模块,在本发明中,可以具有多个客户操作系统,图3上仅示意性的给出了两个客户操作系统,其中,客户操作系统1中的驱动模块包括时时共享设备驱动模块、分时切换设备驱动模块,以及时时独占设备1的驱动模块,客户操作系统2中包括时时共享设备驱动模块、分时切换设备驱动模块、以及时时独占设备2的驱动模块。
为了能够实现客户操作系统直接访问硬件,虚拟机监视器包括资源转换模块,用以执行IRQ转换、IO转换或MMIO映射的操作。在本发明中,虚拟机监视器中进一步包括切换判断模块和访问控制模块,用于实现分时切换设备的切换,包括将标准输入输出设备(键盘、鼠标、处于全屏显示模式的显卡)自动切换到处于前台的客户操作系统,以及,将声卡、USB设备等通过手工切换的方式进行切换。
在本发明中,为了解决系统内存与硬件作DMA(Direct Memory Access,直接存储器访问)操作的问题,将原来运行在低端内存的虚拟机监视器的地址从低端内存移到高端内存,即,使客户操作系统的物理内存地址与机器的内存地址一致。
在客户操作系统访问硬件之前,需要服务操作系统和客户操作系统对硬件的IRQ、IO以及MMIO等资源进行分配,图4为本发明虚拟机系统资源分配的流程图。
如图4所示,服务操作系统在启动时,扫描PCI总线,为硬件设备分配IRQ、IO和MMIO等资源,将分配的IRQ、IO、MMIO等写入各硬件设备的PCI配置空间。上述的硬件设备是指本发明中所提到的时时共享设备、分时切换设备以及时时独占设备,服务操作系统在分配资源时,分别为这些设备分配相应的资源,并将分配的资源写入这些设备对应的PCI配置空间。
对于时时独占设备和分时独占设备,设备模型模块根据配置文件的设置为客户操作系统提供硬件设备,从服务操作系统获得硬件设备的真实信息,并把这些设备挂到虚拟的PCI总线上,在客户操作系统启动后扫描虚拟PCI总线时,将硬件设备的真实信息通知客户操作系统,让客户操作系统看到真实的硬件设备。对于时时共享设备,设备模型模块提供虚拟的设备,与真实的硬件设备无关。
客户操作系统在扫描虚拟PCI总线时,对服务操作系统为其提供的硬件设备分配IRQ、IO、MMIO等资源。
由于每个客户操作系统都需要直接访问分时切换设备和时时独占设备,每个客户操作系统又都会对服务操作系统提供的硬件设备中的分时切换设备和/或独占设备分配IRQ、IO、MMIO等资源,服务操作系统对所有的硬件设备分配IRQ、IO、MMIO等资源,这样,当客户操作系统和服务操作系统对同一硬件设备进行资源分配时,可能会产生冲突。
在本发明中,由于对于时时共享设备,采用现有方式进行资源分配和访问,因此,不存在资源分配冲突的问题。而对于分时切换设备和/或时时独占设备,则客户操作系统的资源分配和服务操作系统的资源分配可能会产生冲突。
在存在冲突的情况下,为了防止冲突,在本发明中,在客户操作系统扫描虚拟PCI总线为硬件设备(分时切换设备和/或独占设备)分配IRQ、IO、MMIO资源时,设备模型模块通过虚拟机监视器截获分配信息,对客户操作系统的资源分配进行解析,将客户操作系统和服务操作系统对硬件设备的资源分配建立映射关系,也就是,将客户操作系统对硬件设备的资源分配与服务操作系统对硬件设备的资源分配之间建立对应关系。
然后,设备模型模块将建立的映射关系下发到虚拟机监视器中的资源转换模块,即,设备模型模块将客户操作系统分配的IO和IRQ的转换关系、和/或MMIO映射关系分别下发到虚拟机监视器的资源转换模块。
以下参照图5说明本发明虚拟机系统中硬件设备访问方法,为了充分发挥各种硬件设备的使用特性,在本发明中对时时共享设备采用现有的虚拟机系统的硬件访问方式进行访问,因此,下面仅针对客户操作系统对分时切换设备和对时时独占设备的访问进行说明。
当客户操作系统需要访问时时独占设备或者分时切换设备时,其独占设备驱动模块或者分时切换设备驱动模块产生相应的IO请求;
虚拟机监视器截获该IO请求,并将IO请求通过资源转换模块将客户操作系统的IO地址(访问地址)转化成对应时时独占设备或者分时切换设备的真实IO地址(真实的物理地址)后,直接访问时时独占设备或者分时切换设备;
在虚拟机监视器访问时时独占设备或者分时切换设备后,将访问结果转给客户操作系统。
另外,当客户操作系统访问独占设备或者分时切换设备时,也可以通过资源转换模块将客户操作系统分配的MMIO映射到物理MMIO(服务操作系统分配的MMIO地址)。当发生页表错误(Page Fault)时,虚拟机监视器将MMIO对应的真实地址写入影子页表(Shadow Page Tables)。这样客户服务系统通过VMM建立的影子页表可以直接访问到时时独占设备或者分时切换设备的MMIO地址。
当时时独占设备或者分时切换设备产生中断时,虚拟机监视器通过资源转换模块根据转换关系将时时独占设备或者分时切换设备产生的中断转化成客户操作系统的中断号再发给客户操作系统。
这样,通过设备模型模块和虚拟机监视器,客户操作系统可以直接访问到真实的独占设备或者分时切换设备。
虽然从上述过程可以看出,独占设备和分时切换设备的访问是相同的,但是由于独占设备是由系统配置时预先分配的,不管客户操作系统是否处于前台,对分配给它的独占设备的访问不会因此而改变。而对于分时切换设备,由于不为某个特定的客户操作系统时时独占,因此,客户操作系统需要通过切换来获取对分时切换设备的使用权,只有当分时切换设备的使用权在某一时刻属于某个客户操作系统时,该客户操作系统才能在该时刻对该分时切换设备进行访问。
因此,对于分时切换设备,需要考虑其在不同客户操作系统之间的切换。为了实现分时切换设备在不同客户操作系统之间的切换,如图3所示,在本发明的虚拟机操作系统中,可以通过在键盘上预先设置的切换组合键(包括系统切换组合键和设备切换键)来进行触发切换流程,也可以通过在服务操作系统中设置相应的用户接口(切换服务模块)来触发切换流程,具体切换流程如图6所示:
当按下键盘键时,产生键盘中断(步骤100),切换判断模块在接收到键盘中断,判断该键盘中断是否是按下系统/设备切换组合键产生的键盘中断(步骤110),如果不是,通过资源转换模块将键盘中断发给相应的客户操作系统,按正常的键盘处理流程(步骤120)。
当该键盘中断是按下系统/设备切换组合键产生的键盘中断时,切换判断模块将切换信息发给访问控制模块,访问控制模块按顺序发切换信息给前台客户操作系统(假设为客户操作系统1)对应的设备模型模块1和后台客户操作系统(假设为客户操作系统2)的设备模型模块2(步骤130)。此时,设备模型模块1将分时切换设备,例如键盘、鼠标、以及显卡等释放,即在自己的设备空间中去掉这些设备,同时通知访问控制模块将资源转换模块中相应的资源转换关系去掉(步骤140)。
接着,客户操作系统2的设备模型模块2将设备模型模块1释放的分时切换设备,例如键盘、鼠标、以及显卡等加入自己的设备空间,并且同时通知访问控制模块在资源转换模块添加相应的资源转换关系(步骤150)。这样,可以在系统切换时,实现分时切换设备的切换。以上只是以键盘、鼠标以及显卡为例说明分时切换设备的切换,同样适用于声卡、USB等分时切换设备。
进一步,对于声卡、USB等分时切换设备,除了上述键盘切换外,还可以由服务操作系统提供的切换服务模块(用户接口)来执行切换。
当用户需要将声卡、USB等分时切换设备从一个客户操作系统切换至另一客户操作系统,假设从客户操作系统1切换至客户操作系统2时,访问服务操作系统中的切换服务模块,该切换服务模块通知与客户操作系统1对应的设备模型模块1将分时切换设备从PCI总线空间去掉,然后,设备模型模块1通知切换访问控制模块将资源转换模块中相应的资源转换关系去掉;接着,通知设备模型模块2将该设备加入到PCI总线空间,并且,由设备模型模块2通知切换访问控制模块在资源转换模块中添加相应的资源转换关系。
这样,当分时切换设备被切换至客户操作系统2时,客户操作系统1的设备空间将不再出现被切换的分时切换设备,因此,客户操作系统1不再能访问这些分时切换设备。而对于分时切换设备切换到的客户操作系统2,会在设备空间中重新发现这些分时切换设备,从而可以按独占设备的访问方式访问该设备。
从上述描述可以看出,相对于现有的虚拟机系统和硬件访问方法,本发明具有以下优点:
1)根据硬件设备使用的习惯或规定,设置设备在虚拟机系统间不同的共享模式,根据不同的共享模式,提供虚拟机系统访问硬件的不同方法。共享模式可以分为:时时共享,分时切换,时时独占等。这样最大限度地提高了虚拟系统访问硬件的性能;
2)虚拟机系统显示的硬件设备与设备的共享模式有关。对于独占设备可以显示真实的硬件设备;对于分时切换设备,当该虚拟系统拥有该设备时,可以看到真实的硬件设备,当该设备从该虚拟系统切走时,该虚拟系统没有该设备,也不能显示该设备,实现设备在不同客户操作系统之间的切换;对于时时共享设备,虚拟系统看到的是模拟的设备类型,这种方式与现有方式一致;
3)由于客户操作系统对分时切换设备或时时独占设备可以直接或者通过虚拟机监视器访问到真实硬件,这样提高了虚拟机系统硬件访问的效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (16)
1.一种虚拟机系统,包括服务操作系统、客户操作系统、虚拟机监视器以及硬件,服务操作系统包括与各客户操作系统分别对应的设备模型模块,其特征在于,虚拟机监视器进一步包括资源转换模块、切换判断模块、以及访问控制模块,其中,
所述资源转换模块用于存储服务操作系统为硬件设备分配的资源、客户操作系统对服务操作系统为其提供的需要直接访问的硬件设备分配的资源二者之间的转换关系,并在客户操作系统对需要直接访问的硬件发出访问硬件设备的请求时,根据上述转换关系将客户操作系统的访问地址转化成对应硬件设备的真实物理地址;
切换判断模块用于判断按键是否为切换组合键,如果是切换组合键,则通知访问控制模块,由访问控制模块按顺序通知前台客户操作系统的设备模型模块在自身的设备空间中释放需要切换的硬件设备,并由前台客户操作系统的设备模型模块通知访问控制模块去掉资源转换模块中相应的资源转换关系;以及,通知后台客户操作系统的设备模型模块在自身的设备空间中加入需要切换的硬件设备,并由后台客户操作系统的设备模型模块通知访问控制模块在资源转换模块中添加相应的资源转换关系。
2.如权利要求1所述的系统,其特征在于,所述需要直接访问的硬件设备为时时独占设备和/或分时切换设备。
3.如权利要求1所述的系统,其特征在于,所述切换组合键分为系统切换组合键和/或设备切换组合键。
4.如权利要求2所述的系统,其特征在于,分时切换设备包括键盘、和/或鼠标、和/或处于全屏显示模式的显卡、和/或声卡、和/或USB设备。
5.如权利要求2所述的系统,其特征在于,时时独占设备包括声卡、和/或USB设备、和/或其它PCI设备。
6.如权利要求2所述的系统,其特征在于,硬件设备进一步包括时时共享设备,时时共享设备包括硬盘和/或网络设备。
7.如权利要求1至6所述的虚拟机系统,其特征在于,在服务操作系统中进一步包括切换服务模块,提供设备切换的用户接口,用于在设备切换时,按顺序通知前台客户操作系统的设备模型模块在自身的设备空间中释放硬件设备,并由前台客户操作系统的设备模型模块通知访问控制模块去掉资源转换模块中相应的资源转换关系;以及,通知后台客户操作系统的设备模型模块在自身的设备空间中加入硬件设备,并由后台客户操作系统的设备模型模块通知访问控制模块在资源转换模块中添加相应的资源转换关系。
8.一种虚拟机系统,包括服务操作系统、客户操作系统、虚拟机监视器以及硬件,服务操作系统包括与各客户操作系统分别对应的设备模型模块,其特征在于,虚拟机监视器进一步包括资源转换模块以及访问控制模块,服务操作系统进一步包括切换服务模块,其中,
所述资源转换模块用于存储服务操作系统为硬件设备分配的资源、客户操作系统对服务操作系统为其提供的需要直接访问的硬件设备分配的资源二者之间的转换关系,并在客户操作系统对需要直接访问的硬件发出访问硬件设备的请求时,根据上述转换关系将客户操作系统的访问地址转化成对应硬件设备的真实物理地址;
所述切换服务模块,提供设备切换的用户接口,用于在设备切换时,按顺序通知前台客户操作系统的设备模型模块在自身的设备空间中释放硬件设备,并由前台客户操作系统的设备模型模块通知访问控制模块去掉资源转换模块中相应的资源转换关系;以及,通知后台客户操作系统的设备模型模块在自身的设备空间中加入硬件设备,并由后台客户操作系统的设备模型模块通知访问控制模块在资源转换模块中添加相应的资源转换关系。
9.如权利要求8所述的系统,其特征在于,所述需要直接访问的硬件设备为时时独占设备和/或分时切换设备。
10.如权利要求8所述的系统,其特征在于,所述切换组合键分为系统切换组合键和/或设备切换组合键。
11.如权利要求9所述的系统,其特征在于,分时切换设备包括键盘、和/或鼠标、和/或处于全屏显示模式的显卡、和/或声卡、和/或USB设备。
12.如权利要求9所述的系统,其特征在于,时时独占设备包括声卡、和/或USB设备、和/或其它PCI设备。
13.如权利要求9所述的系统,其特征在于,硬件设备进一步包括时时共享设备,时时共享设备包括硬盘和/或网络设备。
14.一种虚拟机系统中硬件设备的切换方法,其特征在于,包括步骤:
在系统或设备切换时,将相应的切换信号按顺序发给前台客户操作系统对应的设备模型模块和后台客户操作系统的设备模型模块;
前台客户操作系统对应的设备模型模块在自身的设备空间中释放硬件设备;
后台客户操作系统对应的设备模型模块将前台客户操作系统对应的设备模型模块释放的硬件设备加入自己的设备空间。
15.如权利要求14所述的方法,其特征在于,所述硬件设备为分时切换设备。
16.如权利要求15所述的虚拟机系统,其特征在于,所述分时切换设备包括键盘、和/或鼠标、和/或处于全屏显示模式的显卡、和/或声卡、和/或USB设备,和/或其它PCI设备。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610093162 CN100472452C (zh) | 2006-06-23 | 2006-06-23 | 一种虚拟机系统及其硬件设备的切换方法 |
US11/760,875 US8924959B2 (en) | 2006-06-23 | 2007-06-11 | Switching hardware devices in virtual machine systems using resource converting relationships |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610093162 CN100472452C (zh) | 2006-06-23 | 2006-06-23 | 一种虚拟机系统及其硬件设备的切换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101093448A true CN101093448A (zh) | 2007-12-26 |
CN100472452C CN100472452C (zh) | 2009-03-25 |
Family
ID=38874902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610093162 Active CN100472452C (zh) | 2006-06-23 | 2006-06-23 | 一种虚拟机系统及其硬件设备的切换方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8924959B2 (zh) |
CN (1) | CN100472452C (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739283A (zh) * | 2008-11-20 | 2010-06-16 | 联想(北京)有限公司 | 一种计算机及虚拟系统直接访问计算机硬件的方法 |
CN101996090A (zh) * | 2009-08-28 | 2011-03-30 | 联想(北京)有限公司 | 一种计算机及虚拟机下重置设备的方法 |
WO2012083839A1 (zh) * | 2010-12-20 | 2012-06-28 | 联想(北京)有限公司 | 电子设备及数据传输方法 |
CN102576331A (zh) * | 2009-09-21 | 2012-07-11 | 甲骨文国际公司 | 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法 |
CN101561769B (zh) * | 2009-05-25 | 2013-02-13 | 北京航空航天大学 | 一种基于多核平台虚拟机的进程迁移跟踪方法 |
CN103140832A (zh) * | 2010-08-05 | 2013-06-05 | 株式会社Ntt都科摩 | 信息处理终端以及资源释放方法 |
CN101685404B (zh) * | 2008-09-28 | 2013-06-05 | 联想(北京)有限公司 | 一种虚拟环境中设备动态切换装置及方法 |
WO2013139000A1 (zh) * | 2012-03-21 | 2013-09-26 | 广州市飞元信息科技有限公司 | 支持用户自定义的虚拟操作区域及其操作方法和系统架构 |
CN101770389B (zh) * | 2008-12-29 | 2014-02-12 | 北京联想软件有限公司 | 一种计算机及管理硬件设备的方法 |
CN103823771A (zh) * | 2014-03-04 | 2014-05-28 | 飞天诚信科技股份有限公司 | 一种远程通信方法和系统 |
WO2014194793A1 (zh) * | 2013-06-04 | 2014-12-11 | 中国银联股份有限公司 | 一种在能够运行两种操作系统的装置中使用共享设备的方法 |
CN104572484A (zh) * | 2015-01-23 | 2015-04-29 | 宇龙计算机通信科技(深圳)有限公司 | 存储空间分配方法、存储空间分配装置和终端 |
WO2015096001A1 (en) * | 2013-12-23 | 2015-07-02 | Intel Corporation | System-on-a-chip (soc) including hybrid processor cores |
CN105046156A (zh) * | 2015-08-26 | 2015-11-11 | 北京元心科技有限公司 | 智能终端及其设备访问权限控制方法 |
CN105138896A (zh) * | 2015-08-26 | 2015-12-09 | 北京元心科技有限公司 | 智能终端及其硬件设备访问权限控制方法 |
CN105204816A (zh) * | 2015-09-29 | 2015-12-30 | 北京元心科技有限公司 | 在多系统中对音频进行控制的方法及装置 |
CN106293925A (zh) * | 2015-05-25 | 2017-01-04 | 宇龙计算机通信科技(深圳)有限公司 | 一种多个应用共享硬件设备的方法及装置 |
CN107463429A (zh) * | 2017-07-25 | 2017-12-12 | 合肥红铭网络科技有限公司 | 一种虚拟主机切换方法 |
CN108205504A (zh) * | 2016-12-16 | 2018-06-26 | 广州杰赛科技股份有限公司 | 终端usb映射方法、虚拟机usb映射方法及系统 |
CN109597671A (zh) * | 2018-12-11 | 2019-04-09 | 国云科技股份有限公司 | 一种兼容集中式和分布式运行的桌面云实现方法 |
CN109783188A (zh) * | 2017-11-10 | 2019-05-21 | 英特尔公司 | 用于安全公共云的密码存储器所有权表 |
CN110119637A (zh) * | 2018-02-07 | 2019-08-13 | 晨星半导体股份有限公司 | 硬件控制方法与硬件控制系统 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200807254A (en) * | 2006-06-01 | 2008-02-01 | Clevx Llc | Information backup system for handheld devices |
US8689288B2 (en) * | 2007-04-16 | 2014-04-01 | Samsung Electronics Co., Ltd. | Apparatus and method for protecting system in virtualized environment |
JP2009187368A (ja) * | 2008-02-07 | 2009-08-20 | Hitachi Ltd | Usbポートの共有制御方法 |
US20090328037A1 (en) * | 2008-02-27 | 2009-12-31 | Gabriele Sartori | 3d graphics acceleration in remote multi-user environment |
JP5245539B2 (ja) * | 2008-05-27 | 2013-07-24 | 富士通株式会社 | 仮想マシンの入出力エミュレーション機構 |
US8117346B2 (en) * | 2008-10-03 | 2012-02-14 | Microsoft Corporation | Configuration space virtualization |
US8572608B2 (en) | 2008-10-22 | 2013-10-29 | Vmware, Inc. | Methods and systems for converting a related group of physical machines to virtual machines |
US20100138616A1 (en) * | 2008-12-02 | 2010-06-03 | Phoenix Technologies Ltd. | Input-output virtualization technique |
US8806481B2 (en) * | 2010-08-31 | 2014-08-12 | Hewlett-Packard Development Company, L.P. | Providing temporary exclusive hardware access to virtual machine while performing user authentication |
US8984506B2 (en) * | 2011-01-07 | 2015-03-17 | International Business Machines Corporation | Techniques for dynamically discovering and adapting resource and relationship information in virtualized computing environments |
US8522238B2 (en) * | 2011-01-24 | 2013-08-27 | Red Hat Israel, Ltd. | Feature driven backend switching |
US9189283B2 (en) | 2011-03-03 | 2015-11-17 | Hewlett-Packard Development Company, L.P. | Task launching on hardware resource for client |
US9645823B2 (en) | 2011-03-03 | 2017-05-09 | Hewlett-Packard Development Company, L.P. | Hardware controller to choose selected hardware entity and to execute instructions in relation to selected hardware entity |
US8738830B2 (en) | 2011-03-03 | 2014-05-27 | Hewlett-Packard Development Company, L.P. | Hardware interrupt processing circuit |
US8966499B2 (en) * | 2011-09-09 | 2015-02-24 | Microsoft Technology Licensing, Llc | Virtual switch extensibility |
KR101751936B1 (ko) * | 2011-12-15 | 2017-07-12 | 한국전자통신연구원 | 호스트 기반 단말 가상화 환경에서 공유 메모리를 이용한 입출력 디바이스 가상화 장치 및 방법 |
JP5624084B2 (ja) * | 2012-06-04 | 2014-11-12 | 株式会社日立製作所 | 計算機、仮想化機構、及びスケジューリング方法 |
WO2014016845A1 (en) * | 2012-07-25 | 2014-01-30 | Hewlett-Packard Development Company L.P. | Computer device and method for converting gesture |
US9286094B2 (en) * | 2012-10-12 | 2016-03-15 | Citrix Systems, Inc. | Human interface device virtualization using paravirtual USB system |
CN103853513B (zh) * | 2012-12-04 | 2017-06-27 | 联想(北京)有限公司 | 一种控制显卡的方法及一种电子设备 |
CN103870311B (zh) * | 2012-12-10 | 2016-12-21 | 华为技术有限公司 | 通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动 |
US10248459B2 (en) * | 2016-03-15 | 2019-04-02 | Microsoft Technology Licensing, Llc | Operating system support for game mode |
DE102019217624A1 (de) * | 2019-11-15 | 2021-05-20 | Robert Bosch Gmbh | Industrielles Steuerungssystem in der Automatisierungstechnik mit unabhängig voneinander agierenden Modulen |
CN113835839A (zh) * | 2021-09-27 | 2021-12-24 | 湖南小算科技信息有限公司 | 一种虚拟机切换方法 |
CN114442992B (zh) * | 2022-01-25 | 2024-01-02 | 杭州国芯科技股份有限公司 | 一种usb声卡音频传输协议的切换方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289396B1 (en) * | 1995-11-21 | 2001-09-11 | Diamond Multimedia Systems, Inc. | Dynamic programmable mode switching device driver architecture |
JP4291964B2 (ja) * | 2001-04-19 | 2009-07-08 | 株式会社日立製作所 | 仮想計算機システム |
US7467381B2 (en) * | 2003-12-16 | 2008-12-16 | Intel Corporation | Resource partitioning and direct access utilizing hardware support for virtualization |
US7971203B2 (en) * | 2004-03-05 | 2011-06-28 | Intel Corporation | Method, apparatus and system for dynamically reassigning a physical device from one virtual machine to another |
US7797699B2 (en) * | 2004-09-23 | 2010-09-14 | Intel Corporation | Method and apparatus for scheduling virtual machine access to shared resources |
-
2006
- 2006-06-23 CN CN 200610093162 patent/CN100472452C/zh active Active
-
2007
- 2007-06-11 US US11/760,875 patent/US8924959B2/en active Active
Cited By (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685404B (zh) * | 2008-09-28 | 2013-06-05 | 联想(北京)有限公司 | 一种虚拟环境中设备动态切换装置及方法 |
CN101739283B (zh) * | 2008-11-20 | 2013-12-25 | 联想(北京)有限公司 | 一种计算机及虚拟系统直接访问计算机硬件的方法 |
CN101739283A (zh) * | 2008-11-20 | 2010-06-16 | 联想(北京)有限公司 | 一种计算机及虚拟系统直接访问计算机硬件的方法 |
CN101770389B (zh) * | 2008-12-29 | 2014-02-12 | 北京联想软件有限公司 | 一种计算机及管理硬件设备的方法 |
CN101561769B (zh) * | 2009-05-25 | 2013-02-13 | 北京航空航天大学 | 一种基于多核平台虚拟机的进程迁移跟踪方法 |
CN101996090A (zh) * | 2009-08-28 | 2011-03-30 | 联想(北京)有限公司 | 一种计算机及虚拟机下重置设备的方法 |
CN101996090B (zh) * | 2009-08-28 | 2013-09-04 | 联想(北京)有限公司 | 一种计算机及虚拟机下重置设备的方法 |
CN102576331A (zh) * | 2009-09-21 | 2012-07-11 | 甲骨文国际公司 | 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法 |
CN102576331B (zh) * | 2009-09-21 | 2015-05-13 | 甲骨文国际公司 | 用于在虚拟机监视器环境中的虚拟机之间同步瞬时资源使用的系统和方法 |
CN103140832A (zh) * | 2010-08-05 | 2013-06-05 | 株式会社Ntt都科摩 | 信息处理终端以及资源释放方法 |
CN103140832B (zh) * | 2010-08-05 | 2016-01-06 | 株式会社Ntt都科摩 | 信息处理终端以及资源释放方法 |
CN102567249A (zh) * | 2010-12-20 | 2012-07-11 | 联想(北京)有限公司 | 一种电子设备及其数据传输方法 |
US9430431B2 (en) | 2010-12-20 | 2016-08-30 | Lenovo (Beijing) Limited | Multi-part electronic device and data transmission method |
WO2012083839A1 (zh) * | 2010-12-20 | 2012-06-28 | 联想(北京)有限公司 | 电子设备及数据传输方法 |
CN102567249B (zh) * | 2010-12-20 | 2015-08-26 | 联想(北京)有限公司 | 一种电子设备及其数据传输方法 |
WO2013139000A1 (zh) * | 2012-03-21 | 2013-09-26 | 广州市飞元信息科技有限公司 | 支持用户自定义的虚拟操作区域及其操作方法和系统架构 |
US9971597B2 (en) | 2012-03-21 | 2018-05-15 | Guangzhou Fyutopia Information Technology Co., Ltd. | Virtual operating area supporting customized definition and operating method and system architecture thereof |
CN103415838A (zh) * | 2012-03-21 | 2013-11-27 | 广州市飞元信息科技有限公司 | 支持用户自定义的虚拟操作区域及其操作方法和系统架构 |
CN103415838B (zh) * | 2012-03-21 | 2016-10-05 | 广州市飞元信息科技有限公司 | 支持用户自定义的虚拟操作空间系统及其操作方法和支撑系统 |
WO2014194793A1 (zh) * | 2013-06-04 | 2014-12-11 | 中国银联股份有限公司 | 一种在能够运行两种操作系统的装置中使用共享设备的方法 |
US9459937B2 (en) | 2013-06-04 | 2016-10-04 | China Unionpay Co., Ltd. | Method for using shared device in apparatus capable of operating two operating systems |
WO2015096001A1 (en) * | 2013-12-23 | 2015-07-02 | Intel Corporation | System-on-a-chip (soc) including hybrid processor cores |
CN103823771B (zh) * | 2014-03-04 | 2017-02-08 | 飞天诚信科技股份有限公司 | 一种远程通信方法和系统 |
CN103823771A (zh) * | 2014-03-04 | 2014-05-28 | 飞天诚信科技股份有限公司 | 一种远程通信方法和系统 |
CN104572484A (zh) * | 2015-01-23 | 2015-04-29 | 宇龙计算机通信科技(深圳)有限公司 | 存储空间分配方法、存储空间分配装置和终端 |
CN104572484B (zh) * | 2015-01-23 | 2017-12-12 | 宇龙计算机通信科技(深圳)有限公司 | 存储空间分配方法、存储空间分配装置和终端 |
CN106293925A (zh) * | 2015-05-25 | 2017-01-04 | 宇龙计算机通信科技(深圳)有限公司 | 一种多个应用共享硬件设备的方法及装置 |
CN105046156B (zh) * | 2015-08-26 | 2018-05-08 | 北京元心科技有限公司 | 智能终端及其设备访问权限控制方法 |
CN105138896B (zh) * | 2015-08-26 | 2017-10-20 | 北京元心科技有限公司 | 智能终端及其硬件设备访问权限控制方法 |
CN105138896A (zh) * | 2015-08-26 | 2015-12-09 | 北京元心科技有限公司 | 智能终端及其硬件设备访问权限控制方法 |
CN105046156A (zh) * | 2015-08-26 | 2015-11-11 | 北京元心科技有限公司 | 智能终端及其设备访问权限控制方法 |
CN105204816A (zh) * | 2015-09-29 | 2015-12-30 | 北京元心科技有限公司 | 在多系统中对音频进行控制的方法及装置 |
CN108205504A (zh) * | 2016-12-16 | 2018-06-26 | 广州杰赛科技股份有限公司 | 终端usb映射方法、虚拟机usb映射方法及系统 |
CN107463429A (zh) * | 2017-07-25 | 2017-12-12 | 合肥红铭网络科技有限公司 | 一种虚拟主机切换方法 |
CN109783188A (zh) * | 2017-11-10 | 2019-05-21 | 英特尔公司 | 用于安全公共云的密码存储器所有权表 |
CN109783188B (zh) * | 2017-11-10 | 2024-04-09 | 英特尔公司 | 用于安全公共云的密码存储器所有权表 |
CN110119637A (zh) * | 2018-02-07 | 2019-08-13 | 晨星半导体股份有限公司 | 硬件控制方法与硬件控制系统 |
CN110119637B (zh) * | 2018-02-07 | 2023-04-14 | 联发科技股份有限公司 | 硬件控制方法与硬件控制系统 |
CN109597671A (zh) * | 2018-12-11 | 2019-04-09 | 国云科技股份有限公司 | 一种兼容集中式和分布式运行的桌面云实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US8924959B2 (en) | 2014-12-30 |
CN100472452C (zh) | 2009-03-25 |
US20070300223A1 (en) | 2007-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100472452C (zh) | 一种虚拟机系统及其硬件设备的切换方法 | |
CN100472451C (zh) | 一种虚拟机系统及其硬件设备访问方法 | |
CN101241445B (zh) | 虚拟机系统及其访问显卡的方法 | |
CN100549964C (zh) | 信息处理设备、中断处理控制方法 | |
US8856194B2 (en) | Efficient garbage collection in virtualization environment | |
CN101120317A (zh) | 将存储器从一个虚拟机动态再分配到另一个的方法、装置和系统 | |
CN102110023B (zh) | 一种多用户操作系统并行运行的控制方法、系统及计算机 | |
CN103414712B (zh) | 一种分布式虚拟桌面管理系统和方法 | |
CN103078965B (zh) | 虚拟机的ip地址管理方法 | |
CN100570562C (zh) | 显卡、应用该显卡的虚拟机系统及显示处理方法 | |
CN102722414A (zh) | 用于多根i/o 虚拟化共享系统的i/o 资源管理方法 | |
JP7082673B2 (ja) | セキュリティ保護方法および装置 | |
CN105245523A (zh) | 应用于桌面虚拟化场景的存储服务平台及其实现方法 | |
CN103346981A (zh) | 虚拟交换方法、相关装置和计算机系统 | |
CN110025957B (zh) | 一种云游戏服务器端架构、客户端和系统 | |
CN102193814A (zh) | 嵌入式虚拟化内存动态分配方法及系统 | |
CN100561438C (zh) | 一种虚拟机系统及其显卡使用方法 | |
CN101697134A (zh) | 一种支持相似虚拟机快速启动的方法 | |
CN101876954B (zh) | 一种虚拟机控制系统及其工作方法 | |
CN102790918A (zh) | 一种智能电视及其接收遥控器输入的方法 | |
CN101470633A (zh) | 一种虚拟机监视器、虚拟机系统及其内存处理方法 | |
CN104503825A (zh) | 一种基于kvm混合式设备虚拟化方法 | |
CN105515837A (zh) | 一种基于事件驱动的高并发web流量产生器 | |
CN111090531B (zh) | 一种图形处理器分布式虚拟化的实现方法及分布式系统 | |
CN104394018A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |