一种虚拟机系统及其通用串行总线设备的卸载方法

文档序号:6471840阅读:175来源:国知局
专利名称:一种虚拟机系统及其通用串行总线设备的卸载方法
技术领域
本发明涉及虚拟技术领域,特别是一种虚拟机系统及其通用串行总线设备的卸载
方法。
背景技术
然而,由于计算机主机上外部接口布局的有限性,一旦在某些时刻有很多的外部 设备需要同时与计算机主机进行通信,就可能存在外部接口不足,这种现象在笔记本电脑 上体现的尤为明显。 为了解决上述的问题,现在很多的计算机主机都可以提供一个扩展坞(Dock)接 口,通过该扩展坞接口可以连接扩展的外部设备,其中该外部设备包括USB (Universal Serial Bus,通用串行总线)设备。 操作系统设计里面也有Dock设备和Dock设备卸载事件的处理机制。当按下设置 于计算机上的Dock设备卸载按钮时,操作系统就会自动询问并卸载Dock设备上的所有设 备,对于USB设备而言,如果Dock设备上的USB设备正在使用,就不能够正常卸载,此时操 作系统会自动提示卸载失败,如果Dock设备上的USB设备没有使用,就能够自动卸载成功。
现有的虚拟机系统中,如图1所示,USB物理设备插入主机的USB接口或Dock设 备的USB接口后,HOS (Host Operation System,宿主操作系统)中的真实USB控制器驱动 模块为真实USB设备加载后端驱动,并通知HOS中的模拟USB主机控制器虚拟出相同的USB 设备供GOS(Guest OperationSystem,客户操作系统)使用。 发明人在实现本发明实施例的过程中,发现现有技术中在虚拟机系统中使用Dock 设备卸载事件来进行USB设备的卸载至少存在如下问题 由于HOS是在硬件层虚拟整个USB控制器,和操作系统无关,无法知道GOS中对某 个具体USB设备的设备驱动的使用状态,所以在Dock设备卸载事件触发后,现有的虚拟机 系统一般采用以下两种方式来实现卸载 第一种方式是由HOS强行卸载Dock设备上的所有USB物理设备,相当于手动拔出 一个USB物理设备;或者 第二种方式是由用户进入G0S,手动卸载Dock设备上的USB物理设备,然后返回 HOS进行Dock设备卸载事件的处理。 从以上方式可以看出,在第一种方式下,一旦USB物理设备还在被GOS使用,则有 可能损坏USB物理设备中的数据,而第二种方式下,需要用户进行多次操作,非常繁琐。

发明内容
本发明实施例的目的是提供一种虚拟机系统及其通用串行总线设备的卸载方法, 安全合理地卸载通过Dock设备接入的USB物理设备。 为了实现上述目的,本发明实施例提供了一种虚拟机系统,包括宿主操作系统HOS 和客户操作系统G0S,所述虚拟机系统还包括
第二 USB驱动模块,设置于所述G0S,所述第二 USB驱动模块包括有一卸载单元;
第一定向模块,设置于所述HOS,用于将第二通用串行总线USB物理设备定向到所 述第二 USB驱动模块,所述第二 USB物理设备为通过扩展坞设备接入且需要在所述GOS中 使用的USB物理设备; 所述第二 USB驱动模块,用于将所述第一定向模块定向过来的所述第二 USB物理 设备加载为第二虚拟USB设备,所述第二虚拟USB设备为通过Dock接入的设备;
事件监控模块,设置于所述H0S,用于在检测到在有Dock设备卸载请求时,向所述 GOS发送一通知; 事件模拟模块,设置于所述G0S,基于所述通知,针对所述第二虚拟USB设备,产生 卸载命令; 其中,所述卸载单元,用于基于所述卸载命令去卸载所述第二虚拟USB设备。
上述的系统,其中,还包括 第二定向模块,设置于所述H0S,用于将所述USB物理设备中通过主板USB接口接
入,且需要在所述GOS中使用的第一USB物理设备定向到第一USB驱动模块; 所述第一USB驱动模块,设置于所述GOS,用于将所述第二定向模块定向过来的所
述第一 USB物理设备加载为第一虚拟USB设备。 上述的系统,其中,还包括 第一判断模块,用于判断所述第一 USB物理设备和第二 USB物理设备是否在所述 GOS中使用,并在所述USB物理设备在所述GOS中使用时,触发所述第一定向模块和第二定 向模块。 上述的系统,其中,述第一定向模块中还包括 事件管理单元,用于将所述第二 USB驱动模块对所述第二虚拟USB设备的卸载结 果通知即插即用管理器,以完成Dock设备卸载事件的处理。 为了实现上述目的,本发明实施例还提供了一种虚拟机系统的通用串行总线设备 的卸载方法,所述通用串行总线设备为通过扩展坞设备接入,且在所述虚拟机系统的客户 操作系统GOS中使用的第二通用串行总线USB物理设备,且所述第二 USB物理设备通过所 述扩展坞设备接入后被宿主操作系统HOS信号定向到所述GOS中的第二 USB驱动模块,所 述方法包括 所述第二 USB驱动模块将所述第二 USB物理设备加载为第二虚拟USB设备;
配置所述第二虚拟USB设备为通过扩展坞接入的设备; 所述GOS基于接收到的通知,针对所述第二虚拟USB设备,产生卸载命令;所述通 知是所述HOS在检测到扩展坞设备卸载请求时发送的; 所述第二 USB驱动模块基于所述卸载命令,卸载所述第二虚拟USB设备。
上述的方法,还包括 所述HOS将通过主板USB接口接入,且需要在所述GOS中使用的第一 USB物理设 备定向到所述GOS中的第一 USB驱动模块; 所述第一 USB驱动模块将所述第一 USB物理设备加载为第一虚拟USB设备。
上述的方法,还包括 所述HOS中的即插即用管理器根据所述第二 USB驱动模块对所述第二虚拟USB设
5备的卸载结果完成所述Dock设备卸载事件的处理。
本发明实施例具有以下的有益效果 本发明实施例中,由于通过Dock设备接入的USB设备被定向到GOS中专用于通过 Dock设备接入的USB设备的驱动模块,并被配置为通过Dock设备接入的USB设备,而在按 下DOCK按钮时,在HOS的通知下,GOS能够与专用于通过Dock设备接入的USB设备的驱动 模块一起执行卸载操作,并自动返回结果,所以不用用户返回GOS去手动卸载,同时还避免 了强行卸载而导致的数据损害问题。


图1为现有的虚拟机系统的结构示意图; 图2为本发明实施例的虚拟机系统的结构示意图; 图3为本发明实施例的方法的结构示意图。
具体实施例方式
本发明实施例的一种虚拟机系统及其通用串行总线设备的卸载方法中,HOS区分
插入需要在GOS中使用的USB设备的接入类型,在USB设备来自Dock设备时,并将该USB
设备定向到GOS中支持Dock USB接口的前端驱动模块,由GOS中支持Dock USB接口的前
端驱动模块加载来自Dock设备的USB设备的驱动,在HOS监测到Dock设备卸载事件时,将
其通知G0S,由GOS的PNP管理器实现支持Dock USB接口的前端驱动模块的卸载和USB设
备的卸载,HOS的PNP管理器根据GOS的卸载结果完成Dock设备卸载事件的处理。 本发明实施例的虚拟机系统如图1所示,包括宿主操作系统HOS、客户操作系统
GOS和主板,所述主板上设置有Dock设备接口和USB设备接口 ,其中,还包括 真实USB驱动模块,设置于H0S,与接入所述主板的USB物理设备交互; 第一判断模块,用于判断所述USB物理设备是否在GOS中使用,并在所述判断结果
指示所述USB物理设备在GOS中使用时触发定向模块; 定向模块,设置于H0S,用于在所述判断结果指示所述USB物理设备在GOS中使用 时,将所述USB物理设备中的通过主板USB接口接入的第一 USB物理设备定向到第一驱动 模块,将通过Dock设备接入的第二 USB物理设备定向到第二驱动模块;
所述第一 USB驱动模块,设置于G0S,用于将所述定向模块定向过来的所述第一 USB物理设备加载为第一虚拟USB设备; 所述第二 USB驱动模块,设置于G0S,用于将所述定向模块定向过来的所述第二 USB物理设备加载为第二虚拟USB设备,并在Dock设备卸载事件触发时,根据PNP管理器的 通知卸载所述第二虚拟USB设备;所述第二虚拟USB设备被配置为通过Dock接入的设备;
事件监控模块,设置于H0S,用于检测所述HOS中的Dock设备卸载事件(Dock设备 卸载请求),并在检测到所述Dock设备卸载事件时通知GOS ; 事件模拟模块,设置于GOS的BIOS系统中,并在接收到所述事件监控模块发送的 通知后,模拟并触发所述扩展坞设备卸载事件;也就是基于事件监控模块发送的通知,针对 所述第二虚拟USB设备,产生卸载命令,该卸载命令就是由事件模拟模块模拟并触发的扩 展坞设备卸载事件;
所述第二 USB驱动模块,基于该卸载命令(也就是Dock设备卸载事件触发时),根 据PNP管理器的通知卸载所述第二虚拟USB设备。 设置于定向模块中的事件管理单元,用于将所述第二 USB驱动模块对所述第二虚 拟USB设备的卸载结果通知PNP (Plug and Play,即插即用)管理器,以完成Dock设备卸载 事件的处理。 其中,事件管理单元获取所述第二 USB驱动模块对所述第二虚拟USB设备的卸载 结果可以是主动获取的方式,也可以是第二 USB驱动模块在Dock设备卸载事件处理结束后 主动通知。 配置所述第二 USB驱动模块上的第二虚拟USB设备为通过Dock接入的设备可以 由事件模拟模块来完成,当然也可以是其它单独设置的模块来完成。
下面对事件管理单元获取卸载结果的过程详细描述如下。 事件模拟模块在GOS完成Dock设备卸载事件后,能够知道G0S的卸载结果,而且 事件模拟模块在Dock设备卸载事件没有完成时,也能知道Dock设备卸载事件什么时候处
理完毕。 而第二 USB驱动模块在其USB设备驱动卸载后,也能够知道卸载结果,但是在USB 设备驱动不能卸载时,就不知道其是不能卸载还是正在卸载过程中,所以所述第二USB驱 动模块在被事件管理单元询问时,需要询问事件模拟模块Dock设备卸载事件是否除了完 成,如果已经完成,则第二 USB驱动模块判断第二虚拟USB设备的卸载结果,并返回,如果没 有完成,则等待Dock设备卸载事件完成后,再判断第二虚拟USB设备的卸载结果,并返回。
页6 下面对本发明实施例的方法进行说明,如图3所示,本发明实施例的方法包括
步骤301,H0S将通过Dock设备接入,且需要在GOS中使用的第二 USB物理设备定 向到GOS中的专用于Dock USB接口的第二驱动模块; 当然,在步骤301之前,USB设备插入到DOCK设备的USB接口上面时,HOS就会自
动加载第一定向模块,生成一个定向模块的实例,由该定向模块来进行定向。 步骤302,所述第二 USB驱动模块将所述第一定向模块定向过来的所述第二 USB设
备加载为第二虚拟USB设备;,本步骤之后,GOS中的应用程序就可以通过该第二驱动模块
和所述第二 USB物理设备进行数据交互; 步骤303, GOS配置所述第二驱动模块上的所述虚拟USB设备为通过Dock接入的
设备;通过在ACPI (Advanced Configuration and Power Interface,高级配置与电源接
口 )中配置将所述虚拟USB设备为通过Dock接入的设备。 步骤304, HOS监测到Dock设备卸载事件,通知GOS ; 步骤305, GOS接收到通知时模拟并触发所述扩展坞设备卸载事件; 步骤306,基于所述模拟的扩展坞设备卸载事件,GOS与所述第二驱动模块共同执
行卸载所述虚拟USB设备的操作; 其中,该共同执行卸载所述虚拟USB设备的操作具体如下所述 如果虚拟USB设备正在使用,则直接提示无法卸载,卸载结果为失败,否则首先由
第二驱动模块卸载虚拟USB设备,然后由GOS卸载第二驱动模块,卸载结果为成功。 步骤307, HOS根据所述卸载所述虚拟USB设备的操作的卸载结果完成Dock设备卸载事件的处理。 在卸载所述虚拟USB设备的操作的卸载结果为卸载成功时,还需要由HOS卸载定 向模块。 在此,该卸载所述虚拟USB设备的操作的卸载结果可以由GOS主动通知HOS,也可 以由HOS去主动获取。 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种虚拟机系统,包括宿主操作系统HOS和客户操作系统GOS,其特征在于,所述虚拟机系统还包括第二通用串行总线USB驱动模块,设置于所述GOS,所述第二USB驱动模块包括有一卸载单元;第一定向模块,设置于所述HOS,用于将第二USB物理设备定向到所述第二USB驱动模块,所述第二USB物理设备为通过扩展坞设备接入且需要在所述GOS中使用的USB物理设备;所述第二USB驱动模块,用于将所述第一定向模块定向过来的所述第二USB物理设备加载为第二虚拟USB设备,所述第二虚拟USB设备为通过扩展坞设备接入的设备;事件监控模块,设置于所述HOS,用于在检测到在有扩展坞设备卸载请求时,向所述GOS发送一通知;事件模拟模块,设置于所述GOS,基于所述通知,针对所述第二虚拟USB设备,产生卸载命令;其中,所述卸载单元用于基于所述卸载命令去卸载所述第二虚拟USB设备。
2. 根据权利要求l所述的系统,其特征在于,还包括第二定向模块,设置于所述HOS,用于将所述USB物理设备中通过主板USB接口接入,且 需要在所述GOS中使用的第一 USB物理设备定向到第一 USB驱动模块;所述第一 USB驱动模块,设置于所述GOS,用于将所述第二定向模块定向过来的所述第 一 USB物理设备加载为第一虚拟USB设备。
3. 根据权利要求2所述的系统,其特征在于,还包括第一判断模块,用于判断所述第一 USB物理设备和第二 USB物理设备是否在所述GOS 中使用,并在所述USB物理设备在所述GOS中使用时,触发所述第一定向模块和第二定向模 块。
4. 根据权利要求1所述的系统,其特征在于,所述第一定向模块中还包括 事件管理单元,用于将所述第二 USB驱动模块对所述第二虚拟USB设备的卸载结果通知即插即用管理器,以完成所述扩展坞设备卸载请求的处理。
5. —种虚拟机系统的通用串行总线设备的卸载方法,所述通用串行总线设备为通过扩 展坞设备接入,且在所述虚拟机系统的客户操作系统GOS中使用的第二通用串行总线USB 物理设备,且所述第二 USB物理设备通过所述扩展坞设备接入后,被宿主操作系统HOS定向 到所述GOS中的第二 USB驱动模块,所述方法包括所述第二 USB驱动模块将所述第二 USB物理设备加载为第二虚拟USB设备; 配置所述第二虚拟USB设备为通过扩展坞接入的设备;所述GOS基于接收到的通知,针对所述第二虚拟USB设备,产生卸载命令;所述通知是 所述HOS在检测到扩展坞设备卸载请求时发送的;所述第二 USB驱动模块基于所述卸载命令,卸载所述第二虚拟USB设备。
6. 根据权利要求5所述的方法,其特征在于,还包括所述HOS将通过主板USB接口接入,且需要在所述GOS中使用的第一 USB物理设备定 向到所述GOS中的第一 USB驱动模块;所述第一 USB驱动模块将所述第一 USB物理设备加载为第一虚拟USB设备。
7.根据权利要求5或6所述的方法,其特征在于,还包括所述HOS中的即插即用管理器根据所述第二 USB驱动模块对所述第二虚拟USB设备的 卸载结果完成所述扩展坞设备卸载请求的处理。
全文摘要
本发明提供了一种虚拟机系统及其通用串行总线设备的卸载方法,该系统包括宿主操作系统HOS和客户操作系统GOS,第二USB驱动模块,包括一卸载单元;第一定向模块,将第二USB物理设备定向到第二USB驱动模块,第二USB物理设备为通过扩展坞设备接入且需要在GOS中使用的设备;第二USB驱动模块,将第一定向模块定向过来的第二USB物理设备加载为通过扩展坞设备接入的第二虚拟USB设备;事件监控模块,在检测到在有扩展坞设备卸载请求时,向GOS发送一通知;事件模拟模块,基于通知,针对所述第二虚拟USB设备,产生卸载命令,由卸载单元基于卸载命令去卸载第二虚拟USB设备。本发明实现了虚拟机系统中扩展坞设备卸载事件的自动处理。
文档编号G06F9/445GK101751274SQ20081024017
公开日2010年6月23日 申请日期2008年12月18日 优先权日2008年12月18日
发明者刘春梅, 席振新, 陈军, 陈博 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1