虚拟机系统和动态分配即插即用设备的方法

文档序号:6649784阅读:233来源:国知局
专利名称:虚拟机系统和动态分配即插即用设备的方法
技术领域
本发明涉及一种计算机虚拟技术,特别是涉及一种虚拟机系统和动态分配即插即用设备的方法。
背景技术
虚拟机系统由来已久,从上世纪60年代开始就首先在大型机以及高端服务器系统进行应用。近代,随着个人电脑的飞速发展,虚拟机系统在个人电脑上的应用也日益广泛。
目前,市场上的虚拟机系统主要有表1中所示的三种类型表1

即插即用(Plug and Play,PnP)是Microsoft提出并首先应用于Windows95系统的一种操作系统特性。因为即插即用极大地降低了操作系统的使用复杂度,提供了良好的易用性,因此,在个人电脑操作系统上得到极为广泛的支持,并且已经成为一种工业标准。所以,对即插即用支持的好坏程度将直接影响虚拟机系统从服务器端向个人电脑的迁移。
从表2可以看出,上述三类虚拟机系统对即插即用支持都不是很理想
表2

通过上述分析,能够得出以下结论现有的虚拟机系统不支持即插即用设备的动态分配,将直接影响虚拟机系统给最终用户的用户体验,影响其向个人电脑的推广和应用。
因此,有必要提供一种可以支持即插即用设备动态分配的虚拟机系统和PnP动态分配方法来很好地解决目前存在的即插即用设备动态分配的问题。

发明内容
本发明的目的在于,提供一种虚拟机系统。
本发明的另一目的在于,提供一种动态分配即插即用设备的方法。
一种虚拟机系统,包括虚拟机监视器、硬件以及多个操作系统。其中,该虚拟机监视器进一步包括即插即用模块,用于根据调用指令,将产生的相应中断信号发送给相应操作系统,并通过截获该相应操作系统的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟I/O操作并将模拟结果反馈给该相应操作系统,完成中断信号所指示的处理。
进一步,虚拟机监视器中包括调度器,上述即插即用模块包括功能调用模块、中断设置模块以及设备I/O接口。其中,功能调用模块根据调度器的调用指令,输出相应的条件参数;中断设置模块根据功能调用模块输出的条件参数,向相应操作系统发出中断信号;设备I/O接口截获该相应操作系统对即插即用设备的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟I/O操作并将模拟结果反馈给该相应操作系统。
另外,所述操作系统中包括即插即用设备应用程序,用户通过该应用程序产生调用指令,上述即插即用模块包括功能调用模块、中断设置模块以及设备I/O接口。其中,功能调用模块根据即插即用设备应用程序产生的调用指令,输出相应的条件参数;中断设置模块根据功能调用模块输出的条件参数,向相应操作系统发出中断信号;设备I/O接口截获该相应操作系统对即插即用设备的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟I/O操作并将模拟结果反馈给该相应操作系统。
一种动态分配即插即用设备的方法,用于将即插即用设备动态分配给虚拟机系统中的多个操作系统中的至少一操作系统,其包括步骤1)接收调用指令,产生的相应中断信号发送给相应操作系统;2)截获该相应操作系统的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟I/O操作并将模拟结果反馈给该相应操作系统,完成中断信号所指示的处理。
其中,上述步骤1)包括根据调用指令,输出相应的条件参数;根据条件参数,向相应操作系统发出中断信号。
本发明的有益效果是通过向不同操作系统发出即插即用设备拔出或者插入终端信号,即伪造即插即用设备中断信号,让操作系统认为该即插即用设备就是正在拔出或者插入,然后自动完成相应的卸载或者安装过程,实际上该即插即用设备一直是与虚拟机系统物理连接的。因此,可以在不需要用户参与或者重新配置、启动操作系统的情况下,实现完全可控的即插即用设备的动态资源分配。


图1为本发明第一实施例的虚拟机系统的结构示意图。
图2为本发明第一实施例的虚拟机系统中即插即用模块的结构示意图。
图3为本发明第一实施例的虚拟机系统中即插即用设备的动态分配方法的流程图。
图4为本发明第二实施例的虚拟机系统的结构示意图。
图5为本发明第二实施例的虚拟机系统中即插即用模块的结构示意图。
图6为本发明第二实施例的虚拟机系统中即插即用设备动态分配方法的流程图。
具体实施例方式
以下将结合

本发明的虚拟机系统以及即插即用设备动态分配方法。其中,相同的附图标记表示相同功能的单元或者模块。
如图1所示,为本发明第一实施例的虚拟机系统。该虚拟机系统包括伺服操作系统1、至少一用户操作系统2、虚拟机监视器3以及硬件4。在本发明第一实施例所涉及的技术方案中,由于仅涉及在一个操作系统向另一个操作系统切换过程中,即,伺服操作系统1向用户操作系统2的切换或者用户操作系统2之间的切换过程中,即插即用设备(PnP Device)的切换过程,因此,在这种意义上,可以将该伺服操作系统1视为一个用户操作系统2,进而便于简化描述。
该虚拟机监视器3包括有调度器31以及即插即用模块32。其中,该调度器31中设置有数据库或者列表,该数据库或者列表中包括各种信息和参数,例如每个操作系统的特性、每个操作系统可以支持的设备(包括即插即用设备)、操作系统和用户的指令及其对应操作的参数(例如用户的拔出或者插入指令及其对应的拔出或者插入操作的参数)等。
当从当前操作系统切换到另一操作系统,并且需要将与当前操作系统中使用的即插即用设备插入到该另一操作系统时,用户输入切换指令。调度器31在接收到用户输入的切换指令后,根据其中的列表向即插即用模块32发出调用指令。根据调度器31的调用指令,即插即用模块32向当前操作系统发出中断指令(拔出指令),表示需要将即插即用设备从当前操作系统中拔出。同时,该即插即用模块32截获当前操作系统后续对该即插即用设备的I/O操作,完成即插即用设备在当前操作系统中的卸载操作,并将卸载操作结果反馈调度器31。
接下来,在来自收到即插即用模块32的卸载操作结果后,调度器31向即插即用模块32发送调用指令。根据调度器31的调用指令,即插即用模块32向该另一操作系统发出中断指令(插入指令),表示需要将即插即用设备插入该另一操作系统中。同时,该即插即用模块32截获该另一操作系统后续对该即插即用设备的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟I/O操作并将模拟结果反馈给该操作系统,完成即插即用设备在该另一操作系统中的安装操作。
具体地,如图2所示,该即插即用模块32可以包括功能调用模块321、中断设置模块322以及设备I/O接口323。
其中,该功能调用模块321中至少包括调用的条件参数,该参数表明了即插即用设备动态分配的方式和条件,以及满足该方式和条件所必需的各种参数。该中断设置模块322用于根据功能调用模块321输出的条件参数,向操作系统发出中断信号。该设备I/O接口323用于截获操作系统对设备(包括真实设备或者虚拟设备)的I/O操作,并且将I/O操作的结果返回给该操作系统,这里,I/O操作的结果可以是真实硬件设备的I/O操作返回结果,也可以是通过软件模拟I/O操作所获得的结果。
请一并参阅图2和图3,说明在本发明虚拟机系统中即插即用设备的动态分配方法。
当调度器31在接收到用户输入的、将即插即用设备从当前操作系统切换到另一操作系统的切换指令后,根据其中的列表向功能调用模块321发出调用指令。根据调度器31的调用指令,功能调用模块321将对应的条件参数输出到中断设备模块322。中断设备模块322根据功能调用模块输出的条件参数,产生相应的中断信号,并将该中断信号发送给当前操作系统,表示需要将即插即用设备从当前操作系统中拔出。因为在虚拟机系统中,每个操作系统对应一个或多个虚拟CPU,中断设备模块322可以通过设置操作系统的虚拟CPU的中断标志实现中断信号的发送。当前操作系统根据中断设备模块322的中断信号进行后续的、将即插即用设备从操作系统拔出的I/O操作。
然后,该设备I/O接口323截获当前操作系统后续对该即插即用设备的I/O操作,完成即插即用设备在当前操作系统中的卸载操作,并将卸载操作结果反馈调度器31。
接下来,调度器31在来自收到即插即用模块32的卸载操作结果后,根据其中的列表向功能调用模块321发出调用指令。根据调度器31的调用指令,功能调用模块321将对应的条件参数输出到中断设备模块322。中断设备模块322根据功能调用模块输出的条件参数,产生相应的中断信号,并将该中断信号发送给该另一操作系统,表示需要将即插即用设备插入到该另一操作系统中。该另一操作系统根据中断设备模块322的中断信号进行后续的、将即插即用设备从操作系统拔出的I/O操作。该设备I/O接口323截获该另一操作系统后续对该即插即用设备的I/O操作,完成即插即用设备在该另一操作系统中的插入操作。
在本发明第一实施例中仅以图2所示的结构为例进行说明。但不仅限于此,在实现以下即插即用设备在不同操作系统中切换这样的功能的情况下,也可以有其他配置方式。
例如,在第一实施例中的即插即用设备为独享设备,因此,在从当前操作系统切换到另一操作系统时,需要将其同时切换到该另一操作系统。但是当该即插即用设备为共享设备时,可以只需要进行将其插入到该另一操作系统中的操作。这时,当前操作系统和该另一操作系统可以同时分享该即插即用设备。
从上述的描述可以得知,本发明的实质是通过向不同操作系统发出即插即用设备拔出或者插入终端信号,即伪造即插即用设备中断信号,让操作系统认为该即插即用设备就是正在拔出或者插入,然后自动完成相应的卸载或者安装过程,实际上该即插即用设备一直是与虚拟机系统物理连接的。因此,可以在不需要用户参与或者重新配置、启动操作系统的情况下,实现完全可控的即插即用设备的动态资源分配。
本发明的虚拟机系统可以为基于混合模式或者基于主机模式的虚拟机系统,如Xen虚拟机系统,其虚拟机监视器中集成了即插即用模块,并利用虚拟机监视器自身的调度器,按照上述图3所示的方法实现即插即用设备从当前操作系统向另一操作系统的切换。
图4为本发明第二实施例的虚拟机系统。该虚拟机系统包括伺服操作系统1、至少一用户操作系统2、虚拟机监视器3以及硬件4,该虚拟机监视器3中集成了即插即用模块32。
与第一实施例的虚拟机系统不同指出在于,本发明第二实施例中的虚拟机系统的用户操作系统2中设置有即插即用设备的应用程序,该应用程序可以列出用户能够安装和卸载的所有即插即用设备,用户可以通过对该应用程序进行操作从而直接调用即插即用模块32,而不需要象第一实施例那样通过调度器31来实现对即插即用模块32的调用。也就是,用户在需要插入或者拔出即插即用设备的时候,可以直接通过该应用程序调用即插即用模块32,伪造插入或者拔出即插即用设备的中断信号,来实现即插即用设备的插入或者拔出。
当前操作系统需要安装或者卸载即插即用设备时,用户通过即插即用设备的应用程序输入相应的调用指令,直接调用即插即用模块32。根据来自该应用程序的调用指令,即插即用模块32向当前操作系统发出中断指令(插入或者拔出指令),表示需要将即插即用设备插入到当前操作系统或者从当前操作系统中拔出。同时,该即插即用模块32截获当前操作系统后续对该即插即用设备的I/O操作,完成即插即用设备在当前操作系统中的安装或者卸载操作。
如图5所示,该即插即用模块32可以包括功能调用模块321、中断设置模块322以及设备I/O接口323,功能也大致相同。
具体地,参考图5和图6,说明在本发明第二实施例的虚拟机系统中实现即插即用设备动态分配的方法。
当前操作系统需要安装或者卸载即插即用设备时,用户通过即插即用设备的应用程序输入相应的调用指令,直接调用即插即用模块32中的功能调用模块321。根据来自该应用程序的调用指令,功能调用模块321将对应的条件参数输出到中断设备模块322。中断设备模块322根据功能调用模块输出的条件参数,产生相应的中断信号(插入或者拔出指令),表示需要将即插即用设备插入到当前操作系统或者从当前操作系统中拔出,并将该中断信号发送给当前操作系统,表示需要将即插即用设备插入到当前操作系统或者从当前操作系统中拔出。当前操作系统根据中断设备模块322的中断信号进行后续的、将插入到当前操作系统或者将即插即用设备从操作系统拔出的I/O操作。
这里,该即插即用设备可以为独享设备或者共享设备,如果为独享设备时,需要将其首先从其他操作系统中卸载,然后再安装到当前操作系统。如果该即插即用设备为共享设备时,则只需要进行将其插入到当前操作系统中的操作。这时,当前操作系统和其他操作系统可以同时分享该即插即用设备。
从上述的描述可以得知,本发明的实质是通过向不同操作系统发出即插即用设备拔出或者插入终端信号,即伪造即插即用设备中断信号,让操作系统认为该即插即用设备就是正在拔出或者插入,然后自动完成相应的卸载或者安装过程,实际上该即插即用设备一直是与虚拟机系统物理连接的。因此,可以在不需要用户参与或者重新配置、启动操作系统的情况下,实现完全可控的即插即用设备的动态资源分配。
该虚拟机系统可以为基于混合模式或者基于主机模式的虚拟机系统,如Xen虚拟机系统,其虚拟机监视器中集成了即插即用模块,并利用操作系统中的即插即用应用程序,按照上述图5所示的方法实现即插即用设备在当前操作系统中的插入或者拔出操作。
根据本发明的虚拟机系统和即插即用设备的动态分配方法,可以有效解决现有虚拟机系统对即插即用设备设备支持不好,应用不便的问题。并且,可以根据不同的应用场景实现方便、灵活的分配方式,改善虚拟机系统给最终用户的用户体验,对于虚拟机系统向个人电脑推广和应用提供了一种切实可行的方案。
同时,无论是基于主机模式的,还是基于混合模式的虚拟机系统,在不同操作系统之间进行切换的时候,不需要用户的参与,根据策略自动完成即插即用设备在不同操作系统之间的切换,方便了用户的使用,提高了虚拟机系统给最终用户的用户体验。
权利要求
1.一种虚拟机系统,包括虚拟机监视器、硬件以及多个操作系统,其特征在于该虚拟机监视器进一步包括即插即用模块,用于根据调用指令,将产生的相应中断信号发送给相应操作系统,并通过截获该相应操作系统的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟I/O操作并将模拟结果反馈给该相应操作系统,完成中断信号所指示的处理。
2.如权利要求1所述的虚拟机系统,其特征在于,该多个操作系统包括伺服操作系统以及至少一个用户操作系统。
3.如权利要求1所述的虚拟机系统,其特征在于,该中断信号表示在该操作系统中安装即插即用设备或者从该操作系统中卸载即插即用设备。
4.如权利要求1至3任一项所述的虚拟机系统,其特征在于,虚拟机监视器中包括调度器,该调度器根据用户输入的切换指令,产生相应的调用指令。
5.如权利要求4所述的虚拟机系统,其特征在于,该即插即用模块包括功能调用模块、中断设置模块以及设备I/O接口,其中,功能调用模块根据调度器的调用指令,输出相应的条件参数;中断设置模块根据功能调用模块输出的条件参数,向相应操作系统发出中断信号;设备I/O接口截获该相应操作系统对即插即用设备的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟I/O操作并将模拟结果反馈给该相应操作系统。
6.如权利要求1至3任一项所述的虚拟机系统,其特征在于,所述操作系统中包括即插即用设备应用程序,用户通过该应用程序产生调用指令。
7.如权利要求6所述的虚拟机系统,其特征在于,该即插即用模块包括功能调用模块、中断设置模块以及设备I/O接口,其中,功能调用模块根据即插即用设备应用程序产生的调用指令,输出相应的条件参数;中断设置模块根据功能调用模块输出的条件参数,向相应操作系统发出中断信号;设备I/O接口截获该相应操作系统对即插即用设备的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟I/O操作并将模拟结果反馈给该相应操作系统,完成调用指令所指示的处理。
8.一种动态分配即插即用设备的方法,用于将即插即用设备动态分配给虚拟机系统中的多个操作系统中的至少一操作系统,其包括步骤1)接收调用指令,产生的相应中断信号发送给相应操作系统;2)截获该相应操作系统的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟I/O操作并将模拟结果反馈给该相应操作系统,完成中断信号所指示的处理。
9.如权利要求8所述的方法,其特征在于,该多个操作系统包括伺服操作系统以及至少一用户操作系统。
10.如权利要求8所述的虚拟机系统,其特征在于,该中断信号表示在该操作系统中安装即插即用设备或者从该操作系统中卸载即插即用设备。
11.如权利要求8至10任一项所述的方法,其特征在于,该调用指令根据用户输入的切换指令产生。
12.如权利要求10所述的方法,其特征在于,步骤1)包括根据调用指令,输出相应的条件参数;根据条件参数,向相应操作系统发出中断信号。
13.如权利要求8至10任一项所述的方法,其特征在于,用户通过该操作系统中包括的即插即用设备应用程序产生调用指令。
14.如权利要求13所述的方法,其特征在于,步骤1)包括根据调用指令,输出相应的条件参数;根据条件参数,向相应操作系统发出中断信号。
全文摘要
本发明提供一种虚拟机系统以及动态分配即插即用设备的方法。该虚拟机系统包括虚拟机监视器、硬件以及多个操作系统。其中,该虚拟机监视器进一步包括即插即用模块,用于根据调用指令,将产生的相应中断信号发送给相应操作系统,并通过截获该相应操作系统的I/O操作,直接将该I/O操作作用于即插即用设备,或是根据即插即用标准规范,通过软件模拟该I/O操作并将模拟结果反馈给相应的操作系统,完成中断信号所指示的处理。本发明可以在不需要用户参与或者重新配置、启动操作系统的情况下,实现完全可控的即插即用设备的动态资源分配。
文档编号G06F9/46GK1949177SQ20051011261
公开日2007年4月18日 申请日期2005年10月11日 优先权日2005年10月11日
发明者刘建成, 刘春梅, 宋春雨 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1