CN107077375B - 用于多操作系统的显示方法、装置和电子设备 - Google Patents

用于多操作系统的显示方法、装置和电子设备 Download PDF

Info

Publication number
CN107077375B
CN107077375B CN201680002750.XA CN201680002750A CN107077375B CN 107077375 B CN107077375 B CN 107077375B CN 201680002750 A CN201680002750 A CN 201680002750A CN 107077375 B CN107077375 B CN 107077375B
Authority
CN
China
Prior art keywords
operating system
window
pcm
guest
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680002750.XA
Other languages
English (en)
Other versions
CN107077375A (zh
Inventor
孔祥晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Qianhaida Yunyun Intelligent Technology Co ltd
Original Assignee
Shenzhen Qianhaida Yunyun Intelligent Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Qianhaida Yunyun Intelligent Technology Co ltd filed Critical Shenzhen Qianhaida Yunyun Intelligent Technology Co ltd
Publication of CN107077375A publication Critical patent/CN107077375A/zh
Application granted granted Critical
Publication of CN107077375B publication Critical patent/CN107077375B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

本申请提供了一种用于多操作系统的显示方法、装置和电子设备,该方法在主操作系统中,为每个客户操作系统分配一个本地窗口;在客户操作系统新建窗口时,向主操作系统申请一个与新建窗口对应的PCM子区域;在客户端操作系统渲染新建窗口时,将渲染后的数据存储于PCM子区域中;在主操作系统中,根据PCM子区域中的数据,渲染与客户操作系统对应的本地窗口,并将该本地窗口显示。本申请为每个客户操作系统分配一个本地窗口;在客户操作系统申请一个与新建窗口对应的PCM子区域,并在渲染新建窗口时,将渲染后的数据存储于PCM子区域中;在主操作系统中,根据PCM子区域中的数据,渲染对应的本地窗口,并显示该本地窗口,提升显示效率。

Description

用于多操作系统的显示方法、装置和电子设备
技术领域
本申请涉及虚拟化技术领域,特别涉及一种用于多操作系统的显示方法、装置和电子设备。
背景技术
移动虚拟化(如图1所示的虚拟化模型)允许多个虚拟机同时运行在终端上,使用Hypervisor在底层硬件上创建安全独立的软件运行环境。通过移动虚拟化,用户无需携带多台终端,可在一个终端上访问多个虚拟机。由于终端硬件只有一个,而虚拟机却可能存在多个,因此如何将多个虚拟机的窗口高效、平滑的显示出来,成为影响用户体验的关键问题。
目前,一种常用方法为:通过QEMU(模拟处理器)将虚拟机要显示的窗口复制到主操作系统中,主操作系统将该窗口的内容通过CPU(Central Processing Unit,中央处理器)直接写入FrameBuffer(帧缓冲)中,从而显示该窗口。
该方法中,存在数据复制过程,复制过程中数据传输速率严重影响显示效率,不能满足产品化的需求。
发明内容
本申请实施例提供了用于多操作系统的显示方法、装置和电子设备,主要用以提升显示效率。
第一方面,本申请实施例提供了一种用于多操作系统的显示方法,所述方法包括:
在主操作系统中,为每个客户操作系统分配一个本地窗口;
在客户操作系统中,在新建窗口时,向主操作系统申请一个与所述新建窗口对应的物理连续内存PCM子区域;
在主操作系统中,为客户端操作系统分配PCM子区域;
在客户端操作系统中,在渲染所述新建窗口时,将渲染后的数据存储于所述PCM子区域中;
在主操作系统中,在监测到客户端操作系统的显示请求时,根据所述PCM子区域中的数据,渲染与所述客户操作系统对应的本地窗口,并将该本地窗口显示。
第二方面,本申请实施例提供了一种用于多操作系统的显示装置,所述装置包括:
第一分配模块,用于在主操作系统中,为每个客户操作系统分配一个本地窗口;
申请模块,用于在客户操作系统中,在新建窗口时,向主操作系统申请一个与所述新建窗口对应的物理连续内存PCM子区域;
第二分配模块,用于在主操作系统中,为客户端操作系统分配PCM子区域;
存储模块,用于在客户端操作系统中,在渲染所述新建窗口时,将渲染后的数据存储于所述PCM子区域中;
显示模块,用于在主操作系统中,在监测到客户端操作系统的显示请求时,根据所述PCM子区域中的数据,渲染与所述客户操作系统对应的本地窗口,并将该本地窗口显示。
第三方面,本申请实施例提供了一种电子设备,所述电子设备包括:
存储器,一个或多个处理器;存储器与处理器通过通信总线相连;处理器被配置为执行存储器中的指令;所述存储介质中存储有用于执行第一方面所述方法中各个步骤的指令。
第四方面,本申请实施例提供了一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括内嵌于计算机可读的存储介质中的计算机程序,所述计算机程序包括用于使所述电子设备执行第一方面所述方法中各个步骤的指令。
有益效果如下:
本申请实施例中在主操作系统中,为每个客户操作系统分配一个本地窗口;在客户操作系统中,在新建窗口时,向主操作系统申请一个与新建窗口对应的PCM子区域;在主操作系统中,为客户端操作系统分配PCM子区域;在客户端操作系统中,在渲染新建窗口时,将渲染后的数据存储于PCM子区域中;在主操作系统中,在监测到客户端操作系统的显示请求时,根据PCM子区域中的数据,渲染与客户操作系统对应的本地窗口,并将该本地窗口显示,提升显示效率。
附图说明
下面将参照附图描述本申请的具体实施例,其中:
图1为本申请实施例中的一种现有虚拟化模型的结构示意图;
图2为本申请实施例中的一种应用用于多操作系统的显示的系统结构示意图;
图3为本申请实施例中的一种用于多操作系统的显示方法的流程图;
图4为本申请实施例中的另一种用于多操作系统的显示装置结构示意图;
图5为本申请实施例中的一种用于多操作系统的显示结构示意图。
具体实施方式
为了使本申请的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以互相结合。
申请人在申请过程中注意到:
现有的显示方法通过QEMU将虚拟机要显示的窗口数据复制到主操作系统中,主操作系统将该窗口数据通过CPU直接写入FrameBuffer中。由于该方法数据复制过程中数据传输速率严重影响显示效率,因此,该方法不能满足产品化的需求。
基于此,本申请提供了一种用于多操作系统的显示方法,该方法在主操作系统中,为每个客户操作系统分配一个本地窗口;在客户操作系统中,在新建窗口时,向主操作系统申请一个与新建窗口对应的PCM子区域;在主操作系统中,为客户端操作系统分配PCM子区域;在客户端操作系统中,在渲染新建窗口时,将渲染后的数据存储于PCM子区域中;在主操作系统中,在监测到客户端操作系统的显示请求时,根据PCM子区域中的数据,渲染与客户操作系统对应的本地窗口,并将该本地窗口显示,提升显示效率。
本申请提供的一种用于多操作系统的显示方法,该方法应用于图2所示的系统中,该系统包括:多个客户操作系统201和一个主操作系统202。主操作系统202包括一个PCM(Physical Continuous Memory Allocator,物理连续内存)2026。除此之外,主操作系统202还包括显示相关设备。例如:FrameBuffer,GPU(Graphics Processing Unit,图形处理器)。其中,FrameBuffer是最终的显示设备,GPU负责所有的图像渲染和合成操作。
PCM 2026由所有客户操作系统201和主操作系统202共享,每个客户操作系统201均可将数据写入PCM 2026,主操作系统202可以从PCM 2026中读取数据。
由于客户操作系统201没有真实的硬件设备,因此本显示系统可以实现显示相关设备的虚拟化。
参见图2,
1)每个客户操作系统201对应主操作系统202中的一个本地窗口,每一个客户操作系统201中包括一个虚拟化的PCMA(Physical Continuous Memory Allocator,物理连续内存分配器)——vPCMA 2011,一个虚拟化的GPU——vGPU 2012。
除此之外,每个客户操作系统201中还包括一个显示系统Guest Display System2013,该Guest Display System 2013一般为客户操作系统201自己实现,例如,若客户操作系统201的操作系统为Android系统,则surfaceflinger为Guest Display System 2013。
另外,客户操作系统201中安装有Front-End(前端)驱动。
2)主操作系统202中包括一个虚拟化的PCMA——vPCMA 2021,一个虚拟化的GPU——vGPU 2022。
除此之外,主操作系统202中还包括一个显示系统Host Display System 2023。
另外,主操作系统202中安装有Back-End(主操作系统)驱动。且主操作系统202中还包括在主操作系统实现Guest Display System服务的服务端Guest DisplaySystemServer 2024。
此外,主操作系统202中还包括PCMA2025,PCMA 2025可以管理PCM 2026,例如,申请一个PCM 2026中的PCM子区域(物理地址连续的内存空间)给video和camera等DMA(Direct Memory Access,直接内存存取)设备使用。
3)客户操作系统201基于Front-End驱动和Back-End驱动之间的数据交互实现与主操作系统202之间的通信。
例如,客户操作系统201通过Front-End驱动与Back-End驱动之间的通信共享PCM2026。
对于图2所示的显示系统,通过本申请提供的用于多操作系统的显示方法显示窗口的一般流程,如图3所示。
301,在主操作系统中,为每个客户操作系统分配一个本地窗口。
302,在客户操作系统中,在新建窗口时,向主操作系统申请一个与新建窗口对应的PCM子区域。
具体的,在客户操作系统中,在新建窗口时,向主操作系统发送共享内存申请。例如,任一客户操作系统201新建窗口,向主操作系统202申请一个与新建窗口对应的PCM子区域。
本步骤可以通过如下方式实现:任一客户操作系统201通过vPCMA 2011以及前端驱动与后端驱动之间的通信,经主操作系统202中的vPCMA 2021,向PCMA 2025发送PCM子区域申请,PCMA 2025根据申请,在PCM2026中分配一个子区域。
303,在主操作系统中,为客户端操作系统分配PCM子区域。
具体的,在主操作系统中,在接收到共享内存申请后,通过Gralloc(共享内存管理模块)为客户操作系统分配一块PCM子区域,将PCM子区域转换为纹理,并向客户操作系统返回纹理的索引值。
304,在客户端操作系统中,在渲染新建窗口时,将渲染后的数据存储于PCM子区域中。
具体实现时,根据索引值将渲染后的数据存储于PCM子区域中。
由于PCM 2026由所有客户操作系统201和主操作系统202共享,每个客户操作系统201均可将数据写入PCM 2026,主操作系统202可以从PCM 2026中读取数据。因此,任一客户操作系统201可以将渲染后的数据存储于PCM子区域中。
例如,任一客户操作系统201通过vPCMA 2011以及前端驱动与后端驱动之间的通信,经主操作系统202中的vPCMA 2021,最终由PCMA 2025将渲染后的数据存储于PCM子区域描述符对应的PCM子区域中。
305,在主操作系统中,在监测到客户端操作系统的显示请求时,根据PCM子区域中的数据,渲染与客户操作系统对应的本地窗口,并将该本地窗口显示。
其中,监测到客户端操作系统的显示请求的实现方式有多种。例如,监测到任一客户操作系统201向主操作系统202发送窗口显示指示,则确定监测到客户端操作系统的显示请求。
将该本地窗口显示的实现方式有多种。例如,将该本地窗口置顶。
通过步骤301至305可以通过将本地窗口置顶的方式实现客户操作系统窗口显示,避免因为数据复制带来的显示效率的降低。
为了更明确的说明本提案提供的显示方法的优势,下面再以客户操作系统201为Guest端,主操作系统202为Host端为例,将现有技术的显示方法与本申请提供的显示方法进行对比。
一、现有技术的显示方法
现有技术中各Guest端创建各自的Window(窗口)后,通过将多层Window叠加显示到FrameBuffer实现Guest端窗口显示。具体为:
1)Guest端创建一个Window,通过Guest端的VMA(Virtual Memory Allocater,虚拟内存分配器)在Guest端申请一块所需大小的内存区域,同时也在Host端的GuestDisplay System Server中调用Host端的VMA申请一块所需大小的内存区域,该内存区域为普通的内存区域,即非物理地址连续。
2)Guest端在该Window上填充内容,通过Guest端的Front-End驱动和Host端的Back-End驱动将内容数据传送到Host端的Guest Display System Server内,然后再将该数据渲染到该Window在Host端对应的内存区域内,其中,渲染的数据格式均为RGBA。
3)在Guest端根据需要依次对1)和2)重复操作。
4)当Guest端将所有Window叠加显示时,会通过vGPU调用Host端将各个Window对应的内存区域依次渲染到一个Off-Screen的FrameBuffer上,然后再将此FrameBuffer内的数据拷贝到一个临时内存中,再将该内存中的数据拷贝至真实的FrameBuffer中显示出来。
至此,完成一次Guest端窗口的显示。
二、本申请提供的显示方法
本申请提供的显示方法,可以将各Guest端的显示窗口全部纳入Host端的进行统一管理,当切换到某一个Guest端时,Host端将该Guest端的窗口对应的Host端的本地窗口(Native Window)设置为最顶层的窗口,从而可以迅速地实现多Guest端的窗口切换。具体为:
1)在Guest端内,对于每层窗口都对应Host端的一个PCM子区域,即在Guest端每创建一个Window,在Host端都会由PCMA申请一个PCM子区域,当Guest端对这个Window做渲染时,其实是在Host端的这个PCM子区域内作渲染,渲染后的数据即保存在这个PCM子区域中。
2)将多层窗口叠加渲染显示时,Host端会相应地将各Guest端Window对应的PCM子区域内的数据叠加渲染到本系统的各Guest系统相应的Native Window上,这些NativeWindow又会被Host系统的显示管理系统依次叠加渲染到真正的显示设备上。其中,PCM子区域与Guest端的每个Window一一对应,Native Window与Guest系统一一对应。即,每一Native Window中的展示内容均为对应Guest端的所有Window叠加展示的内容。
3)当某一Native Window被置为最顶层时,Host端的显示系统会将该NativeWindow显示出来,也即将该Native Window对应Guest端的桌面显示出来。
至此,完成一次Guest端窗口的显示。
通过对比上述现有技术的显示方法与本申请提供的显示方法可知,本方案提供的显示方法中,Guest端支持PCM的申请以及对PCM区域数据写入等操作,并且Guest端和Host端可以共享这块内存,这样既可以支持对DMA设备的物理地址连续内存的申请和管理,也可以省去在Guest端和Host端复制数据的时间消耗。
另外,在Host端加入Native Window,可以通过GPU直接将渲染的数据写入FrameBuffer中且不需要CPU介入,而现有技术中,渲染后先通过CPU将数据复制到内存中,再从内存中通过CPU写入FrameBuffer,因此本方案提供的显示方法可以极大地提高显示效率。
此外,由于一个Guest端的显示桌面对应一个Native Window,对于多个Guest端各桌面的切换显示,只需要将某Guest端的桌面所对应的Native Window设置到最顶层即可。这样既可以实现高效率、灵活、平滑的Guest端窗口间的切换,又很好地管理了多Guest端的窗口显示。
有益效果:
本申请实施例中在主操作系统中,为每个客户操作系统分配一个本地窗口;在客户操作系统中,在新建窗口时,向主操作系统申请一个与新建窗口对应的PCM子区域;在主操作系统中,为客户端操作系统分配PCM子区域;在客户端操作系统中,在渲染新建窗口时,将渲染后的数据存储于PCM子区域中;在主操作系统中,在监测到客户端操作系统的显示请求时,根据PCM子区域中的数据,渲染与客户操作系统对应的本地窗口,并将该本地窗口显示,提升显示效率。
基于同一发明构思,本实施例提供了一种用于多操作系统的显示装置,该用于多操作系统的显示装置解决问题的原理与一种用于多操作系统的显示方法相似,因此该用于多操作系统的显示装置实施可以参见一种用于多操作系统的显示方法,重复之处不再赘述。
参见图4,该用于多操作系统的显示装置包括:
第一分配模块401,用于在主操作系统中,为每个客户操作系统分配一个本地窗口;
申请模块402,用于在客户操作系统中,在新建窗口时,向主操作系统申请一个与新建窗口对应的物理连续内存PCM子区域;
第二分配模块403,用于在主操作系统中,为客户端操作系统分配PCM子区域;
存储模块404,用于在客户端操作系统中,在渲染新建窗口时,将渲染后的数据存储于PCM子区域中;
显示模块405,用于在主操作系统中,在监测到客户端操作系统的显示请求时,根据PCM子区域中的数据,渲染与客户操作系统对应的本地窗口,并将该本地窗口显示。
可选地,申请模块402,用于在客户操作系统中,在新建窗口时,向主操作系统发送共享内存申请;
第二分配模块403,用于在主操作系统中,在接收到共享内存申请后,通过共享内存管理模块Gralloc为客户操作系统分配一块PCM子区域,将PCM子区域转换为纹理,并向客户操作系统返回纹理的索引值;
存储模块404,用于根据索引值将渲染后的数据存储于PCM子区域中。
可选地,显示模块405,用于在监测到客户端操作系统的显示请求时,根据客户端操作系统的本地窗口所对应的各个PCM子区域,渲染与客户操作系统对应的本地窗口。
有益效果:
本申请实施例中在主操作系统中,为每个客户操作系统分配一个本地窗口;在客户操作系统中,在新建窗口时,向主操作系统申请一个与新建窗口对应的PCM子区域;在主操作系统中,为客户端操作系统分配PCM子区域;在客户端操作系统中,在渲染新建窗口时,将渲染后的数据存储于PCM子区域中;在主操作系统中,在监测到客户端操作系统的显示请求时,根据PCM子区域中的数据,渲染与客户操作系统对应的本地窗口,并将该本地窗口显示,提升显示效率。
再一方面,本申请实施例还提供了一种电子设备,参见图5,电子设备包括:
存储器501,一个或多个处理器502;存储器与处理器通过通信总线相连;处理器被配置为执行存储器中的指令;所述存储介质中存储有用于执行上述的任一项所述的用于多操作系统的显示方法中各个步骤的指令。
再一方面,本申请实施例还提供了一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括内嵌于计算机可读的存储介质中的计算机程序,所述计算机程序包括用于使所述电子设备执行上述的任一项所述的用于多操作系统的显示方法中各个步骤的指令。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

Claims (8)

1.一种用于多操作系统的显示方法,其特征在于,所述方法包括:
在主操作系统中,为每个客户操作系统分配一个本地窗口;
在客户操作系统中,在新建窗口时,向主操作系统申请一个与所述新建窗口对应的物理连续内存PCM子区域;
在主操作系统中,为客户操作系统分配PCM子区域;
在客户操作系统中,在渲染所述新建窗口时,将渲染后的数据存储于所述PCM子区域中;
在主操作系统中,在监测到客户操作系统的显示请求时,根据所述PCM子区域中的数据,渲染与所述客户操作系统对应的本地窗口,并将该本地窗口显示。
2.根据权利要求1所述的方法,其特征在于,所述在客户操作系统中,在新建窗口时,向主操作系统申请一个与所述新建窗口对应的物理连续内存PCM子区域,包括:
在客户操作系统中,在新建窗口时,向主操作系统发送共享内存申请;
在主操作系统中,为客户操作系统分配PCM子区域,包括:
在主操作系统中,在接收到共享内存申请后,通过共享内存管理模块Gralloc为所述客户操作系统分配一块PCM子区域,将所述PCM子区域转换为纹理,并向客户操作系统返回所述纹理的索引值;
所述将渲染后的数据存储于所述PCM子区域中,包括:
根据索引值将渲染后的数据存储于所述PCM子区域中。
3.根据权利要求2所述的方法,其特征在于,所述在主操作系统中,在监测到客户操作系统的显示请求时,根据所述PCM子区域中的数据,渲染与所述客户操作系统对应的本地窗口,包括:
在监测到客户操作系统的显示请求时,根据客户操作系统的本地窗口所对应的各个PCM子区域,渲染与所述客户操作系统对应的本地窗口。
4.一种用于多操作系统的显示装置,其特征在于,所述装置包括:
第一分配模块,用于在主操作系统中,为每个客户操作系统分配一个本地窗口;
申请模块,用于在客户操作系统中,在新建窗口时,向主操作系统申请一个与所述新建窗口对应的物理连续内存PCM子区域;
第二分配模块,用于在主操作系统中,为客户操作系统分配PCM子区域;
存储模块,用于在客户操作系统中,在渲染所述新建窗口时,将渲染后的数据存储于所述PCM子区域中;
显示模块,用于在主操作系统中,在监测到客户操作系统的显示请求时,根据所述PCM子区域中的数据,渲染与所述客户操作系统对应的本地窗口,并将该本地窗口显示。
5.根据权利要求4所述的装置,其特征在于,所述申请模块,用于在客户操作系统中,在新建窗口时,向主操作系统发送共享内存申请;
所述第二分配模块,用于在主操作系统中,在接收到共享内存申请后,通过共享内存管理模块Gralloc为所述客户操作系统分配一块PCM子区域,将所述PCM子区域转换为纹理,并向客户操作系统返回所述纹理的索引值;
所述存储模块,用于根据索引值将渲染后的数据存储于所述PCM子区域中。
6.根据权利要求5所述的装置,其特征在于,所述显示模块,用于在监测到客户操作系统的显示请求时,根据客户操作系统的本地窗口所对应的各个PCM子区域,渲染与所述客户操作系统对应的本地窗口。
7.一种电子设备,其特征在于,所述电子设备包括:
存储器,一个或多个处理器;存储器与处理器通过通信总线相连;处理器被配置为执行存储器中的指令;所述存储器中存储有用于执行权利要求1至3任一项所述方法中各个步骤的指令。
8.一种与电子设备结合使用的计算机可读的存储介质,所述计算机可读的存储介质存储有用于使所述电子设备执行权利要求1至3中任一所述方法中的各个步骤的指令。
CN201680002750.XA 2016-12-27 2016-12-27 用于多操作系统的显示方法、装置和电子设备 Active CN107077375B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/112499 WO2018119713A1 (zh) 2016-12-27 2016-12-27 用于多操作系统的显示方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN107077375A CN107077375A (zh) 2017-08-18
CN107077375B true CN107077375B (zh) 2020-08-04

Family

ID=59623902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680002750.XA Active CN107077375B (zh) 2016-12-27 2016-12-27 用于多操作系统的显示方法、装置和电子设备

Country Status (4)

Country Link
US (1) US11204790B2 (zh)
JP (1) JP6846537B2 (zh)
CN (1) CN107077375B (zh)
WO (1) WO2018119713A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107656993A (zh) * 2017-09-15 2018-02-02 上海斐讯数据通信技术有限公司 一种实现进程间avl树使用的方法及系统
CN109725867A (zh) * 2019-01-04 2019-05-07 中科创达软件股份有限公司 虚拟化屏幕共享方法、装置及电子设备
CN111309649B (zh) * 2020-02-11 2021-05-25 支付宝(杭州)信息技术有限公司 一种数据传输和任务处理方法、装置及设备
US11204833B1 (en) * 2020-06-19 2021-12-21 Western Digital Technologies, Inc. NVM endurance group controller using shared resource architecture
CN113176899A (zh) * 2021-03-15 2021-07-27 西安神鸟软件科技有限公司 一种多安卓操作系统的运行方法及终端设备
CN112988103B (zh) * 2021-05-13 2021-08-20 统信软件技术有限公司 一种数据显示方法及计算设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464843A (zh) * 2007-12-17 2009-06-24 联想(北京)有限公司 在多操作系统中共享显示卡的方法和计算机系统
CN101477510A (zh) * 2008-01-02 2009-07-08 联想(北京)有限公司 在多操作系统中共享显示卡的方法和计算机系统
CN101794237A (zh) * 2009-02-02 2010-08-04 联想(北京)有限公司 一种实现通用显示的计算机和方法
US7783838B1 (en) * 2004-02-06 2010-08-24 Vmware, Inc. Maintaining coherency of derived data in a computer system
CN102541618A (zh) * 2010-12-29 2012-07-04 中国移动通信集团公司 一种通用图形处理器虚拟化的实现方法、系统及装置
CN103226490A (zh) * 2013-04-23 2013-07-31 深圳市京华科讯科技有限公司 多桌面系统
CN103491188A (zh) * 2013-09-30 2014-01-01 上海沃帆信息科技有限公司 利用虚拟桌面和gpu透传实现多用户共享图形工作站的方法
CN103593185A (zh) * 2013-11-04 2014-02-19 浙江大学 基于单Linux内核的多Android系统共享输入显示设备的方法
CN104662512A (zh) * 2012-06-11 2015-05-27 普瑞斯汀机械有限责任公司 操作系统
CN105183551A (zh) * 2015-09-10 2015-12-23 电子科技大学 基于Linux容器技术的多Android系统之间切换方法
CN105404547A (zh) * 2014-09-12 2016-03-16 阿里巴巴集团控股有限公司 一种操作系统的融合方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0588838A (ja) * 1991-09-30 1993-04-09 Matsushita Electric Ind Co Ltd マルチウインドウ表示装置
US7506265B1 (en) * 2000-07-17 2009-03-17 Microsoft Corporation System and method for displaying images of virtual machine environments
US7644407B2 (en) * 2004-03-05 2010-01-05 Intel Corporation Method, apparatus and system for seamlessly sharing a graphics device amongst virtual machines
US7681200B2 (en) * 2005-07-22 2010-03-16 Microsoft Corporation Secure hardware desktop buffer composition
US7432934B2 (en) * 2005-10-19 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for display sharing
US8065687B2 (en) * 2007-01-05 2011-11-22 Moka5, Inc. Bypass virtualization
JP5246388B2 (ja) * 2007-03-08 2013-07-24 日本電気株式会社 仮想装置構成システム、及びその方法
JP5045428B2 (ja) * 2007-12-26 2012-10-10 日本電気株式会社 画像表示システム、画像表示方法及びプログラム
TWI372352B (en) * 2008-01-04 2012-09-11 Asustek Comp Inc Method for assisting in calculation of data using display card
JP5615082B2 (ja) * 2010-08-05 2014-10-29 株式会社Nttドコモ 情報処理端末及び画面切替制御方法
JP2012141728A (ja) * 2010-12-28 2012-07-26 Nikon Corp 情報処理表示装置
US9792136B2 (en) * 2011-04-28 2017-10-17 Microsoft Technology Licensing, Llc Hardware assisted inter hypervisor partition data transfers
US20150281679A1 (en) * 2014-03-28 2015-10-01 Qualcomm Incorporated Pixel data generation for autostereoscopy images
US20160044139A1 (en) * 2014-08-07 2016-02-11 Hsiu-Ping Lin Methods and systems for communications between apps and virtual machines
JP2016212874A (ja) * 2015-05-08 2016-12-15 飛捜股▲ふん▼有限公司 アプリケーションプログラムとバーチャルマシンとの間のコミュニケーションのシステムと方法
KR102535825B1 (ko) * 2015-06-03 2023-05-23 삼성전자주식회사 시스템 온 칩 및 시스템 온 칩의 동작 방법
WO2018111014A1 (en) * 2016-12-14 2018-06-21 Samsung Electronics Co., Ltd. Method and apparatus for rendering object using mipmap including plurality of textures
US10049625B1 (en) * 2016-12-21 2018-08-14 Amazon Technologies, Inc. Context-based rendering
CN109240677B (zh) * 2017-07-07 2020-10-16 阿里巴巴集团控股有限公司 一种图层处理方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783838B1 (en) * 2004-02-06 2010-08-24 Vmware, Inc. Maintaining coherency of derived data in a computer system
CN101464843A (zh) * 2007-12-17 2009-06-24 联想(北京)有限公司 在多操作系统中共享显示卡的方法和计算机系统
CN101477510A (zh) * 2008-01-02 2009-07-08 联想(北京)有限公司 在多操作系统中共享显示卡的方法和计算机系统
CN101794237A (zh) * 2009-02-02 2010-08-04 联想(北京)有限公司 一种实现通用显示的计算机和方法
CN102541618A (zh) * 2010-12-29 2012-07-04 中国移动通信集团公司 一种通用图形处理器虚拟化的实现方法、系统及装置
CN104662512A (zh) * 2012-06-11 2015-05-27 普瑞斯汀机械有限责任公司 操作系统
CN103226490A (zh) * 2013-04-23 2013-07-31 深圳市京华科讯科技有限公司 多桌面系统
CN103491188A (zh) * 2013-09-30 2014-01-01 上海沃帆信息科技有限公司 利用虚拟桌面和gpu透传实现多用户共享图形工作站的方法
CN103593185A (zh) * 2013-11-04 2014-02-19 浙江大学 基于单Linux内核的多Android系统共享输入显示设备的方法
CN105404547A (zh) * 2014-09-12 2016-03-16 阿里巴巴集团控股有限公司 一种操作系统的融合方法及装置
CN105183551A (zh) * 2015-09-10 2015-12-23 电子科技大学 基于Linux容器技术的多Android系统之间切换方法

Also Published As

Publication number Publication date
WO2018119713A1 (zh) 2018-07-05
US20190317784A1 (en) 2019-10-17
JP6846537B2 (ja) 2021-03-24
JP2020504890A (ja) 2020-02-13
US11204790B2 (en) 2021-12-21
CN107077375A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
CN107077375B (zh) 用于多操作系统的显示方法、装置和电子设备
CN107003892B (zh) Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品
US10127628B2 (en) Method and system to virtualize graphic processing services
CN107077377B (zh) 一种设备虚拟化方法、装置、系统及电子设备、计算机程序产品
US9274839B2 (en) Techniques for dynamic physical memory partitioning
US8629878B2 (en) Extension to a hypervisor that utilizes graphics hardware on a host
US8527679B2 (en) Apparatus and method for adaptation of input/output interface in virtualization environment
US9811366B2 (en) Dynamically using system memory as video memory for virtual graphics processing units
CN107292807B (zh) 一种图形合成方法、窗口设置方法及系统
CN105786589A (zh) 一种云渲染系统、服务器及方法
JP2022516486A (ja) リソース管理方法と装置、電子デバイス、及び記録媒体
KR20120087967A (ko) 응용 프로그램 화상의 표시 방법 및 장치
EP3251006A1 (en) Backup image restore
US20190317795A1 (en) Memory access method for use in multi-operating systems and electronic device
CN101211270A (zh) 显卡、应用该显卡的虚拟机系统及显示处理方法
WO2018103022A1 (zh) 帧缓存实现方法、装置、电子设备和计算机程序产品
US10929079B2 (en) Video display method, electronic device and computer program product
US9324299B2 (en) Atlasing and virtual surfaces
CN109766179B (zh) 一种显存分配方法以及装置
CN108228496B (zh) 一种直接内存访问内存管理方法、装置和主控设备
CN114461318A (zh) 一种基于云终端的云桌面管理的方法、装置及电子设备
CN105718300A (zh) 虚拟机切换的系统和方法
KR20150089690A (ko) 서버 기반 소프트웨어 서비스에서의 스토리지 접근 제어 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant