[发明专利]在多操作系统中共享显示卡的方法和计算机系统有效
申请号: | 200810055938.8 | 申请日: | 2008-01-02 |
公开(公告)号: | CN101477510A | 公开(公告)日: | 2009-07-08 |
发明(设计)人: | 王碧波;刘永锋;刘春梅;陈军 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | G06F15/167 | 分类号: | G06F15/167;G06F9/48 |
代理公司: | 北京银龙知识产权代理有限公司 | 代理人: | 许 静 |
地址: | 100085北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 操作系统 共享 显示 方法 计算机系统 | ||
技术领域
本发明涉及一种显示卡设备的共享技术,具体涉及一种在多操作系统中共享显示卡的方法和计算机系统。
背景技术
使用虚拟化技术可以在同一硬件平台上同时运行多个客户操作系统(GOS,Guest Operation System)。多个客户操作系统的显示内容可以通过一张显示卡设备输出至外部的显示装置进行显示,也就是说,多操作系统通过共享显示卡设备来实现各自的显示。
虚拟化领域的传统技术是让客户操作系统都使用虚拟显示卡,只有一个宿主操作系统使用物理显示卡设备。这种方法的缺点是客户操作系统的显示性能特别差,并且很多加速特性都不支持。
新的技术可以让客户操作系统直接使用物理显示卡设备,但其代价是只有一个客户操作系统可以有显示输出,其他操作系统无法通过显示卡来输出。
为了解决这种问题,开始逐渐出现了一些多客户操作系统都直接操作物理显示卡设备,但是通过某种方式使之可以串行操作的技术。这些技术中较典型的实现方法是:显存分离+寄存器模拟方式。让各OS使用不同的显存资源,并且各OS都有自己的一套模拟寄存器,当某个OS需要在前台显示时,则将其寄存器值写入真实设备,以实现对该OS的显示。
上述方法的缺点在于:由于各OS所使用的显存资源是完全分离的,因此,需要对各OS的显示卡的设备驱动程序进行修改,修改工作量较大。同时,由于当今显示卡寄存器非常复杂,要模拟所有寄存器十分困难,工程化难度大。后台OS在使用模拟的寄存器时,如果模拟不当,便会导致显示卡出错,甚至导致系统崩溃。
发明内容
本发明实施例的目的是提供一种在多操作系统中共享显示卡的方法和计算机系统,无需修改所有操作系统的设备驱动程序,即可实现在多操作系统中共享显示卡。
为了实现上述目的,本发明的一个实施例提供一种在多操作系统中共享显示卡的方法,所述多操作系统包括一个主客户操作系统和至少一个次客户操作系统,所述方法包括:
检测到有第一客户操作系统需要被显示,所述第一客户操作系统属于所述主客户操作系统和至少一个次客户操作系统中的一个客户操作系统;
对所述第一客户操作系统进行判断:当所述第一客户操作系统是所述主客户操作系统时,为所述第一客户操作系统分配显示卡的所有显示控制寄存器组和所有显存资源;当所述第一客户操作系统是所述次客户操作系统时,为所述第一客户操作系统分配一组显示控制寄存器组和所有显存资源中的部分显存资源;
控制为所述第一客户操作系统所分配的显示控制寄存器组与显示输出端口连接;
根据为所述第一客户操作系统所分配的显存资源获取所述第一客户操作系统的显示内容;
根据与所述显示输出端口连接的显示控制寄存器组中显示模式参数,对所述显示内容进行显示。
本发明的实施例还提供了一种计算机系统,包括:
一个主客户操作系统和至少一个次客户操作系统;
虚拟机管理器,每一所述一个主客户操作系统和至少一个次客户操作系统与所述虚拟机管理器连接;
显示卡,所述显示卡包括至少两个显示控制寄存器组;
所述主客户操作系统与显示卡的所有显示控制寄存器组和所有显存资源相对应,每一所述至少一个次客户操作系统与显示卡的其中一组显示控制寄存器组和部分显存资源相对应;
显示输出端口;
切换控制单元,在检测到有第一客户操作系统需要被显示时,使所述第一客户操作系统与所述显示输出端口连接,所述第一客户操作系统属于所述一个主客户操作系统和至少一个次客户操作系统中的一个客户操作系统;
其中,通过所述显示输出端口对所述第一客户操作系统进行显示。
本发明的一个或多个实施例至少具有以下有益效果:
只需修改次客户操作系统的驱动程序,不需要修改主客户操作系统的驱动程序,并且,无需模拟或只需要模拟小部分显示卡的寄存器,即可实现对显示卡的共享访问操作;在切换当前显示的客户操作系统之前,对该客户操作系统相关的显示模式参数、显示输出设置参数及显存映射关系进行保存,以便于在重新切换回该客户操作系统时,简便、快速的恢复该客户操作系统的原先的显示状态;在显示控制寄存器组的数目少于客户操作系统时,通过客户操作系统模拟显示卡,为其他客户操作系统提供对显示卡的访问操作;当次客户操作系统在前台显示时,拦截并模拟其他客户操作系统对该次客户操作系统的显示卡资源的访问操作,从而提供了次客户操作系统显示的可靠性。
附图说明
图1为本发明第一实施例的计算机系统的结构示意图;
图2为本发明第一实施例所述在多操作系统中共享显示卡的方法的流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810055938.8/2.html,转载请声明来源钻瓜专利网。