在多操作系统中共享显示卡的方法和计算机系统技术方案

技术编号:4200157 阅读:206 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了在多操作系统中共享显示卡的方法和计算机系统。其中,所述方法包括:检测到有第一客户操作系统需要被显示,所述第一客户操作系统属于所述主客户操作系统和至少一个次客户操作系统中的一个客户操作系统;对第一客户操作系统进行判断,根据第一客户操作系统是主、次主客户操作系统,为其分配不同的相应的显示控制寄存器组和显存资源;控制第一客户操作系统的显示控制寄存器组与显示输出端口连接;根据第一客户操作系统所分配的显存资源获取显示内容;根据与显示输出端口连接的显示控制寄存器组中显示模式参数,对显示内容进行显示。按照本发明专利技术,无需修改主客户操作系统的驱动程序,即可实现在多操作系统中共享显示卡。

【技术实现步骤摘要】

本专利技术涉及一种显示卡设备的共享技术,具体涉及一种在多操作系统中共享显示卡的方法和计算;f几系统。
技术介绍
使用虚拟化技术可以在同 一硬件平台上同时运行多个客户操作系统 (GOS, Guest Operation System )。多个客户操作系统的显示内容可以通过一 张显示卡设备输出至外部的显示装置进行显示,也就是说,多操作系统通过共 享显示卡设备来实现各自的显示。虛拟化领域的传统技术是让客户操作系统都使用虚拟显示卡,只有一个宿 主操作系统使用物理显示卡设备。这种方法的缺点是客户操作系统的显示性能 特别差,并且很多加速特性都不支持。新的技术可以让客户操作系统直接使用物理显示卡设备,但其代价是只有 一个客户操作系统可以有显示输出,其他操作系统无法通过显示卡来输出。为了解决这种问题,开始逐渐出现了 一些多客户操作系统都直接操作物理 显示卡设备,但是通过某种方式使之可以串行操作的技术。这些技术中较典型 的实现方法是显存分离+寄存器模拟方式。让各OS使用不同的显存资源, 并且各OS都有自己的一套模拟寄存器,当某个OS需要在前台显示时,则将 其寄存器值写入真实设备,以实现对该OS的显示。上述方法的缺点在于由于各OS所使用的显存资源是完全分离的,因此, 需要对各OS的显示卡的设备驱动程序进行修改,修改工作量较大。同时,由 于当今显示卡寄存器非常复杂,要模拟所有寄存器十分困难,工程化难度大。 后台OS在使用模拟的寄存器时,如果模拟不当,便会导致显示卡出错,甚至 导致系统崩
技术实现思路
本专利技术实施例的目的是提供一种在多操作系统中共享显示卡的方法和计 算机系统,无需修改所有操作系统的设备驱动程序,即可实现在多操作系统中 共享显示卡。为了实现上述目的,本专利技术的一个实施例提供一种在多操作系统中共享显 示卡的方法,所述多操作系统包括一个主客户操作系统和至少 一个次客户操作系统,所述方法包括检测到有第一客户操作系统需要被显示,所述第一客户操作系统属于所述 主客户操作系统和至少 一个次客户操作系统中的一个客户操作系统;对所述第一客户操作系统进行判断当所述第 一客户操作系统是所述主客 户操作系统时,为所述第一客户操作系统分配显示卡的所有显示控制寄存器组 和所有显存资源;当所述第一客户操作系统是所述次客户操作系统时,为所述 第一客户操作系统分配一组显示控制寄存器组和所有显存资源中的部分显存资源;控制为所述第 一客户操作系统所分配的显示控制寄存器组与显示输出端 口连接;根据为所述第 一客户操作系统所分配的显存资源获取所述第 一客户操作 系统的显示内容;根据与所述显示输出端口连接的显示控制寄存器组中显示模式参数,对所 述显示内容进行显示。本专利技术的实施例还提供了一种计算机系统,包括一个主客户操作系统和至少 一个次客户操作系统;虚拟机管理器,每一所述一个主客户操作系统和至少一个次客户操作系统 与所述虚拟机管理器连接;显示卡,所述显示卡包括至少两个显示控制寄存器组;所述主客户操作系统与显示卡的所有显示控制寄存器组和所有显存资源 相对应,每一所述至少一个次客户操作系统与显示卡的其中一组显示控制寄存 器组和部分显存资源相对应;显示输出端口;6切换控制单元,在斥企测到有第一客户"t喿作系统需要被显示时,使所述第一 客户操作系统与所述显示输出端口连接,所述第 一客户操作系统属于所述一个主客户操作系统和至少 一个次客户操作系统中的 一个客户操作系统; 其中,通过所述显示输出端口对所述第 一客户操作系统进行显示。 本专利技术的 一个或多个实施例至少具有以下有益效果 只需修改次客户操作系统的驱动程序,不需要修改主客户操作系统的驱动 程序,并且,无需模拟或只需要模拟小部分显示卡的寄存器,即可实现对显示 卡的共享访问操作;在切换当前显示的客户操作系统之前,对该客户操作系统 相关的显示模式参数、显示输出设置参数及显存映射关系进行保存,以便于在 重新切换回该客户操作系统时,筒便、快速的恢复该客户操作系统的原先的显 示状态;在显示控制寄存器组的数目少于客户操作系统时,通过客户操作系统 模拟显示卡,为其他客户操作系统提供对显示卡的访问操作;当次客户操作系 统在前台显示时,拦截并模拟其他客户操作系统对该次客户操作系统的显示卡 资源的访问操作,从而提供了次客户操作系统显示的可靠性。附图说明图1为本专利技术第一实施例的计算机系统的结构示意图2为本专利技术第一实施例所述在多操作系统中共享显示卡的方法的流程图3为本专利技术第二实施例的计算机系统的结构示意图; 图4为本专利技术第三实施例的计算机系统的结构示意图。具体实施例方式本专利技术实施例的在多操作系统中共享显示卡的方法和计算机系统,不是让 多个虚拟操作系统使用虚拟显卡,而是实现多个虚拟操作系统都使用物理显 卡。本专利技术实施例将客户操作系统分为一个主客户操作系统和至少一个次客 户操作系统。主客户操作系统使用显示卡本身具有所有显示通道(Display Pipe)和显存资源,次客户操作系统使用显示卡的其中一个显示通道和部分显存资源,从而实现多个虚拟的客户操作系统共享物理显示卡设备。这里,所述 显示通道是显示卡中的一组显示控制寄存器组,其中保存有显示模式参数信息所述显示模式参数包括分辨率、刷新率、色深(Color Depth )、显示内容所使 用的显存信息等。本专利技术实施例中显示卡包括至少两组显示控制寄存器组。下面结合附图对本专利技术不同的实施例进行进一步详细说明。<第一实施例>如图1所示,本专利技术第 一 实施例的计算机系统包括一主客户操作系统201 、 一次客户操作系统202、虚拟机管理器100和显示卡000。其中,主客户操作 系统201包括设备驱动单元2011;次客户才喿作系统202包括设备驱动单元 2021;主客户操作系统201和次客户操作系统202属于第一类客户操作系统, 所述第 一类客户操作系统为直接访问显示卡000的客户操作系统。虛拟机管理 器100包括切换控制单元101和通信单元102;显示卡000包括两个显示控制 寄存器组031和032,还包括有显示输出单元和显存040。所述显示输出单元 具体包括一个显示输出端口 010和一个选择寄存器020。各客户操作系统运行 在虚拟机管理器100之上,所述通信单元102提供各客户操作系统之间以及客 户操作系统与硬件设备(如显示卡)之间的通信。这里,主客户#:作系统201可以使用显示卡的所有资源,包括所有的显示 控制寄存器组和所有显存资源,因此,对于主客户操作系统201来说,无需修 改其显示卡的设备驱动程序。次客户操作系统202只使用显示卡的其中一组显 示控制寄存器组和部分显存资源,因此,需要修改次客户操作系统202的显示 卡的设备驱动程序,为其配置相应的显示控制寄存器组和显存资源信息。设备驱动单元2011,用于保存为本客户操作系统配置的显示卡的所有显 示控制寄存器组和所有显存资源的配置信息,并根据本客户操作系统的所述配 置信息提供本客户操作系统对显示卡的访问。这里,主客户操作系统201可以 使用显示控制寄存器组031和032,以及显存040的所有资源。设备驱动单元2021,用于保存为本客户操作系统配置的显示卡的一组显 示控制寄存器组和部分显存资源的配置信息,并根据本客户操作系统的所述本文档来自技高网...

【技术保护点】
一种在多操作系统中共享显示卡的方法,其特征在于,所述多操作系统包括一个主客户操作系统和至少一个次客户操作系统,所述方法包括: 检测到有第一客户操作系统需要被显示,所述第一客户操作系统属于所述主客户操作系统和至少一个次客户操作系统中的一 个客户操作系统; 对所述第一客户操作系统进行判断:当所述第一客户操作系统是所述主客户操作系统时,为所述第一客户操作系统分配显示卡的所有显示控制寄存器组和所有显存资源;当所述第一客户操作系统是所述次客户操作系统时,为所述第一客户操作系统 分配一组显示控制寄存器组和所有显存资源中的部分显存资源; 控制为所述第一客户操作系统所分配的显示控制寄存器组与显示输出端口连接; 根据为所述第一客户操作系统所分配的显存资源,获取所述第一客户操作系统的显示内容; 根据与所述 显示输出端口连接的显示控制寄存器组中显示模式参数,对所述显示内容进行显示。

【技术特征摘要】

【专利技术属性】
技术研发人员:王碧波刘永锋刘春梅陈军
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利