多操作系统之间切换显示的控制方法和装置转让专利

申请号 : CN200810055940.5

文献号 : CN101477476B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王碧波刘永锋刘春梅陈军王竹强

申请人 : 联想(北京)有限公司

摘要 :

本发明提供了多操作系统之间切换显示的控制方法和计算机系统。其中,所述方法包括:检测到需要将当前显示的客户操作系统由第一客户操作系统切换为第二客户操作系统;判断所述第一客户操作系统是否满足预定的切换条件,在满足预定的切换条件时,,将当前显示的客户操作系统从所述第一客户操作系统切换到所述第二客户操作系统;否则,禁止进行当前显示的客户操作系统的切换。按照本发明所述方法及计算机系统,可以避免在对多操作系统之间进行切换显示的过程中出现画面花屏或系统崩溃的情况。

权利要求 :

1.一种多操作系统之间切换显示的控制方法,其特征在于,包括:

检测到需要将当前显示的客户操作系统由第一客户操作系统切换为第二客户操作系统;

判断所述第一客户操作系统是否满足预定的切换条件,在满足预定的切换条件时,将当前显示的客户操作系统从所述第一客户操作系统切换到所述第二客户操作系统;否则,禁止进行当前显示的客户操作系统的切换;

其中,在所述第一、第二客户操作系统分别根据各自的设备驱动程序使用显示卡的不同的显示资源时,所述预定的切换条件为:所述第一客户操作系统的设备驱动程序的版本正确,且所述第一客户操作系统的设备驱动程序处于正常工作状态;或者,在所述第一、第二客户操作系统共用部分显示资源时,所述预定的切换条件为:所述第一客户操作系统当前没有运行第一类型程序,所述第一类型程序在运行时将占用所述第一、第二客户操作系统共用的显示资源。

2.如权利要求1所述的方法,其特征在于,所述显示资源包括显存资源和显示通道。

3.如权利要求1所述的方法,其特征在于,在所述第一、第二客户操作系统分别根据各自的设备驱动程序使用显示卡的不同的显示资源时,在所述将当前显示的客户操作系统从所述第一客户操作系统切换到所述第二客户操作系统后还包括:调用所述第一客户操作系统的设备管理程序,打开所述第一客户操作系统的设备驱动程序的属性设置界面;

通过所述属性设置界面设置禁止更新属性,以禁止对所述第一客户操作系统的设备驱动程序的更新操作。

4.如权利要求1所述的方法,其特征在于,在所述第一、第二客户操作系统共用部分显示资源时,在所述在满足预定切换条件时,所述方法还包括:将所述第一客户操作系统的第一系统功能设置为禁用状态,以禁止所述第一客户操作系统使用第一系统功能,其中,所述第一系统功能在被所述第一客户操作系统在后台使用时,将破坏所述第二客户操作系统在前台的正常显示。

5.如权利要求4所述的方法,其特征在于,所述第一系统功能包括:屏幕保护功能、显示器定时电源管理功能、三维显示加速功能或对显示输出端口的配置功能。

6.如权利要求1所述的方法,其特征在于,在所述第一、第二客户操作系统共用部分显示资源时,在所述在满足预定切换条件时,所述方法还包括:所述第一客户操作系统升起切换保护窗口。

7.如权利要求6所述的方法,其特征在于,在所述将当前显示的客户操作系统从所述第一客户操作系统切换到所述第二客户操作系统后还包括:禁止所述第一客户操作系统升起所述切换保护窗口外的其他窗口。

8.一种多操作系统之间切换显示的控制装置,其特征在于,包括:

检测单元,用于检测到需要将当前显示的客户操作系统由第一客户操作系统切换为第二客户操作系统;

判断单元,用于判断所述第一客户操作系统是否满足预定的切换条件;

处理单元,用于在满足预定的切换条件时,将当前显示的客户操作系统从所述第一客户操作系统切换到所述第二客户操作系统;否则,禁止进行当前显示的客户操作系统的切换;

其中,在所述第一、第二客户操作系统分别根据各自的设备驱动程序使用显示卡的不同的显示资源时,所述预定的切换条件为:所述第一客户操作系统的设备驱动程序的版本正确,且所述第一客户操作系统的设备驱动程序处于正常工作状态;或者,在所述第一、第二客户操作系统共用部分显示资源时,所述预定的切换条件为:所述第一客户操作系统当前没有运行第一类型程序,所述第一类型程序在运行时将占用所述第一、第二客户操作系统共用的显示资源。

9.如权利要求8所述的控制装置,其特征在于,所述显示资源包括显存资源和显示通道。

10.如权利要求8所述的控制装置,其特征在于,在所述第一、第二客户操作系统分别根据各自的设备驱动程序使用显示卡的不同的显示资源时,所述处理单元,在所述将当前显示的客户操作系统从所述第一客户操作系统切换到所述第二客户操作系统后,还调用所述第一客户操作系统的设备管理程序,打开所述第一客户操作系统的设备驱动程序的属性设置界面;通过所述属性设置界面设置禁止更新属性,以禁止对所述第一客户操作系统的设备驱动程序的更新操作。

11.如权利要求8所述的控制装置,其特征在于,在所述第一、第二客户操作系统共用部分显示资源时,在所述在满足预定切换条件时,所述处理单元还将所述第一客户操作系统的第一系统功能设置为禁用状态,以禁止所述第一客户操作系统使用第一系统功能,其中,所述第一系统功能在被所述第一客户操作系统在后台使用时,将破坏所述第二客户操作系统在前台的正常显示。

12.如权利要求11所述的控制装置,其特征在于,所述第一系统功能包括:屏幕保护功能、显示器定时电源管理功能、三维显示加速功能或对显示输出端口的配置功能。

13.如权利要求8所述的控制装置,其特征在于,在所述第一、第二客户操作系统共用部分显示资源时,在所述在满足预定切换条件时,所述处理单元还用于在所述第一客户操作系统升起切换保护窗口。

14.如权利要求13所述的控制装置,其特征在于,所述处理单元,在所述将当前显示的客户操作系统从所述第一客户操作系统切换到所述第二客户操作系统后,还禁止所述第一客户操作系统升起所述切换保护窗口外的其他窗口。

说明书 :

多操作系统之间切换显示的控制方法和装置

技术领域

[0001] 本发明涉及多操作系统显示技术领域,尤其涉及一种多操作系统之间切换显示的控制方法和计算机系统。

背景技术

[0002] 使用虚拟化技术可以在同一硬件平台上同时运行多个客户操作系统(GOS,Guest Operation System)。多个客户操作系统的显示内容可以通过一张显示卡设备输出至外部的显示装置进行显示,也就是说,多操作系统通过共享显示卡设备来实现各自的显示。 [0003] 虚拟化领域的传统技术是让客户操作系统都使用虚拟显示卡,只有一个宿主操作系统使用物理显示卡设备。这种方法的缺点是客户操作系统的显示性能特别差,并且很多加速特性都不支持。
[0004] 新的技术可以让客户操作系统直接使用物理显示卡设备,但其代价是只有一个客户操作系统可以有显示输出,其他操作系统无法通过显示卡来输出。
[0005] 为了解决这种问题,开始逐渐出现了一些多客户操作系统都直接操作物理显示卡设备,但是通过某种方式使之可以串行操作的技术。这些技术具体可以分为:修改设备驱动程序分离各GOS所使用的显示资源(例如显存资源)和不分离显示资源两种类别。 [0006] 无论使用上述哪种类别的技术,在由一个GOS切换到另一GOS的过程中,所显示的画面都可能出现花屏,有时候甚至出现系统崩溃的情况。

发明内容

[0007] 本发明实施例的目的是提供一种多操作系统之间切换显示的控制方法和计算机系统,避免在对多操作系统之前进行切换显示的过程中出现画面花屏或系统崩溃的情况。 [0008] 为了实现上述目的,本发明的一个实施例提供了一种多操作系统之间切换显示的控制方法,包括:
[0009] 检测到需要将当前显示的客户操作系统由第一客户操作系统切换为第二客户操作系统;
[0010] 判断所述第一客户操作系统是否满足预定的切换条件,在满足预定的切换条件时,将当前显示的客户操作切换为所述第二客户操作系统;否则,禁止进行当前显示的客户操作系统的切换。
[0011] 本发明的实施例还提供了一种计算机系统,包括:
[0012] 至少两个客户操作系统;
[0013] 虚拟机管理器,每一所述至少两个客户操作系统与所述虚拟机管理器连接; [0014] 用于对所述至少两个客户操作系统进行显示输出的显示卡;
[0015] 第一客户操作系统包括有切换监控单元,用于在检测到需要将当前显示的客户操作系统由第一客户操作系统切换为第二客户操作系统时,判断所述第一客户操作系统是否满足预定的切换条件,在满足预定的切换条件时,允许进行操作系统的切换;否则,禁止进行操作系统的切换;
[0016] 所述计算机系统还包括有切换单元,用于在所述切换监控单元允许进行操作系统的切换时,将显示卡所显示的客户操作系统从所述第一客户操作系统切换到第二客户操作系统。
[0017] 本发明的一个或多个实施例至少具有以下有益效果:
[0018] 在切换之前,判断是否满足预定的切换条件,满足所述切换条件才可以进行切换,从而保证了切换的可靠性,避免出现画面花屏或系统崩溃的情况;
[0019] 在各客户操作系统使用分离的显示资源的情况下,禁止用户或其他程序对设备驱动程序的修改,保证了后台客户操作系统根据正确版本的设备驱动程序使用显示资源,不会对前台客户操作系统对显示产生影响。
[0020] 在各客户操作系统所使用的显示资源存在部分共用的情况下,如果当前显示的客户操作系统所运行的程序是占用共用显示资源的程序,则不允许进行切换,保证了切换的可靠性。并且,通过禁止后台客户操作系统使用所述第一系统功能和为后台客户操作系统升起切换保护窗口,进一步保证了后台客户操作 系统不会对前台客户操作系统对显示产生影响。

附图说明

[0021] 图1为本发明第一实施例的计算机系统的结构示意图;
[0022] 图2为本发明第一实施例所述多操作系统之间切换显示的控制方法的流程图; [0023] 图3为本发明第二实施例的计算机系统的结构示意图。

具体实施方式

[0024] 本发明实施例的多操作系统之间切换显示的控制方法和计算机系统,在多个虚拟操作系统都使用物理显示卡的环境下,通过增加显示切换监控单元,在需要进行客户操作系统的显示切换之前,对当前显示的客户操作系统是否满足预定的切换条件进行判断,从而保证了切换的安全性,避免出现画面花屏或系统崩溃的情况。
[0025] 下面结合附图对本发明不同的实施例进行进一步详细说明。
[0026] <第一实施例>
[0027] 在本实施例中,以各GOS使用不同的显示资源为例进行说明。这里,所述显示资源包括显存资源和显示通道(Display Pipe)等。所述显示通道是显示卡中的一组显示控制寄存器组,其中保存有显示模式参数信息。所述显示模式参数包括分辨率、刷新率、色深(Color Depth)、显示内容所使用的显存信息等。目前的显示卡通常具有两组或两组以上的显示通道资源。
[0028] 为了使各GOS能够使用不同的显示资源,需要事先修改各GOS的设备驱动程序,将各GOS与各自对应的显示资源进行绑定,从而各GOS可以根据其设备驱动程序访问其所对应的显示资源。
[0029] 如图1所示,本发明第一实施例的计算机系统包括两个客户操作系统:客户操作系统201和202,还包括有虚拟机管理器100和显示卡000,其中,客户操作系统201和202与所述虚拟机管理器100连接,虚拟机管理器100和显示卡000连接。客户操作系统201和202都是通过虚拟机管理器100直接访问显示卡,通过显示卡对客户操作系统进行显示输出,输出至外部的显像设备(如 显示器)。
[0030] 显示卡000中包括有显示资源010,具体的,显示资源可以是显存或显示通道等资源。客户操作系统201和202分别包括有设备驱动单元2011和2021,分别用于保存本客户操作系统的设备驱动程序中关于显示资源的配置信息,为本客户操作系统操作显示卡提供服务。各客户操作系统根据各自的设备驱动程序使用显示卡的不同的显示资源。 [0031] 这里,在客户操作系统202中还设置有切换单元2022和切换监控单元2023。 [0032] 以下以将当前显示的客户操作系统从客户操作系统202切换为客户操作系统201为例,说明本实施例是如何对切换过程进行控制的。
[0033] 所述切换监控单元2023,用于在检测到需要将当前显示的客户操作系统由客户操作系统202切换为客户操作系统201时,判断所述客户操作系统202是否满足预定的切换条件,在满足预定的切换条件时,允许进行操作系统的切换;否则,禁止进行操作系统的切换。
[0034] 这里,由于各客户操作系统都事先修改了设备驱动程序,各客户操作系统分别根据各自的设备驱动程序访问显示卡的不同的显示资源。因此,只有在该设备驱动程序的版本正确且处于正常的工作状态,才能够保证处于后台的客户操作系统能够根据设备驱动程序使用其所对应的显示资源(即合法地使用显示卡的显示资源),才不会对前台客户操作系统的显示产生影响,避免出现花屏或系统崩溃的情况。因此,所述预定的切换条件是:所述客户操作系统202的所述设备驱动程序的版本正确,且所述设备驱动程序的处于正常工作状态。如果用户或其他程序又重新修改了设备驱动程序,导致客户操作系统无法访问其所对应的显示资源时,此时,设备驱动程序的版本即是错误的。而设备驱动程序处于异常状态的典型例子是用户改变了注册表中关于显存位置的配置等。
[0035] 所述切换单元2022,用于在所述切换监控单元2023允许进行操作系统的切换时,将显示卡所显示的客户操作系统从所述客户操作系统202切换到客户操作系统201。 [0036] 为了避免用户或其他程序对设备驱动程序的不当操作,图1中,在客户操作系统202中,所述切换监控单元2023中包括有驱动程序维护单元20231, 用于在所述切换单元
2022将当前显示的客户操作切换为所述客户操作系统201之后,调用所述客户操作系统
202的设备管理程序,打开所述客户操作系统202的设备驱动程序的属性设置界面,并通过所述属性设置界面设置禁止更新属性,以禁止对所述客户操作系统202的设备驱动程序的更新操作。
[0037] 类似的,在所述客户操作系统201中设置有切换监控单元2013,所述切换监控单元2013中设置有驱动程序维护单元20131。在客户操作系统201由前台显示切换到后台时,所述切换监控单元2013和驱动程序维护单元20131分别与所述切换监控单元2023和驱动程序维护单元20231一样,实现类似的功能。
[0038] 基于上述计算机系统,本实施例提供的多操作系统之间切换显示的控制方法的流程图如图2所示,包括以下步骤:
[0039] 步骤21,检测到需要将当前显示的客户操作系统由客户操作系统202切换为客户操作系统201;
[0040] 步骤22,判断所述客户操作系统202的设备驱动程序的版本是否正确,以及设备驱动程序的工作状态是否正常,如果版本正确且工作正常,则进入步骤24;否则,则进入步骤23;
[0041] 步骤23,禁止进行当前显示的客户操作系统的切换,结束流程; [0042] 步骤24,允许对当前显示的客户操作系统进行切换。
[0043] 在对当前显示的客户操作系统进行切换之后,在步骤24之后还可以包括: [0044] 步骤25,调用所述客户操作系统202的设备管理程序,打开所述客户操作系统202的设备驱动程序的属性设置界面,通过所述属性设置界面设置禁止更新属性,以禁止对所述客户操作系统202的设备驱动程序的更新操作。
[0045] 从以上所述可以看出,通过在操作系统切换之前进行判断,保证了客户操作系统202在切换到后台后,该客户操作系统202是根据合法的设备驱动版本使用其所对应的显示资源,因而不会对前台显示的客户操作系统201产生影响,保证了前台显示的可靠性和安全性。
[0046] <第二实施例>
[0047] 本实施例以各客户操作系统共用部分显示资源为例,进行说明。 [0048] 如图3所示,本发明第二实施例的计算机系统也包括两个客户操作系统: 客户操作系统201和202,还包括有虚拟机管理器100和显示卡000,其中,客户操作系统201和202与所述虚拟机管理器100连接,虚拟机管理器100和显示卡000连接。客户操作系统
201和202都是通过虚拟机管理器100直接访问显示卡,通过显示卡对客户操作系统进行显示输出,输出至外部的显像设备(如显示器)。与图1类似,显示卡000中包括有显示资源
010,具体的,显示资源可以是显存和显示通道等资源。
[0049] 这里,客户操作系统201和202分别包括有设备驱动单元2011和2021,分别用于保存本客户操作系统的设备驱动程序中关于显示资源的配置信息,为本客户操作系统操作显示卡提供服务。本实施例中,各客户操作系统根据各自的设备驱动程序使用显示卡的显示资源,各客户操作系统所对应的显示资源之间存在共用部分,例如,使用完全相同或部分相同的显存资源(显示通道)。
[0050] 这里,在客户操作系统201和202中分别设置有切换监控单元2012和2022,在虚拟机管理器100中设置有切换单元101。在客户操作系统202中设置有系统功能禁用单元2023和切换保护窗口单元2024。
[0051] 以下以将当前显示的客户操作系统从客户操作系统202切换为客户操作系统201为例,说明本实施例是如何对切换过程进行控制的。
[0052] 所述切换监控单元2012,用于在检测到需要将当前显示的客户操作系统由客户操作系统202切换为客户操作系统201时,判断所述客户操作系统202是否满足预定的切换条件,在满足预定的切换条件时,允许进行操作系统的切换;否则,禁止进行操作系统的切换。
[0053] 这里,由于各客户操作系统之间所使用的显示资源存在共用部分,因此,当某个客户操作系统从前台切换到后台前,不能运行第一类型程序。这里,所述第一类型程序在其运行时将占用所述第一、第二客户操作系统的共用的显示资源。因此,本实施例中所述预定的切换条件是:所述第一客户操作系统当前没有运行第一类型程序。具体的,所述第一类型程序包括Direct3D等程序。
[0054] 所述系统功能禁用单元2023,用于在所述切换监控单元2022判断所述客户操作系统202满足预定的切换条件后,将所述客户操作系统202的第一系统功能设置为禁用状态,以禁止所述客户操作系统202使用第一系统功能,其中,所述第一系统功能在被所述客户操作系统202在后台使用时,将破坏所述客户 操作系统201在前台的正常显示。具体的,所述第一系统功能包括屏幕保护功能、显示器定时电源管理功能、三维显示加速功能或对显示输出端口的配置功能等
[0055] 所述切换保护窗口单元2024,用于在所述切换监控单元2022判断所述客户操作系统202满足预定的切换条件后,升起切换保护窗口,以及在所述客户操作系统202切换到后台后,禁止所述客户操作系统202升起所述切换保护窗口外的其他窗口。这里,所述切换保护窗口具体的可以是全屏黑屏窗口、Ctrl+Alt+Del窗口等使用显卡资源较少的窗口,通过上述切换保护窗口,阻止后台操作系统的任何输出显示请求。
[0056] 所述切换单元101,用于在所述切换监控单元2012允许进行操作系统的切换时,将显示卡所显示的客户操作系统从所述客户操作系统202切换到客户操作系统201。 [0057] 基于上述计算机系统,本实施例提供的多操作系统之间切换显示的控制方法,包括以下步骤:
[0058] 步骤41,检测到需要将当前显示的客户操作系统由客户操作系统202切换为客户操作系统201;
[0059] 步骤42,判断所述客户操作系统202是否有第一类型程序在运行,如果有,则进入步骤43;否则,则进入步骤44;
[0060] 步骤43,禁止进行当前显示的客户操作系统的切换,结束流程; [0061] 步骤44,客户操作系统202将其第一系统功能设置为禁用状态,以禁止使用第一系统功能,所述第一系统功能在被所述客户操作系统202在后台使用时,将破坏所述客户操作系统201在前台的正常显示;
[0062] 步骤45,客户操作系统202升起切换保护窗口;
[0063] 步骤46,对当前显示的客户操作系统202进行切换,切换为客户操作系统201; [0064] 步骤47,在客户操作系统202切换到后台后,禁止客户操作系统202升起所述切换保护窗口外的其他窗口。
[0065] 以上说明了在各客户操作系统使用的显示资源存在共用部分时,如何进行切换动作之前的判断。本实施例中还通过禁用所述第一系统功能和切换保护窗 口,可靠的保证了后台客户操作系统不会对前台客户操作系统的显示产生干扰。
[0066] 以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。