著录项信息
专利名称 | 一种计算机及管理硬件设备的方法 |
申请号 | CN200810247318.4 | 申请日期 | 2008-12-29 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2010-07-07 | 公开/公告号 | CN101770389A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/455 | IPC分类号 | G;0;6;F;9;/;4;5;5;;;G;0;6;F;9;/;4;6;;;G;0;6;F;1;3;/;1;0查看分类表>
|
申请人 | 北京联想软件有限公司 | 申请人地址 | 北京市海淀区信息产业基地创业路6号4层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京联想软件有限公司 | 当前权利人 | 北京联想软件有限公司 |
发明人 | 陈博;席振新;陈军;刘春梅 |
代理机构 | 北京银龙知识产权代理有限公司 | 代理人 | 许静 |
摘要
本发明提供一种计算机及管理硬件设备的方法,其中计算机包括:硬件平台;第一操作模块,安装有第一操作系统;虚拟机管理模块,安装有虚拟机管理器;第二操作模块,安装有第二操作系统,第二操作系统安装在虚拟机管理器上;第一操作模块包括后端驱动控制模块,用于在检测到有卸载硬件设备的请求时,产生第一触发信号;第二操作模块包括前端驱动控制模块,用于获取所述第一触发信号,并根据第一触发信号获取第二操作系统对硬件设备的虚拟硬件设备的使用状态,产生使用状态结果;当使用状态结果表明第二操作系统正在使用虚拟硬件设备时,通知后端驱动控制模块对硬件设备不进行卸载。本发明保证能根据第二操作系统对设备的使用状态将设备安全地移除。
1.一种管理硬件设备的装置,其特征在于,包括:
获取第一操作系统根据卸载硬件设备的请求而产生的第一触发信号的第一模块;
根据所述第一触发信号获取第二操作系统对所述硬件设备的虚拟硬件设备的使用状态,产生使用状态结果的第二模块;
当所述使用状态结果表明所述第二操作系统正在使用所述虚拟硬件设备时,产生一通知的第三模块;
发送所述通知到所述第一操作系统的第四模块,使所述第一操作系统接收到所述通知后继续使用所述硬件设备;
在所述使用状态结果表明所述虚拟硬件设备空闲时,对所述虚拟硬件设备进行卸载的第五模块;
对所述虚拟硬件设备卸载成功后,产生一通知,并发送到所述第一操作系统的第六模块,使所述第一操作系统在接收到所述通知后对所述硬件设备进行卸载。
2.一种管理硬件设备的方法,应用于虚拟机系统,其特征在于,包括:
获取第一操作系统根据卸载硬件设备的请求而产生的第一触发信号;
根据所述第一触发信号获取第二操作系统对所述硬件设备的虚拟硬件设备的使用状态,产生使用状态结果;
当所述使用状态结果表明所述第二操作系统正在使用所述虚拟硬件设备时,产生一通知;
发送所述通知到所述第一操作系统;
所述第一操作系统接收到所述通知后继续使用所述硬件设备;
在所述使用状态结果表明所述虚拟硬件设备空闲时,对所述虚拟硬件设备进行卸载;
对所述虚拟硬件设备卸载成功后,产生一通知,并发送到所述第一操作系统,所述第一操作系统在接收到所述通知后对所述硬件设备进行卸载。
3.根据权利要求2所述的方法,其特征在于,所述对所述虚拟硬件设备进行卸载的步骤具体为:
通过调用API函数对所述虚拟硬件设备进行卸载。
4.一种计算机,其特征在于,包括如权利要求1所述的管理硬件设备的装置,所述计算机还包括:安装有第一操作系统的第一操作模块和安装有第二操作系统的第二操作模块;
所述第一操作模块包括:
后端驱动控制模块,用于在检测到有卸载硬件设备的请求时,产生第一触发信号;
所述第二操作模块包括:
前端驱动控制模块,用于通过所述管理硬件设备的装置获取所述第一触发信号,并根据所述第一触发信号获取所述第二操作系统对所述硬件设备的虚拟硬件设备的使用状态,产生使用状态结果;当所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,生成一通知,并通过所述管理硬件设备的装置发送到所述第一操作系统,使所述第一操作系统接收到所述通知后,继续使用所述硬件设备。
5.根据权利要求4所述的计算机,其特征在于,所述前端驱动控制模块包括:
前端驱动模块,用于通过所述管理硬件设备的装置获取所述第一触发信号,并根据所述第一触发信号产生对所述虚拟硬件设备的卸载请求;
前端应用管理模块,用于根据所述卸载请求,获取所述第二操作系统对所述虚拟硬件设备的使用状态,产生使用状态结果;当所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,产生一通知,并通过所述管理硬件设备的装置发送到所述第一操作系统,所述第一操作系统接收到所述通知后,继续使用所述硬件设备。
6.根据权利要求5所述的计算机,其特征在于,所述前端应用管理模块包括:
获取模块,用于获取所述第二操作系统对所述虚拟硬件设备的使用状态,产生使用状态结果;
第一处理模块,用于在所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,产生一通知,并通过所述管理硬件设备的装置发送到所述第一操作系统,使所述第一操作系统接收到所述通知后继续使用所述硬件设备;
第二处理模块,用于在所述使用状态结果表明所述虚拟硬件设备空闲时,对所述虚拟硬件设备进行卸载,卸载成功后,产生一通知,并通过所述管理硬件设备的装置发送到所述第一操作系统,所述第一操作系统接收到所述通知后对所述硬件设备进行卸载。
7.根据权利要求6所述的计算机,其特征在于,所述第二处理模块具体为:
API函数处理模块,用于在所述使用状态结果表明所述虚拟硬件设备空闲时,通过调用API函数对所述虚拟硬件设备进行卸载,卸载成功后,产生一通知,并通过所述管理硬件设备的装置发送到所述第一操作系统,使所述第一操作系统接收到所述通知后对所述硬件设备进行卸载。
8.根据权利要求4所述的计算机,其特征在于,所述后端驱动控制模块包括:设备管理器,用于对所述硬件设备执行卸载操作。
9.根据权利要求4-8任一项所述的计算机,其特征在于,所述计算机还包括:具有外插硬件设备的接口,所述硬件设备为外插硬件设备;
所述后端驱动控制模块还包括:
第一驱动加载模块,用于在检测到有外插硬件设备插入所述外插硬件设备的接口时,加载所述外插硬件设备的驱动,产生第二触发信号;
所述前端驱动控制模块还包括:
第二驱动加载模块,用于根据所述第二触发信号加载所述外插硬件设备的虚拟外插硬件设备的驱动。
一种计算机及管理硬件设备的方法\n技术领域\n[0001] 本发明涉及计算机领域,特别是指一种计算机及管理硬件设备的方法。\n背景技术\n[0002] 在计算机领域的虚拟机技术领域中,如图1所示,虚拟机系统通常包括安装在计算机硬件平台上的虚拟机管理器(如Sun的Virtual Box)以及多个操作系统,其中一个操作系统为Host OS,即主操作系统,其余为Guest OS,即客户操作系统,在虚拟机环境下,用户经常会用到硬件设备尤其是各种外插设备的虚拟化,如硬件平台中外插一个USB设备,该USB设备可以被Host OS直接访问,而Guest OS访问的则是该USB设备的虚拟USB设备,在Guest OS中虚拟一个USB控制器,当外插USB设备需要切换到Guest OS时,就需要把该USB设备连接到虚拟USB控制器上,Guest OS就会自动发现该USB设备,并加载该USB设备的驱动。\n[0003] 然而,当用户在Host OS工作时,如果需要立即移除该USB设备,如点击“安全弹出设备”,或者按下笔记本DOCK(扩展坞)设备上的UNDOCK按钮,不管Guest OS是否正在使用该虚拟USB设备,Host OS都不会提示该设备正在被使用,而是直接硬卸载,这样如果Guest OS正在对该设备的操作结果都没有保存,严重时,会引起Guest OS对该虚拟USB设备的操作失败或者死锁。\n[0004] 当然,为了保证在Host OS中移除该设备时,不致出现上述问题,可以先切换到Guest OS中,将该虚拟USB设备的驱动卸载,然后再切换到Host OS,再移除该USB设备,但这样用户每次在移除外插设备时,都需要在Host OS和Guest OS之间反复切换,非常不方便。\n[0005] 发明人在实现本发明的过程中,发现现有技术中至少存在如下问题:\n[0006] 在Host OS中需要移除硬件设备时,都是在Host OS中硬卸载,这样常常造成Guest OS对该硬件设备的虚拟硬件设备操作结果没有保存,严重时会导致Guest OS的操作失败或者死锁。\n发明内容\n[0007] 本发明要解决的技术问题是提供一种计算机及管理硬件设备的方法,使第一操作系统可以根据第二操作系统对虚拟硬件设备的使用状态结果对硬件设备进行移除操作,减少用户在第一操作系统和第二操作系统之间的切换以及在第二操作系统中手动卸载虚拟硬件设备的操作,保证在第一操作系统中能够根据该第二操作系统对虚拟硬件设备的使用状态安全地将硬件设备移除,提高虚拟机的易用性。\n[0008] 为解决上述技术问题,本发明的实施例提供技术方案如下:\n[0009] 一方面,提供一种计算机,包括:\n[0010] 硬件平台,具有硬件设备;\n[0011] 第一操作模块,位于所述硬件平台之上,安装有第一操作系统;\n[0012] 虚拟机管理模块,安装有虚拟机管理器;\n[0013] 第二操作模块,安装有第二操作系统,所述第二操作系统安装在所述虚拟机管理器上;所述第一操作模块包括:\n[0014] 后端驱动控制模块,用于在检测到有卸载所述硬件设备的请求时,产生第一触发信号;\n[0015] 所述第二操作模块包括:\n[0016] 前端驱动控制模块,用于获取所述第一触发信号,并根据所述第一触发信号获取所述第二操作系统对所述硬件设备的虚拟硬件设备的使用状态,产生使用状态结果;当所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,产生一通知,并发送到所述第一操作系统,所述第一操作系统在接收到所述通知后继续使用所述硬件设备。\n[0017] 优选的,所述前端驱动控制模块包括:\n[0018] 前端驱动模块,用于获取所述第一触发信号,并根据所述第一触发信号产生对所述虚拟硬件设备的卸载请求;\n[0019] 前端应用管理模块,用于根据所述卸载请求,获取所述第二操作系统对所述虚拟硬件设备的使用状态,产生使用状态结果;当所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,产生一通知,并发送到所述第一操作系统,所述第一操作系统接收到所述通知后继续使用所述硬件设备。\n[0020] 优选的,所述前端应用管理模块包括:\n[0021] 获取模块,用于获取所述第二操作系统对所述虚拟硬件设备的使用状态,产生使用状态结果;\n[0022] 第一处理模块,用于在所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,产生一通知,并发送到所述第一操作系统,所述第一操作系统在接收到所述通知后继续使用所述硬件设备;\n[0023] 第二处理模块,用于在所述使用状态结果表明所述虚拟硬件设备空闲时,对所述虚拟硬件设备进行卸载,卸载成功后,产生一通知,并发送到所述第一操作系统,所述第一操作系统接收到所述通知后对所述硬件设备进行卸载。\n[0024] 优选的,所述第二处理模块具体为:\n[0025] API函数处理模块,用于在所述使用状态结果表明所述虚拟硬件设备空闲时,通过调用API函数对所述虚拟硬件设备进行卸载,卸载成功后,产生一通知,并发送到所述第一操作系统,所述第一操作系统接收到所述通知后对所述硬件设备进行卸载。\n[0026] 优选的,所述后端驱动控制模块包括:设备管理器,用于对所述硬件设备执行卸载操作。\n[0027] 优选的,所述硬件平台具有外插硬件设备的接口,所述硬件设备为外插硬件设备;\n[0028] 所述后端驱动控制模块还包括:\n[0029] 第一驱动加载模块,用于在检测到有外插硬件设备插入所述外插硬件设备的接口时,加载所述外插硬件设备的驱动,产生第二触发信号;\n[0030] 所述前端驱动控制模块还包括:\n[0031] 第二驱动加载模块,用于根据所述第二触发信号加载所述外插硬件设备的虚拟外插硬件设备的驱动。\n[0032] 优选的,所述虚拟机管理模块和所述第二操作模块均安装在所述第一操作模块中。\n[0033] 本发明的实施例还提供一种管理硬件设备的方法,应用于虚拟机系统,包括:\n[0034] 获取第一操作系统根据移除硬件设备的请求而产生的第一触发信号;\n[0035] 根据所述第一触发信号获取第二操作系统对所述硬件设备的虚拟硬件设备的使用状态,产生使用状态结果;\n[0036] 所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,产生一通知;\n[0037] 发送所述通知到所述第一操作系统;\n[0038] 所述第一操作系统接收到所述通知后继续使用所述硬件设备。\n[0039] 优选的,上述方法还包括:\n[0040] 在所述使用状态结果表明所述虚拟硬件设备空闲时,对所述虚拟硬件设备进行卸载;\n[0041] 对所述虚拟硬件设备卸载成功后,产生一通知,并发送到所述第一操作系统,所述第一操作系统接收到所述通知后对所述硬件设备进行卸载。\n[0042] 优选的,所述对所述虚拟硬件设备进行卸载的步骤具体为:\n[0043] 通过调用API函数对所述虚拟硬件设备进行卸载。\n[0044] 本发明的实施例具有以下有益效果:\n[0045] 上述方案通过第一操作模块中的后端驱动控制模块,将根据第一操作系统中移除硬件设备的请求而产生的触发信号传输到第二操作系统,第二操作系统根据当前对该硬件设备的虚拟硬件设备的使用状态,产生使用状态结果,当使用状态结果表明该虚拟硬件设备使用时,通知第一操作系统不能移除该硬件设备,继续使用,使得第二操作系统对虚拟硬件设备的操作在虚拟硬件设备被卸载之前能够得到保存,避免由于第一操作系统对该硬件设备的硬卸载而致第二操作系统的操作失败或者死锁;同时减少用户在第一操作系统和第二操作系统之间的切换以及在第二操作系统中手动卸载虚拟硬件设备的操作,保证在第一操作系统中能够根据该第二操作系统对该虚拟硬件设备的使用状态安全地将硬件设备移除,提高虚拟机的易用性。\n附图说明\n[0046] 图1为现有计算机虚拟架构示意图;\n[0047] 图2为本发明的实施例计算机虚拟架构示意图;\n[0048] 图3为图2所示计算机虚拟架构中的前端驱动控制模块具体结构示意图;\n[0049] 图4为图3所示计算机虚拟架构中的前端应用管理模块具体结构示意图;\n[0050] 图5为图2所示计算机虚拟架构的另一具体结构示意图;\n[0051] 图6为图5所示计算机的第二处理模块具体结构示意图;\n[0052] 图7为图2所示计算机的又一具体架构示意图;\n[0053] 图8为图2所示计算机的又一具体架构示意图;\n[0054] 图9为本发明的实施例管理硬件设备的方法流程示意图。\n具体实施方式\n[0055] 为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。\n[0056] 本发明的实施例针对现有技术中,当第二操作系统使用一硬件设备的虚拟硬件设备时,如果第一操作系统需要卸载该硬件设备,直接在第一操作系统中移除该硬件设备,相对于第二操作系统来讲,都是硬卸载,此时第二操作系统正在对该虚拟硬件设备执行操作,如打开该虚拟硬件设备上的文档或者修改文档,该硬件设备被移除,使得第二操作系统当前所打开的文档不能保存,严重时导致第二操作系统操作失败或者死锁的问题,提供一种计算机及管理硬件设备的方法。\n[0057] 如图2所示,本发明的实施例计算机,包括:\n[0058] 硬件平台,具有硬件设备;该硬件设备既可以包括计算机通常所包括的基本设备,如主板、声卡、显卡、内存、CPU、硬盘、光驱等,当然还可以包括外插设备,如可以是插入主板上的PCI插槽的PCI设备,可以插入计算机USB接口的USB外插设备,串口设备,并口设备等;\n[0059] 第一操作模块,位于所述硬件平台之上,安装有第一操作系统;该第一操作系统可以为Host OS,如Windows系统,Windows XP系统,VISTA系统,Unix系统等;\n[0060] 虚拟机管理模块,安装有虚拟机管理器VMM;\n[0061] 第二操作模块,安装有第二操作系统,所述第二操作系统安装在所述虚拟机管理器上;该第二操作系统可以为Guest OS,如Windows系统,Windows XP系统、VISTA系统、Unix系统等;该第二操作系统对底层硬件设备的访问,都是基于虚拟机管理器为该第二操作系统虚拟的硬件设备的访问,真实的底层硬件设备被第一操作系统直接使用;其中,[0062] 所述第一操作模块包括:\n[0063] 后端驱动控制模块,用于在检测到有卸载所述硬件设备的请求时,产生第一触发信号;\n[0064] 所述第二操作模块包括:\n[0065] 前端驱动控制模块,用于获取所述第一触发信号,并根据所述第一触发信号获取所述第二操作系统对所述硬件设备的虚拟硬件设备的使用状态,产生使用状态结果;当所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,产生一通知,并发送到所述第一操作系统,所述第一操作系统接收到所述通知后继续使用所述硬件设备。\n[0066] 该实施例通过在第一操作模块中增加后端驱动控制模块,该后端驱动控制模块在第一操作系统中检测到有移除某一硬件设备的请求时,会产生第一触发信号,该第一触发信号通过虚拟机管理器被传输到第二操作系统中,该第二操作模块也同样增加有前端驱动控制模块,该前端驱动控制模块在接收到第一触发信号后,会根据当前第二操作系统对该硬件设备的虚拟硬件设备的使用状态产生使用状态结果,该使用状态如可以是:虚拟硬件设备正在被使用;也可以是,该虚拟硬件设备空闲;当使用状态结果表明虚拟硬件设备正在被使用,不能卸载,则该第一操作系统也停止对该硬件设备的移除操作,继续使用;如果使用状态表明虚拟硬件设备空闲,可以卸载,该第二操作系统对该虚拟硬件设备执行卸载,成功后,则该第一操作系统就可以对该硬件设备执行移除操作,这样使硬件设备可以安全地被卸载,避免了第二操作系统正在使用该虚拟硬件设备时,该硬件设备被第一操作系统移除了,导致第二操作系统操作失败或死锁的问题。\n[0067] 如图3所示,在上述图2所示计算机虚拟架构的基础上,上述前端驱动控制模块具体包括:\n[0068] 前端驱动模块,用于获取所述第一触发信号,并根据所述第一触发信号产生对所述虚拟硬件设备的卸载请求;该前端驱动模块负责第二操作系统所使用的虚拟硬件设备的驱动管理,如可以产生卸载虚拟硬件设备的卸载请求等;\n[0069] 前端应用管理模块,用于根据所述卸载请求,获取所述第二操作系统对所述虚拟硬件设备的使用状态,产生使用状态结果,当所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,产生一通知,并发送到所述第一操作系统,所述第一操作系统接收到所述通知后对所述硬件设备不进行卸载,继续使用。\n[0070] 该前端应用管理模块在接收到前端驱动模块的对虚拟硬件设备的卸载请求时,尝试去删除该虚拟硬件设备,此时,若该虚拟硬件设备正在被使用,则该前端应用管理模块就会返回一个不可卸载的通知,如:虚拟设备正在被使用,不能卸载,请等待;若该虚拟硬件设备空闲,则该前端应用管理模块就会将该虚拟硬件设备从第二操作系统中删除,并返回一个可以卸载的通知,如:可以卸载,并卸载成功。\n[0071] 第一操作模块中的后端驱动控制模块根据该前端应用管理返回的通知对底层的硬件设备执行相应的移除操作,如使用状态为:正在使用,不能卸载,则该第一操作模块的第一操作系统就会停止对该硬件设备的移除操作;如使用状态为:设备空闲,可以卸载,并卸载成功,则该第一操作系统就会继续执行移除该硬件设备的操作。使该硬件设备可以安全地被移除,不会出现第二操作系统对虚拟硬件设备操作失败或者死锁的现象。\n[0072] 当然上述前端驱动模块在接收到第一触发信号后,还可以判断该前端应用管理模块是否存在,若不存在,则假设分配给该第二操作系统的虚拟硬件设备没有被正在使用,则直接向后端驱动控制模块返回可以卸载的消息,若存在,则假设分配给该第二操作系统的虚拟硬件设备有可能正在被使用,则产生一卸载该虚拟硬件设备的请求,发送给前端应用管理模块,并等待前端应用管理模块对该虚拟硬件设备的返回结果。\n[0073] 如图4所示,在上述实施例的基础上,上述前端应用管理模块包括:\n[0074] 获取模块,用于获取所述第二操作系统对所述虚拟硬件设备的使用状态,产生使用状态结果;该使用状态为,如该虚拟硬件设备正在被使用或者空闲;\n[0075] 第一处理模块,用于在所述使用状态结果表明所述第二操作系统正在使用所述虚拟硬件设备时,产生一通知,并发送到所述第一操作系统,所述第一操作系统接收到所述通知后对所述硬件设备不进行卸载,继续使用所述硬件设备;\n[0076] 第二处理模块,用于在所述使用状态结果表明所述虚拟硬件设备空闲时,对所述虚拟硬件设备进行卸载,卸载成功后,产生一通知,并发送到所述第一操作系统,所述第一操作系统接收到所述通知后可以对所述硬件设备进行卸载。\n[0077] 如图5所示,所述第二处理模块具体为:\n[0078] API函数处理模块,用于在所述使用状态结果表明所述虚拟硬件设备空闲时,通过调用API函数对所述虚拟硬件设备进行卸载,卸载成功后通知所述第一操作系统可以对所述硬件设备进行卸载。如该第二操作系统为Windows操作系统时,该API函数处理模块,通过调用Windows API(ApplicationProgramming Interface,应用程序接口),安全卸载该虚拟硬件设备的驱动以及Windows的系统文件驱动以及底层设备的内核驱动等。\n[0079] 如图6所示,在上述实施例的基础上,上述后端驱动控制模块包括:\n[0080] 设备管理器,用于对所述硬件设备执行相应的操作;\n[0081] 如当上述硬件平台具有外插硬件设备的接口,所述硬件设备为外插硬件设备;则该设备管理器可以为:如PnP(即插即用)设备管理器;\n[0082] 因此,如图7所示,上述后端驱动控制模块还包括:\n[0083] 第一驱动加载模块,用于在检测到有外插硬件设备插入所述外插硬件设备的接口时,加载所述外插硬件设备的驱动,产生第二触发信号;\n[0084] 上述前端驱动控制模块还包括:\n[0085] 第二驱动加载模块,用于根据所述第二触发信号加载所述外插硬件设备的虚拟外插硬件设备的驱动。\n[0086] 如图8所示,本发明的实施例的计算机,其中,所述虚拟机管理模块和所述第二操作模块均安装在所述第一操作模块中。也就是说,该第二操作系统运行虚拟机管理器上,虚拟机管理器运行在第一操作系统中,即通常Type II类型的虚拟计算机;当然也可以应用到Type I类型的虚拟计算机中,此时,第一操作模块,第二操作模块均安装在虚拟管理模块之上,该虚拟管理模块安装在硬件平台之上,也就是说,第一操作系统和第二操作系统均运行在虚拟机管理器上,该虚拟机管理器运行在硬件平台上。\n[0087] 另外,上述所有实施例中,第一操作系统和第二操作系统为描述方便而所用,并不用于限定是Host OS或者是Guest OS,上述实施例中,以第一操作系统为Host OS,第二操作系统为Guest OS为例进行描述;对于第一操作系统是Guest OS,第二操作系统为Host OS也同样适用,对两个操作均为Guest OS也同样适用,即在第一Guest OS中安装后端驱动控制模块,在第二Guest OS中安装前端驱动控制模块,对设备进行前后端安全联动卸载。\n[0088] 综上,本发明的实施例通过在Host OS设置后端驱动控制模块,当GuestOS正在使用虚拟硬件设备如USB设备时候,如果后端驱动控制模块需要卸载该USB设备,现有技术没有这种通信机制,而本发明的上述实施例的后端驱动控制模块将卸载该USB设备的请求,先传输到Guest OS,Guest OS根据当前对该USB设备的使用状态,根据该使用状态通知第一操作系统是否对该USB设备执行卸载或者移除操作,使得Guest OS对USB设备的操作结果能够得到保存,避免由于Host OS对该USB设备的硬卸载而致Guest OS的操作失败或者死锁;\n[0089] 另外,用户在Host OS环境中移除分配给Guest OS使用但Guest OS中未使用的USB设备,即空闲的USB设备,能够让用户较少切换到Guest OS和在Guest OS中手动卸载USB设备的两个操作,提高虚拟机的用户使用性。\n[0090] 如图9所示,本发明的实施例还提供一种管理硬件设备的方法,应用于虚拟机系统,特别是Type II虚拟机系统,该虚拟机系统中,第二操作系统安装在虚拟机管理器中,第二操作系统和虚拟机管理器均运行在第一操作系统中,该方法包括:\n[0091] 步骤S91,获取第一操作系统根据移除硬件设备的请求而产生的第一触发信号,该第一操作系统可以为如虚拟计算机中的Host OS;\n[0092] 步骤S92,根据所述第一触发信号获取第二操作系统对所述硬件设备的虚拟硬件设备的使用状态,产生使用状态结果;该第二操作系统可以为如虚拟计算机中的Guest OS;\n[0093] 步骤S93,所述使用状态结果表明所述第二操作系统使用所述虚拟硬件设备时,产生一通知,并发送所述通知到所述第一操作系统,所述第一操作系统接收到所述通知后对所述硬件设备不进行卸载,继续使用;具体来讲,如果使用状态结果为:正在使用,不能卸载,则通知该第一操作系统也就停止对该硬件设备的移除操作;如果使用状态为:设备空闲,可以卸载并卸载成功,则通知第一操作也可以对该硬件设备执行移除操作。其中,上述方法还可包括:\n[0094] S94,在所述使用状态结果表明所述虚拟硬件设备空闲时,对所述虚拟硬件设备进行卸载;\n[0095] S95,对所述虚拟硬件设备卸载成功后,产生一通知,并发送所述通知到所述第一操作系统,所述第一操作系统接收到所述通知后,可以对所述硬件设备进行卸载。\n[0096] 而上述S94具体为:\n[0097] 在所述使用状态结果表明所述虚拟硬件设备空闲时,通过调用API函数对所述虚拟硬件设备进行卸载。\n[0098] 上述方法实施例通过将根据第一操作系统中卸载一硬件设备的请求而产生的第一触发信号,先传输到Guest OS,Guest OS根据当前对该硬件设备的虚拟硬件设备的使用状态,通知Host OS根据该Guest OS对该虚拟硬件设备的使用状态,对该硬件设备执行卸载或者移除操作,使得Guest OS对虚拟硬件设备的操作结果能够保存,避免由于Host OS对该硬件设备的硬卸载而致Guest OS的操作失败或者死锁;\n[0099] 另外,用户在Host OS环境中移除分配给Guest OS使用,但Guest OS中未使用的硬件设备,即空闲的硬件设备,能够让用户较少切换到Guest OS和在Guest OS中手动卸载虚拟硬件设备的两个操作,提高虚拟机的用户使用性。\n[0100] 上述所有实施例中,第一操作系统和第二操作系统为描述方便而所用,并不用于限定是Host OS或者是Guest OS,上述实施例中,以第一操作系统为Host OS,第二操作系统为Guest OS为例进行描述;对于第一操作系统是GuestOS,第二操作系统为Host OS也同样适用,对两个操作均为Guest OS也同样适用,即在第一Guest OS中产生第一触发信号,在第二Guest OS中检测对虚拟硬件设备的使用状态,实现对设备进行前后端安全联动卸载。\n[0101] 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
法律信息
- 2014-02-12
- 2011-01-26
实质审查的生效
IPC(主分类): G06F 9/455
专利申请号: 200810247318.4
申请日: 2008.12.29
- 2010-07-07
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-12-26
|
2006-06-23
| | |
2
| |
2007-08-15
|
2007-03-13
| | |
3
| |
2006-04-05
|
2004-02-10
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |