CN109324903A - 用于嵌入式系统的显示资源调度方法及装置 - Google Patents
用于嵌入式系统的显示资源调度方法及装置 Download PDFInfo
- Publication number
- CN109324903A CN109324903A CN201811109990.7A CN201811109990A CN109324903A CN 109324903 A CN109324903 A CN 109324903A CN 201811109990 A CN201811109990 A CN 201811109990A CN 109324903 A CN109324903 A CN 109324903A
- Authority
- CN
- China
- Prior art keywords
- operating system
- display
- client operating
- dedicated hardware
- native window
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Digital Computer Display Output (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开涉及一种用于嵌入式系统的显示资源调度方法、装置、计算机可读存储介质及电子设备。本公开实施例提供的用于嵌入式系统的显示资源调度方法,所述嵌入式系统上至少运行主操作系统和第一客户操作系统,所述嵌入式系统包括图像处理单元和显示专用硬件加速器;所述方法包括:接收所述第一客户操作系统的待显示图形;优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作;若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作。本公开实施例所提供的用于嵌入式系统的显示资源调度方法可以提高嵌入式系统的显示资源的利用率,降低嵌入式系统的能量消耗。
Description
技术领域
本公开涉及电通信技术领域,具体涉及一种用于嵌入式系统的显示资源调度方法、用于嵌入式系统的显示资源调度装置、计算机可读存储介质及电子设备。
背景技术
嵌入式系统上可以同时运行着至少一个主操作系统和至少一个客户操作系统,为了客户操作系统能够在嵌入式系统上实现显示功能,相关技术中的实现方法如下。
在主操作系统中申请一个本地窗口(Native Window,可以简单标记为NW),这个申请的本地窗口作为客户操作系统的输出窗口,即客户操作系统用来显示的像素都显示在该本地窗口上。如果主操作系统提供了图像处理单元(Graphics Process Unit,GPU),则客户操作系统通过在虚拟机里虚拟一个图像处理单元,并在其用户空间提供支持图像处理单元的图像库(Graphics Library)来模拟硬件的图像加速器,加速客户操作系统图像处理的速度。或者客户操作系统在其用户空间提供一个模拟的虚拟图像库,该模拟的虚拟图像库通过调用主操作系统中的实际图像库来完成图像处理的过程。通过虚拟图像库处理完成的客户操作系统的显示像素,最终显示在其在主操作系统中申请的这个本地窗口中。
上述相关技术中存在的技术问题是:
客户操作系统在虚拟机中虚拟的图像处理单元,或者客户操作系统在其用户空间提供的一个模拟的虚拟图像库,其中,虚拟的图像处理单元或者模拟的虚拟图像库都是通过调用主操作系统中的实际图像库来完成图像处理的过程。主操作系统的实际图像库基于嵌入式系统中的图像处理单元(GPU),按照用户的编程完成图像处理的过程。
随着技术的发展,用户一直期望的是更轻更薄、待机时间更长的移动设备或者智能终端(例如智能手机、平板电脑等)。而在现有的嵌入式系统中,客户操作系统的所有的图形显示和处理都使用图像处理单元来进行,造成没有充分利用嵌入式系统的显示资源,且使得嵌入式系统的能量消耗较高,图形处理速度较慢等问题。
因此,相关技术中还存在待改进的地方。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种用于嵌入式系统的显示资源调度方法、用于嵌入式系统的显示资源调度装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服由于相关技术的限制而导致的嵌入式系统中运行的客户操作系统进行图形显示时能耗较高、处理速度较慢的技术问题。
根据本公开的一个方面,提供一种用于嵌入式系统的显示资源调度方法,所述嵌入式系统上至少运行主操作系统和第一客户操作系统,所述嵌入式系统包括图像处理单元和显示专用硬件加速器;所述方法包括:接收所述第一客户操作系统的待显示图形;优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作;若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作。
在本公开的一种示例性实施例中,还包括:若释放被占用的所述显示专用硬件加速器,则将所述图像处理单元执行的显示操作调度给释放的所述显示专用硬件加速器。
在本公开的一种示例性实施例中,还包括:若接收到针对所述待显示图形的强制请求,则调度所述图像处理单元对所述待显示图形执行显示操作。
在本公开的一种示例性实施例中,还包括:为所述第一客户操作系统分配第一组本地窗口。
在本公开的一种示例性实施例中,所述第一组本地窗口包括(N+1)个本地窗口,N为大于等于1的正整数;其中,为所述第一客户操作系统分配第一组本地窗口,包括:若所述显示专用硬件加速器支持显示N个图层,则使所述第一组本地窗口中的第一至第N个本地窗口分别对应所述N个图层;使所述第一组本地窗口中的第(N+1)个本地窗口对应于使用所述图像处理单元进行显示的1个图层。
在本公开的一种示例性实施例中,优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作,包括:若所述待显示图形的待显示图层数量M小于等于N,则将M个待显示图层分别通过所述第一组本地窗口中与所述显示专用硬件加速器对应的M个本地窗口进行显示;其中,M为大于等于1的正整数。
在本公开的一种示例性实施例中,若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作,包括:若所述待显示图层数量M大于N,则将第一至第N个待显示图层分别通过所述第一组本地窗口中与所述显示专用硬件加速器对应的N个本地窗口进行显示,且将第(N+1)至第M个待显示图层依照顺序显示于所述第一组本地窗口中的第(N+1)个本地窗口。
在本公开的一种示例性实施例中,所述嵌入式系统上还运行第二客户操作系统;所述方法还包括:为所述第二客户操作系统分配第二组本地窗口;若所述第一客户操作系统从前台切换到后台运行,则所述第一组本地窗口从显示状态进入隐藏状态;若所述第二客户操作系统从后台切换到前台运行,则所述第二组本地窗口从隐藏状态进入显示状态。
在本公开的一种示例性实施例中,所述主操作系统中提供与所述第一客户操作系统对应的渲染引擎,所述第一客户操作系统的待显示图形中的每个待显示图层与所述渲染引擎中每个渲染线程对应;其中,接收所述第一客户操作系统的待显示图形,包括:所述渲染引擎与支持所述第一客户操作系统运行的虚拟机进行通信,将每个待显示图层的待显示数据通过所述虚拟机传入对应的渲染线程。
根据本公开的一个方面,提供一种用于嵌入式系统的显示资源调度装置,所述嵌入式系统上至少运行主操作系统和第一客户操作系统,所述嵌入式系统包括图像处理单元和显示专用硬件加速器;所述装置包括:虚拟机,配置为接收所述第一客户操作系统的待显示图形;图像处理资源调度器,配置为优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作;若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作。
在本公开的一种示例性实施例中,所述图像处理资源调度器设置于所述主操作系统中与所述第一客户操作系统相对应的渲染引擎内。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的用于嵌入式系统的显示资源调度方法。
根据本公开的一个方面,提供一种电子设备,包括:处理器;存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行上述任一实施例所述的用于嵌入式系统的显示资源调度方法。
本公开实施例所提供的用于嵌入式系统的显示资源调度方法,对接收到的第一客户操作系统的待显示图形,设置为优先调度嵌入式系统中的显示专用硬件加速器来对该待显示图形进行显示操作,在该显示专用硬件加速器资源耗尽时,再调度该嵌入式系统中的图像处理单元来执行该待显示图形的显示操作,这样,一方面,相比于相关技术中,嵌入式系统中运行的客户操作系统的所有显示操作均由图像处理单元来处理,可以提高该嵌入式系统的显示资源的利用率;另一方面,利用显示专用硬件加速器来进行图形显示处理,可以提高图形处理的速度,降低客户操作系统的显示系统的能量消耗,从而提高整个嵌入式系统的能量利用率,使用该嵌入式系统的移动设备或者智能终端具有更流畅的图像或者视频观看体验,该移动设备或者智能终端具有更长的待机时间,并可以降低该移动设备或者智能终端使用一段时间后的机身发热程度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开一种示例性实施方式中的嵌入式系统的组成框图。
图2示意性示出本公开一示例性实施方式中用于嵌入式系统的显示资源调度方法的步骤流程图。
图3示意性示出本公开另一示例性实施方式中用于嵌入式系统的显示资源调度方法的步骤流程图。
图4示意性示出本公开又一示例性实施方式中用于嵌入式系统的显示资源调度方法的步骤流程图。
图5示意性示出本公开一再示例性实施方式中用于嵌入式系统的显示资源调度方法的步骤流程图。
图6示意性示出本公开一种示例性实施方式中主操作系统接收第一客户操作系统传递过来的待显示图形的示意图。
图7示意性示出本公开一种示例性实施方式中接收到强制请求时的用于嵌入式系统的显示资源调度方法的示意图。
图8示意性示出本公开一种示例性实施方式中未接收到强制请求时的用于嵌入式系统的显示资源调度方法的示意图。
图9示意性示出本公开一种示例性实施方式中第一客户操作系统接收到的待显示图形的待显示图层数量大于其对应的第一组本地窗口的窗口数量的示意图。
图10示意性示出本公开一种示例性实施方式中第一客户操作系统接收到的待显示图形的待显示图层数量等于其对应的第一组本地窗口的窗口数量的示意图。
图11示意性示出本公开一种示例性实施方式中第一客户操作系统接收到的待显示图形的待显示图层数量小于其对应的第一组本地窗口的窗口数量的示意图。
图12示意性示出本公开一种示例性实施方式中多个客户操作系统对应的多组本地窗口状态变化的过程图。
图13示意性示出本公开示例性实施方式中一种程序产品的示意图。
图14示意性示出本公开示例性实施方式中一种电子设备的模块示意图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施例使得本公开将更加全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示意性示出本公开一种示例性实施方式中的嵌入式系统的组成框图。本公开实施例提供的嵌入式系统上运行着多个操作系统,所述多个操作系统至少包括一个主操作系统(host operating system,HOS)和一个客户操作(guest operating system,GOS),在图1的实施例中以一个客户操作系统即第一客户操作系统120为例进行举例说明,但本公开并不限定于此,该嵌入式系统中包括的客户操作系统的数量可以大于等于1。
其中,所述多个操作系统之间共享所述嵌入式系统的硬件设备(即图1中的硬件160)提供的CPU(Central Processing Unit,中央处理器)、Memory(内存)和输入输出设备等。
本公开实施例中,所述多个操作系统之间内存隔离,主操作系统不能访问客户操作系统的内存空间,反之亦然。当存在3个以上的操作系统时,当某一个客户操作系统因为异常重新启动时,主操作系统和其他的客户操作系统依然可以正常运行,不受影响。反之,当主操作系统因为异常重新启动时,所有的客户操作系统都会随之重新启动。
如图1所示,本公开实施方式提供的嵌入式系统100可以包括主操作系统(HOS)110、第一客户操作系统(Guest OS)120、虚拟机(Emulator)130、主操作系统110中运行的应用程序(Applications)140、主操作系统110运行的内核程序(Host OS Kernel)150以及硬件(Hardware)160。
本公开实施例中,当第一客户操作系统120运行时,虚拟机130模拟了硬件设备供其使用。虚拟机130是作为主操作系统110的一个应用程序运行的。虚拟机130是用于支持第一客户操作系统120运行的,它也是运行在主操作系统110中的一个应用程序,不过功能特殊,因此将其单独列出。
本公开实施例中,嵌入式系统(或者处理器系统)100内部的硬件160除了包括图像处理单元(GPU)之外,还有专用于图形显示的硬件加速器(称之为Display Hardware-Accelerator,即显示专用硬件加速器)。例如,在骁龙处理器中集成的骁龙显示引擎(Snapdragon Display Engine)。再例如,在OMAP(Open Multimedia ApplicationPlatform,开放式多媒体应用平台)系统处理器中集成的显示子系统(Display-Sub-System)等。
其中,主操作系统110可以进一步包括显示引擎(Render Engine)111,在显示引擎111内部进一步可以包括图像处理资源调度器(Resources Scheduler)1111。
本公开实施例中,在下述实施例中的方法实施过程中,主操作系统110中需要提供与第一客户操作系统120对应的渲染引擎111。渲染引擎111中包含可以用于选择何种方式进行显示操作的单元,即图像处理资源调度器1111。
本公开实施例中,图像处理资源调度器1111可以用于统筹调度嵌入式系统100中的图像处理单元与显示专用硬件加速器。在主操作系统110和多个客户操作系统在嵌入式系统100上运行时,任一客户操作系统可以通过在主操作系统110当中申请的一组本地窗口进行显示,对于嵌入式系统100的显示设备来说,同一时刻,只有一个操作系统在使用嵌入式系统100的显示设备。嵌入式系统100上运行的其他客户操作系统,在这一时刻,如果没有活动的任务,则相应的客户操作系统处于休眠模式。如果某个其他客户操作系统在这一时刻有活动的任务,因为此时没有可以使用的显示设备,此时该某个其他客户操作系统处于用户不可交互操作的后台状态。
本公开实施例中,第一客户操作系统(Guest OS)120可以进一步包括图像库(Graphics Library)121和第一客户操作系统运行的内核程序(Guest OS Kernel)122。其中,第一客户操作系统120通过提供图像库121以支持第一客户操作系统120中运行的应用软件进行各种图像显示或处理的操作。
本公开实施例中,图像库121是指所述第一客户操作系统在其用户空间提供支持虚拟机130里虚拟的一个图像处理单元的图像库,其作用是方便用户通过编程操作图像处理单元(GPU)。
本公开实施例中,主操作系统110运行的内核程序150可以进一步包括图像处理单元驱动器151和显示专用硬件加速器驱动器152。
本公开实施例中,第一客户操作系统运行的内核程序(Guest OS Kernel)122可以用于提供设备驱动、内存管理和文件系统支持等内核服务。主操作系统110运行的内核程序(Host OS Kernel)150的功能与第一客户操作系统运行的内核程序(Guest OS Kernel)122相同。
这些用于图形显示的显示专用硬件加速器,在执行图形渲染、图像裁剪以及图像旋转等功能时,与图像处理单元相比,速度更快或者具有更低的能量消耗。图像处理单元相比显示专用硬件加速器,其优势在于可编程,能够处理更加复杂的,变化更多的图形处理问题。在相关技术中的处理方法中,所有的图形显示和处理都使用图像处理单元来进行,放弃使用嵌入式系统中用于图形显示的显示专用硬件加速器等资源,造成了资源的浪费,以及能量消耗等的提升。而对于嵌入式系统来说,嵌入式系统的主要能量消耗来自于显示系统。
图2示意性示出本公开一示例性实施方式中用于嵌入式系统的显示资源调度方法的步骤流程图。其中,所述嵌入式系统上至少运行主操作系统和第一客户操作系统,所述嵌入式系统可以包括图像处理单元和显示专用硬件加速器。
如图2所示,本公开实施方式提供的用于嵌入式系统的显示资源调度方法可以进一步包括以下步骤。
在步骤S210中,接收所述第一客户操作系统的待显示图形。
在步骤S220中,优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作。
本公开实施例中,在任何一个时刻,只有一个操作系统在前台显示,可能是主操作系统,也可能是客户操作系统,因此,显示专用硬件加速器在同一时刻只能有一个客户操作系统使用,不能同时被多个客户操作系统使用。这里以所述第一客户操作系统当前处于前台运行状态为例进行举例说明。
在步骤S230中,若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作。
本公开实施例所提供的用于嵌入式系统的显示资源调度方法,对接收到的第一客户操作系统的待显示图形,设置为优先调度嵌入式系统中的显示专用硬件加速器来对该待显示图形进行显示操作,在该显示专用硬件加速器资源耗尽时,再调度该嵌入式系统中的图像处理单元来执行该待显示图形的显示操作,这样,一方面,相比于相关技术中,嵌入式系统中运行的客户操作系统的所有显示操作均由图像处理单元来处理,可以提高该嵌入式系统的显示资源的利用率;另一方面,利用显示专用硬件加速器来进行图形显示处理,可以提高图形处理的速度,降低客户操作系统的显示系统的能量消耗,从而提高整个嵌入式系统的能量利用率,使用该嵌入式系统的移动设备或者智能终端具有更流畅的图像或者视频观看体验,该移动设备或者智能终端具有更长的待机时间,并可以降低该移动设备或者智能终端使用一段时间后的机身发热程度。
图3示意性示出本公开另一示例性实施方式中用于嵌入式系统的显示资源调度方法的步骤流程图。
如图3所示,本公开实施方式提供的用于嵌入式系统的显示资源调度方法可以进一步包括以下步骤。
在步骤S301中,接收第一客户操作系统的待显示图形。
在步骤S302中,调度显示专用硬件加速器对所述待显示图形执行显示操作。
在步骤S303中,判断所述显示专用硬件加速器资源是否耗尽;若所述显示专用硬件加速器资源耗尽,则进入步骤S304;若所述显示专用硬件加速器资源未耗尽,则跳回到上述步骤S302。
在步骤S304中,调度所述图像处理单元对所述待显示图形执行显示操作。
本公开实施例中,若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作。
例如,当所述第一客户操作系统传递过来的待显示图形需要显示的待显示图层数量超过所述显示专用硬件加速器能支持的图层数量时,所述显示专用硬件加速器资源会被耗尽。
在步骤S305中,判断被占用的所述显示专用硬件加速器是否已释放;若已释放被占用的所述显示专用硬件加速器,则跳回到上述步骤S302;若未释放被占用的所述显示专用硬件加速器,则跳回到上述步骤S305。
本公开实施例中,当第一客户操作系统启动后,其在主操作系统中对应的渲染引擎负责对所述第一客户操作系统待显示的内容即所述待显示图形进行渲染、切割及其他操作。所述渲染引擎在进行相应的显示操作时,优先使用所述显示专用硬件加速器进行操作;当所述嵌入式系统中的显示专用硬件加速器资源耗尽之后,使用图像处理单元进行相应的显示操作;当所述嵌入式系统中释放出可用的显示专用硬件加速器之后,将使用所述图像处理单元进行处理的显示操作调度给所述显示专用硬件加速器。这里,选择使用何种方式进行显示操作可以通过上述图像处理资源调度器来完成。当所述图像处理资源调度器选择使用所述显示专用硬件加速器进行某一个图像显示操作时,记录所述显示专用硬件加速器被该显示操作占用。当所述显示专用硬件加速器完成该显示操作后,所述图像处理资源调度器清空所述显示专用硬件加速器被占用的记录。
图4示意性示出本公开又一示例性实施方式中用于嵌入式系统的显示资源调度方法的步骤流程图。
如图4所示,本公开实施方式提供的用于嵌入式系统的显示资源调度方法可以进一步包括以下步骤。
在步骤S401中,接收所述第一客户操作系统的待显示图形。
在步骤S402中,判断是否接收到针对所述待显示图形的强制请求;若接收到针对所述待显示图形的强制请求,则跳转到步骤S405执行;若未接收到针对所述待显示图形的强制请求,则进入步骤S403。
在步骤S403中,调度所述显示专用硬件加速器对所述待显示图形执行显示操作。
在步骤S404中,判断所述显示专用硬件加速器资源是否耗尽;若所述显示专用硬件加速器资源耗尽,则进入步骤S405;若所述显示专用硬件加速器资源未耗尽,则跳回到步骤S403。
在步骤S405中,调度所述图像处理单元对所述待显示图形执行显示操作。
本公开实施例中,由于在一些情况下,例如3D(3dimension,三维)图形的显示,需要进行复杂多变的图形处理,因此,可能接收到所述第一客户操作系统发出强制使用图像处理单元进行显示操作的强制请求,在这种情况下,可以使用所述图像处理单元来对待显示图形进行显示操作例如渲染操作。而在未收到所述第一客户操作系统的强制请求的情况下,可以优先调度所述显示专用硬件加速器来执行显示操作,这样,可以降低嵌入式系统的能量消耗,以及提高图像处理的速度。
图5示意性示出本公开一再示例性实施方式中用于嵌入式系统的显示资源调度方法的步骤流程图。
如图5所示,本公开实施方式提供的用于嵌入式系统的显示资源调度方法可以进一步包括以下步骤。
在步骤S501中,为第一客户操作系统分配第一组本地窗口。
本地窗口指的是主操作系统中的显示窗口,这一组显示窗口供客户操作系统进行显示使用
本公开实施例中,当嵌入式系统上的多个操作系统启动时,主操作系统首先启动,当所述主操作系统启动完成之后,所述主操作系统为所述第一客户操作系统分配第一组本地窗口,所述第一客户操作系统与所述第一组本地窗口进行绑定,然后所述第一客户操作系统开始启动。
初始时,可以将所述第一客户操作系统设置为在后台运行,其申请的第一组本地窗口此时状态设置为隐藏状态。当所述第一客户操作系统启动完成之后,所述第一客户操作系统进入休眠模式。
在示例性实施例中,所述第一组本地窗口可以包括(N+1)个本地窗口,N为大于等于1的正整数。
其中,为所述第一客户操作系统分配第一组本地窗口,可以包括:若所述显示专用硬件加速器支持显示N个图层,则使所述第一组本地窗口中的第一至第N个本地窗口分别对应所述N个图层;使所述第一组本地窗口中的第(N+1)个本地窗口对应于使用所述图像处理单元进行显示的1个图层。
在步骤S502中,接收第一客户操作系统的待显示图形。
在步骤S503中,判断M是否小于等于N;若M小于等于N,则进入步骤S504;若M大于N,则跳转到步骤S505。
在步骤S504中,将M个待显示图层分别通过第一组本地窗口中与显示专用硬件加速器对应的M个本地窗口进行显示。
在示例性实施例中,优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作,可以包括:若所述待显示图形的待显示图层数量M小于等于N,则将M个待显示图层分别通过所述第一组本地窗口中与所述显示专用硬件加速器对应的M个本地窗口进行显示;其中,M为大于等于1的正整数。
在步骤S505中,将第一至第N个待显示图层分别通过第一组本地窗口中与显示专用硬件加速器对应的N个本地窗口进行显示;且将第(N+1)至第M个待显示图层依照顺序显示于第一组本地窗口中的第(N+1)个本地窗口。
在示例性实施例中,若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作,可以包括:若所述待显示图层数量M大于N,则将第一至第N个待显示图层分别通过所述第一组本地窗口中与所述显示专用硬件加速器对应的N个本地窗口进行显示,且将第(N+1)至第M个待显示图层依照顺序显示于所述第一组本地窗口中的第(N+1)个本地窗口。
图6示意性示出本公开一种示例性实施方式中主操作系统接收第一客户操作系统传递过来的待显示图形的示意图。
在示例性实施例中,所述主操作系统中提供与所述第一客户操作系统对应的渲染引擎,所述第一客户操作系统的待显示图形中的每个待显示图层与所述渲染引擎中每个渲染线程对应;其中,接收所述第一客户操作系统的待显示图形,可以包括:所述渲染引擎与支持所述第一客户操作系统运行的虚拟机进行通信,将每个待显示图层的待显示数据通过所述虚拟机传入对应的渲染线程。
在上述实施例提供的方法实施过程中,每个客户操作系统均分别有一个对应的渲染引擎为其服务。例如,与第一客户操作系统对应的渲染引擎,与支持第一客户操作系统运行的虚拟机进行通信,按照第一客户操作系统的显示系统的操作进行运行。第一客户操作系统的显示系统中的每个待显示图层与与所述渲染引擎中的每个渲染线程一一对应,每个待显示图层需要绘制的数据或者像素可以通过所述虚拟机传入对应的渲染线程。当所述第一客户操作系统的显示系统对所有的待显示图层进行合成时,所述渲染引擎中的渲染线程按照图层合成的顺序进行绘制,选择分配给该第一客户操作系统的未使用的本地窗口,将对应渲染线程中的显示数据绘制入相应的本地窗口中,并标记相应的本地窗口的状态为使用中。在完成所述第一客户操作系统所有待显示图层的绘制操作之后,通知所述主操作系统的显示系统进行显示内容的合成,完成所述第一客户操作系统的待显示图形或者内容的显示。在对所述第一客户操作系统传递过来的待显示图形进行渲染或者其他操作时,可以由所述图像处理资源调度器调度使用所述图像处理单元或者所述显示专用硬件加速器执行对应的显示操作。
本公开实施例中,所述第一客户操作系统的显示系统是独立于主操作系统单独运行的,虽然最终的显示环节依赖于主操作系统,但是显示的内容等都是独立。
需要说明的是,上述实施例中,所述第一客户操作系统的显示系统对所有的待显示图层进行合成,和这里的通知所述主操作系统的显示系统进行待显示内容的合成,两者是不同的操作,所述第一客户操作系统发送图层合成的命令,将待显示内容合成进一组主操作系统中的本地窗口(例如第一组本地窗口)里面,这是第一步;所述主操作系统中的显示系统进行合成,将所有显示的第一组本地窗口中的各个本地窗口中的内容进行合成,这是第二步。
如图6所示,这里假设第一客户操作系统当前接收到的待显示图形具有5个待显示图层(GL1(Guest Layer 1)至GL5(Guest Layer 5)),主操作系统中的渲染引擎接收这5个待显示图层,将其分配至与该第一客户操作系统对应的第一组本地窗口(图示中的NW1(Native Window 1)至NW4(Native Window 4))中的未使用本地窗口,例如这里假设NW1和NW2(实线表示处于使用状态)是已被使用的本地窗口,NW3和NW4(虚线表示处于未使用状态)是还未被使用的本地窗口。
图6所示实施例中,假设第一客户操作系统有5个待显示图层,该5个待显示图层分别与渲染引擎中的5个渲染线程一一对应,每个待显示图层需要绘制的数据或像素通过虚拟机传入对应的渲染线程,渲染线程选择分配给该第一客户操作系统的未使用的本地窗口。在所述渲染引擎对该第一客户操作系统传递过来的待显示图形进行渲染或者其他操作时,主操作系统的该渲染引擎中的图像处理资源调度器使用GPU或者显示专用硬件加速器执行相应的操作。
图7示意性示出本公开一种示例性实施方式中接收到强制请求时的用于嵌入式系统的显示资源调度方法的示意图。
如图7所示,这里假设所述主操作系统当前接收到的第一客户操作系统传递过来的待显示图形具有6个待显示图层(GL1(Guest Layer 1)至GL6(Guest Layer6)),主操作系统给该第一客户操作系统预先分配了5个本地窗口(分别与图示中的HL1(Host Layer 1)至HL5(Host Layer 5)一一对应),其中假设显示专用硬件加速器支持显示4个图层(分别与图示中的HL1至HL4一一对应),HL5与图像处理单元对应,则当接收到强制请求时,该6个待显示图层依照顺序显示于第一组本地窗口中的第5个本地窗口。
在图7所示实施例中,假设使用第一组本地窗口中最顶上的窗口依次显示该第一客户操作系统的待显示图形的各个待显示图层,其中GL1表示最底下的待显示图层,GL6表示最顶上的待显示图层。
本公开实施例中,主操作系统中一个host layer(HL)对应一个host nativewindow(NW)。
图8示意性示出本公开一种示例性实施方式中未接收到强制请求时的用于嵌入式系统的显示资源调度方法的示意图。
如图8所示,这里还是假设所述主操作系统当前接收到的第一客户操作系统传递过来的待显示图形具有6个待显示图层(GL1(Guest Layer 1)至GL6(Guest Layer6)),主操作系统给该第一客户操作系统预先分配了5个本地窗口(分别与图示中的HL1(Host Layer1)至HL5(Host Layer 5)一一对应),其中假设显示专用硬件加速器支持显示4个图层(分别与图示中的HL1至HL4一一对应),HL5与图像处理单元对应,则当未接收到强制请求时,该6个待显示图层中的GL1和GL2分别显示于HL1和HL2对应的第一个本地窗口和第二个本地窗口,其中,GL5和GL6依照顺序显示于第一组本地窗口中的第5个本地窗口。这里用虚线表示GL3和GL4没有显示,HL3和HL4未使用。
图9示意性示出本公开一种示例性实施方式中第一客户操作系统接收到的待显示图形的待显示图层数量大于其对应的第一组本地窗口的窗口数量的示意图。
在上述实施例中的所述方法实施过程中,图像处理资源调度器在执行资源调度之前,将显示资源与用于显示的本地窗口进行分配:如果嵌入式系统中提供的显示专用硬件加速器支持渲染显示的N个图层,则分配给所述第一客户操作系统的第一组本地窗口中对应的最底下的N个本地窗口分别对应这N个图层。同时,分配给所述第一客户操作系统的第一组本地窗口中最顶上的本地窗口对应于使用所述图像处理单元进行显示的1个图层。
如图9所示,这里还是假设所述主操作系统当前接收到的第一客户操作系统传递过来的待显示图形具有6个待显示图层(GL1(Guest Layer 1)至GL6(Guest Layer6)),所述主操作系统给该第一客户操作系统预先分配了5个本地窗口(分别与图示中的(Host Layer1)至HL5(Host Layer 5)一一对应),其中假设显示专用硬件加速器支持显示4个图层(分别与图示中的HL1至HL4一一对应),HL5与图像处理单元对应,则由于M大于N,该6个待显示图层中的GL1至GL4分别显示于HL1至HL4对应的第一个本地窗口至第四个本地窗口,其中,GL5和GL6依照顺序显示于第一组本地窗口中的第5个本地窗口。
本公开实施例中,如果该第一客户操作系统的的待显示图层数量M大于N,说明显示专用硬件加速器资源耗尽,此时需要使用图像处理单元来处理多出来的这些待显示图层数量。
本公开实施例中,不管多出来的待显示图层数量是多少,例如图9中是多出来2个图层GL5和GL6,均是使用该图像处理单元来顺次处理。即所有使用GPU进行渲染的第一客户操作系统的待显示图层,都可以渲染到主操作系统的第一组本地窗口中的同一个本地窗口中去。
本公开实施例中,对某一个特定的客户操作系统而言,其可能同时使用GPU和显示专用硬件加速器来执行其待显示图形中的多个待显示图层的渲染操作或其他操作。
图10示意性示出本公开一种示例性实施方式中第一客户操作系统接收到的待显示图形的待显示图层数量等于其对应的第一组本地窗口的窗口数量的示意图。
如图10所示,这里假设第一客户操作系统当前接收到的待显示图形具有4个待显示图层(GL1至GL4),主操作系统给该第一客户操作系统预先分配了4个本地窗口(分别与图示中的HL1至HL4一一对应),其中假设显示专用硬件加速器支持显示4个图层(分别与图示中的HL1至HL4一一对应),则由于M等于N,该4个待显示图层中的GL1至GL4分别显示于HL1至HL4对应的第一个本地窗口至第四个本地窗口。
图11示意性示出本公开一种示例性实施方式中第一客户操作系统接收到的待显示图形的待显示图层数量小于其对应的第一组本地窗口的窗口数量的示意图。
如图11所示,这里还是假设第一客户操作系统当前接收到的待显示图形具有3个待显示图层(GL1至GL3),主操作系统给该第一客户操作系统预先分配了4个本地窗口(分别与图示中的HL1至HL4一一对应),其中假设显示专用硬件加速器支持显示4个图层(分别与图示中的HL1至HL4一一对应),则由于M小于N,该3个待显示图层中的GL1至GL3分别显示于HL1至HL3对应的第一个本地窗口至第三个本地窗口。第四个本地窗口HL4未被占用。
图11所示实施例中,该第一客户操作系统的待显示图层数量M小于N,则说明显示专用硬件加速器资源没有耗尽,可以不需要使用图像处理单元来处理该第一客户操作系统的图像显示。
本公开实施例中,所述图像处理资源调度器具体执行的调度方法可以如下:当所述第一客户操作系统强制要求所有的渲染都使用所述图像处理单元进行时(即第一客户操作系统向主操作系统对应的渲染引擎发出强制请求时),则所述图像处理资源调度器调度所有的显示操作例如渲染操作都使用所述图像处理单元,所述第一客户操作系统的显示系统使用分配给所述第一客户操作系统的第一组本地窗口中对应于所述图像处理单元的本地窗口(例如上述实施例中的第(N+1)个本地窗口)显示出来;当所述第一客户操作系统没有做强制使用所述图像处理单元进行渲染时,所述图像处理资源调度器可以调度所述显示专用硬件加速器进行渲染操作,将渲染的结果通过与所述显示专用硬件加速器对应的N个图层进行显示;当所述第一客户操作系统当前需要显示的待显示图形的待显示图层数量M超过N时,将N之上的待显示图层(第(N+1)至第M个待显示图层)依照顺序通过主操作系统的图像处理库绘制到所述图像处理单元对应的本地窗口中。
本公开实施例中,当所述第一客户操作系统中的应用程序使用所述主操作系统的图像处理库进行图像显示等操作时,使用所述图像处理库进行显示的所述第一客户操作系统中的待显示图层,按照顺序通过所述图像处理库绘制到所述图像处理单元对应的本地窗口中。
在上述任一实施例中,所述嵌入式系统上还可以运行第二客户操作系统。
在示例性实施例中,所述方法还可以包括:为所述第二客户操作系统分配第二组本地窗口;若所述第一客户操作系统从前台切换到后台运行,则所述第一组本地窗口从显示状态进入隐藏状态;若所述第二客户操作系统从后台切换到前台运行,则所述第二组本地窗口从隐藏状态进入显示状态。
在上述任一实施例的方法实施过程中,多个客户操作系统各自对应一组本地窗口。当一个客户操作系统切换到后台运行时,其在主操作系统中对应的一组本地窗口进入隐藏状态;切换到前台的另一个客户操作系统,其在主操作系统中对应的正在使用的另一组本地窗口进入显示状态。当多个客户操作系统之间进行切换时,其在主操作系统中对应的各组本地窗口状态变化的过程如图12所示。
如图12所示,这里假设嵌入式系统上运行四个客户操作系统,即第一至第四客户操作系统,假设给第一至第四客户操作系统分别分配了第一组至第四组本地窗口(NWs1至NWs4),当第一客户操作系统转换至第二客户操作系统时,第一组本地窗口从显示状态进入隐藏状态,第二组本地窗口从隐藏状态进入显示状态;当第二客户操作系统转换至第三客户操作系统时,第二组本地窗口从显示状态进入隐藏状态,第三组本地窗口从隐藏状态进入显示状态;当第三客户操作系统转换至第四客户操作系统时,第三组本地窗口从显示状态进入隐藏状态,第四组本地窗口从隐藏状态进入显示状态。
本公开实施例中,当某个客户操作系统切换到后台时,相应的客户操作系统在主操作系统中对应的那组本地窗口进入隐藏状态。相应的客户操作系统由于切换到后台,失去了与用户进行交互的界面,切换至休眠模式。相应的客户操作系统在主操作系统中对应的渲染引擎,通知调度所述嵌入式系统的用于图像处理资源调度的图像处理资源调度器释放其申请的显示专用硬件加速器资源。
进一步地,本公开实施方式还提供了一种用于嵌入式系统的显示资源调度装置,所述嵌入式系统上至少运行主操作系统和第一客户操作系统,所述嵌入式系统包括图像处理单元和显示专用硬件加速器;所述装置可以包括:虚拟机,可以配置为接收所述第一客户操作系统的待显示图形;图像处理资源调度器,可以配置为优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作;若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作。
在示例性实施例中,所述图像处理资源调度器可以设置于所述主操作系统中与所述第一客户操作系统相对应的渲染引擎内。
上述用于嵌入式系统的显示资源调度装置的具体细节已经在对应的用于嵌入式系统的显示资源调度方法中进行了详细的描述,因此此处不再赘述。
需要说明的是,虽然以上示例性实施方式以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或者必须执行全部的步骤才能实现期望的结果。附加地或者备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施方式中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现本公开的上述的用于嵌入式系统的显示资源调度方法。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码;该程序产品可以存储在一个非易失性存储介质(可以是CD-ROM、U盘或者移动硬盘等)中或网络上;当所述程序产品在一台计算设备(可以是个人计算机、服务器、终端装置或者网络设备等)上运行时,所述程序代码用于使所述计算设备执行本公开中上述各示例性实施例中的方法步骤。
参见图13所示,根据本公开的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑磁盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备(例如个人计算机、服务器、终端装置或者网络设备等)上运行。然而,本公开的程序产品不限于此。在本示例性实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或者多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。
可读存储介质例如可以为但不限于电、磁、光、电磁、红外线或半导体的系统、装置或器件、或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任意可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户计算设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN)等)连接到用户计算设备;或者,可以连接到外部计算设备,例如利用因特网服务提供商来通过因特网连接。
在本公开的示例性实施方式中,还提供一种电子设备,所述电子设备包括至少一个处理器以及至少一个用于存储所述处理器的可执行指令的存储器;其中,所述处理器被配置为经由执行所述可执行指令来执行本公开中上述各示例性实施例中的方法步骤。
下面结合图14对本示例性实施方式中的电子设备900进行描述。电子设备900仅仅为一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
参见图14所示,电子设备900以通用计算设备的形式表现。电子设备900的组件可以包括但不限于:至少一个处理单元910、至少一个存储单元920、连接不同系统组件(包括处理单元910和存储单元920)的总线930、显示单元940。
其中,存储单元920存储有程序代码,所述程序代码可以被处理单元910执行,使得处理单元910执行本公开中上述各示例性实施例中的方法步骤。
存储单元920可以包括易失性存储单元形式的可读介质,例如随机存取存储单元921(RAM)和/或高速缓存存储单元922,还可以进一步包括只读存储单元923(ROM)。
存储单元920还可以包括具有一组(至少一个)程序模块925的程序/实用工具924,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线930可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用各种总线结构中的任意总线结构的局域总线。
电子设备900也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,还可以与一个或者多个使得用户可以与该电子设备900交互的设备通信,和/或与使得该电子设备900能与一个或多个其他计算设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口950进行。并且,电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(LAN)、广域网(WAN)和/或公共网络,例如因特网)通信。如图14所示,网络适配器960可以通过总线930与电子设备900的其他模块通信。应当明白,尽管图中未示出,可以结合电子设备900使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
本领域技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
上述所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中,如有可能,各实施例中所讨论的特征是可互换的。在上面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组件、材料等。在其它情况下,不详细示出或描述公知结构、材料或者操作以避免模糊本公开的各方面。
Claims (13)
1.一种用于嵌入式系统的显示资源调度方法,其特征在于,所述嵌入式系统上至少运行主操作系统和第一客户操作系统,所述嵌入式系统包括图像处理单元和显示专用硬件加速器;所述方法包括:
接收所述第一客户操作系统的待显示图形;
优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作;
若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作。
2.根据权利要求1所述的方法,其特征在于,还包括:
若释放被占用的所述显示专用硬件加速器,则将所述图像处理单元执行的显示操作调度给释放的所述显示专用硬件加速器。
3.根据权利要求1所述的方法,其特征在于,还包括:
若接收到针对所述待显示图形的强制请求,则调度所述图像处理单元对所述待显示图形执行显示操作。
4.根据权利要求1所述的方法,其特征在于,还包括:
为所述第一客户操作系统分配第一组本地窗口。
5.根据权利要求4所述的方法,其特征在于,所述第一组本地窗口包括(N+1)个本地窗口,N为大于等于1的正整数;其中,为所述第一客户操作系统分配第一组本地窗口,包括:
若所述显示专用硬件加速器支持显示N个图层,则使所述第一组本地窗口中的第一至第N个本地窗口分别对应所述N个图层;
使所述第一组本地窗口中的第(N+1)个本地窗口对应于使用所述图像处理单元进行显示的1个图层。
6.根据权利要求5所述的方法,其特征在于,优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作,包括:
若所述待显示图形的待显示图层数量M小于等于N,则将M个待显示图层分别通过所述第一组本地窗口中与所述显示专用硬件加速器对应的M个本地窗口进行显示;
其中,M为大于等于1的正整数。
7.根据权利要求6所述的方法,其特征在于,若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作,包括:
若所述待显示图层数量M大于N,则将第一至第N个待显示图层分别通过所述第一组本地窗口中与所述显示专用硬件加速器对应的N个本地窗口进行显示,且将第(N+1)至第M个待显示图层依照顺序显示于所述第一组本地窗口中的第(N+1)个本地窗口。
8.根据权利要求4所述的方法,其特征在于,所述嵌入式系统上还运行第二客户操作系统;所述方法还包括:
为所述第二客户操作系统分配第二组本地窗口;
若所述第一客户操作系统从前台切换到后台运行,则所述第一组本地窗口从显示状态进入隐藏状态;
若所述第二客户操作系统从后台切换到前台运行,则所述第二组本地窗口从隐藏状态进入显示状态。
9.根据权利要求1所述的方法,其特征在于,所述主操作系统中提供与所述第一客户操作系统对应的渲染引擎,所述第一客户操作系统的待显示图形中的每个待显示图层与所述渲染引擎中每个渲染线程对应;其中,接收所述第一客户操作系统的待显示图形,包括:
所述渲染引擎与支持所述第一客户操作系统运行的虚拟机进行通信,将每个待显示图层的待显示数据通过所述虚拟机传入对应的渲染线程。
10.一种用于嵌入式系统的显示资源调度装置,其特征在于,所述嵌入式系统上至少运行主操作系统和第一客户操作系统,所述嵌入式系统包括图像处理单元和显示专用硬件加速器;所述装置包括:
虚拟机,配置为接收所述第一客户操作系统的待显示图形;
图像处理资源调度器,配置为优先调度所述显示专用硬件加速器对所述待显示图形执行显示操作;若所述显示专用硬件加速器资源耗尽,则调度所述图像处理单元对所述待显示图形执行显示操作。
11.根据权利要求10所述的装置,其特征在于,所述图像处理资源调度器设置于所述主操作系统中与所述第一客户操作系统相对应的渲染引擎内。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9中任意一项所述的用于嵌入式系统的显示资源调度方法。
13.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器被配置为经由执行所述可执行指令来执行权利要求1-9中任意一项所述的用于嵌入式系统的显示资源调度方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811109990.7A CN109324903B (zh) | 2018-09-21 | 2018-09-21 | 用于嵌入式系统的显示资源调度方法及装置 |
EP19198408.7A EP3627319B1 (en) | 2018-09-21 | 2019-09-19 | Display resource scheduling method and device for embedded system |
US16/578,332 US11010859B2 (en) | 2018-09-21 | 2019-09-21 | Display resource scheduling method and device for embedded system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811109990.7A CN109324903B (zh) | 2018-09-21 | 2018-09-21 | 用于嵌入式系统的显示资源调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109324903A true CN109324903A (zh) | 2019-02-12 |
CN109324903B CN109324903B (zh) | 2021-03-02 |
Family
ID=65265724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811109990.7A Active CN109324903B (zh) | 2018-09-21 | 2018-09-21 | 用于嵌入式系统的显示资源调度方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11010859B2 (zh) |
EP (1) | EP3627319B1 (zh) |
CN (1) | CN109324903B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569125A (zh) * | 2019-08-20 | 2019-12-13 | 合肥杰发科技有限公司 | 一种倒车显示方法、车载芯片以及车载系统 |
CN111639335A (zh) * | 2020-05-29 | 2020-09-08 | 深信服科技股份有限公司 | 沙箱的控制方法、装置、电子设备及存储介质 |
CN112184538A (zh) * | 2020-10-21 | 2021-01-05 | 展讯半导体(成都)有限公司 | 图像加速方法、相关装置、设备及存储介质 |
WO2021008390A1 (zh) * | 2019-07-17 | 2021-01-21 | Oppo广东移动通信有限公司 | 图层处理方法、装置、电子设备及计算机可读介质 |
CN113744116A (zh) * | 2020-05-29 | 2021-12-03 | Oppo广东移动通信有限公司 | 图像处理芯片和电子设备 |
CN115934405A (zh) * | 2023-01-29 | 2023-04-07 | 蔚来汽车科技(安徽)有限公司 | 检测多系统在显示设备上显示同步性 |
CN116089057A (zh) * | 2022-08-26 | 2023-05-09 | 荣耀终端有限公司 | 资源调度方法、设备、存储介质和程序产品 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102275529B1 (ko) * | 2019-12-23 | 2021-07-09 | 주식회사 텔레칩스 | 멀티-마스터를 지원하는 그래픽 처리 장치를 공유하는 시스템 온 칩 및 그래픽 처리 장치의 동작 방법 |
US20220286914A1 (en) * | 2021-03-05 | 2022-09-08 | Vmware, Inc. | Ric sdk |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309748A (zh) * | 2013-06-19 | 2013-09-18 | 上海交通大学 | 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法 |
CN105637886A (zh) * | 2014-09-25 | 2016-06-01 | 华为技术有限公司 | 用于向客户端提供图形用户界面的服务器,以及客户端 |
US9575807B2 (en) * | 2014-04-15 | 2017-02-21 | Intel Corporation | Processing accelerator with queue threads and methods therefor |
CN106886974A (zh) * | 2015-10-21 | 2017-06-23 | 联发科技股份有限公司 | 图像加速器设备及相关方法 |
CN107003875A (zh) * | 2016-12-13 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 用于多操作系统的显示方法、装置和电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8274518B2 (en) * | 2004-12-30 | 2012-09-25 | Microsoft Corporation | Systems and methods for virtualizing graphics subsystems |
US7827383B2 (en) * | 2007-03-09 | 2010-11-02 | Oracle America, Inc. | Efficient on-chip accelerator interfaces to reduce software overhead |
AU2008343568B2 (en) * | 2007-12-27 | 2015-05-14 | Siemens Heathcare Diagnostics Inc. | Method and apparatus for remote multiple-process graphical monitoring |
US20110102443A1 (en) * | 2009-11-04 | 2011-05-05 | Microsoft Corporation | Virtualized GPU in a Virtual Machine Environment |
US9665921B2 (en) * | 2012-12-29 | 2017-05-30 | Futurewei Technologies, Inc. | Adaptive OpenGL 3D graphics in virtual desktop infrastructure |
US9946566B2 (en) * | 2015-09-28 | 2018-04-17 | Intel Corporation | Method and apparatus for light-weight virtualization contexts |
US10282806B2 (en) * | 2016-04-20 | 2019-05-07 | Mediatek, Inc. | Graphics Accelerator |
-
2018
- 2018-09-21 CN CN201811109990.7A patent/CN109324903B/zh active Active
-
2019
- 2019-09-19 EP EP19198408.7A patent/EP3627319B1/en active Active
- 2019-09-21 US US16/578,332 patent/US11010859B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309748A (zh) * | 2013-06-19 | 2013-09-18 | 上海交通大学 | 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法 |
US9575807B2 (en) * | 2014-04-15 | 2017-02-21 | Intel Corporation | Processing accelerator with queue threads and methods therefor |
CN105637886A (zh) * | 2014-09-25 | 2016-06-01 | 华为技术有限公司 | 用于向客户端提供图形用户界面的服务器,以及客户端 |
CN106886974A (zh) * | 2015-10-21 | 2017-06-23 | 联发科技股份有限公司 | 图像加速器设备及相关方法 |
CN107003875A (zh) * | 2016-12-13 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 用于多操作系统的显示方法、装置和电子设备 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021008390A1 (zh) * | 2019-07-17 | 2021-01-21 | Oppo广东移动通信有限公司 | 图层处理方法、装置、电子设备及计算机可读介质 |
CN110569125A (zh) * | 2019-08-20 | 2019-12-13 | 合肥杰发科技有限公司 | 一种倒车显示方法、车载芯片以及车载系统 |
CN110569125B (zh) * | 2019-08-20 | 2022-07-15 | 合肥杰发科技有限公司 | 一种倒车显示方法、车载芯片以及车载系统 |
CN111639335A (zh) * | 2020-05-29 | 2020-09-08 | 深信服科技股份有限公司 | 沙箱的控制方法、装置、电子设备及存储介质 |
CN113744116A (zh) * | 2020-05-29 | 2021-12-03 | Oppo广东移动通信有限公司 | 图像处理芯片和电子设备 |
CN112184538A (zh) * | 2020-10-21 | 2021-01-05 | 展讯半导体(成都)有限公司 | 图像加速方法、相关装置、设备及存储介质 |
CN112184538B (zh) * | 2020-10-21 | 2023-02-14 | 展讯半导体(成都)有限公司 | 图像加速方法、相关装置、设备及存储介质 |
CN116089057A (zh) * | 2022-08-26 | 2023-05-09 | 荣耀终端有限公司 | 资源调度方法、设备、存储介质和程序产品 |
CN116089057B (zh) * | 2022-08-26 | 2023-10-20 | 荣耀终端有限公司 | 资源调度方法、设备、存储介质和程序产品 |
CN115934405A (zh) * | 2023-01-29 | 2023-04-07 | 蔚来汽车科技(安徽)有限公司 | 检测多系统在显示设备上显示同步性 |
CN115934405B (zh) * | 2023-01-29 | 2023-07-21 | 蔚来汽车科技(安徽)有限公司 | 检测多系统在显示设备上显示同步性 |
Also Published As
Publication number | Publication date |
---|---|
US20200098081A1 (en) | 2020-03-26 |
CN109324903B (zh) | 2021-03-02 |
EP3627319B1 (en) | 2023-01-25 |
EP3627319A1 (en) | 2020-03-25 |
US11010859B2 (en) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109324903A (zh) | 用于嵌入式系统的显示资源调度方法及装置 | |
CN107003892A (zh) | Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品 | |
CN107077377A (zh) | 一种设备虚拟化方法、装置、系统及电子设备、计算机程序产品 | |
CN108984264A (zh) | 虚拟gpu的实现方法、装置及系统 | |
CN102707986A (zh) | 子分区与父分区之间的共享存储器 | |
CN111597042A (zh) | 业务线程运行方法、装置、存储介质及电子设备 | |
CN104778022B (zh) | 一种数据处理方法及电子设备 | |
CN103701807A (zh) | 一种vdi环境下的数据发送方法和装置 | |
CN107291319A (zh) | 一种窗口显示方法、信息交互方法及系统 | |
CN109906437A (zh) | 基于线程重要性的处理器核停止和频率选择 | |
CN108093292A (zh) | 用于管理缓存的方法、装置及系统 | |
KR20120087967A (ko) | 응용 프로그램 화상의 표시 방법 및 장치 | |
CN115543615A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN107077375A (zh) | 用于多操作系统的显示方法、装置和电子设备 | |
CN115048216B (zh) | 一种人工智能集群的资源管理调度方法、装置和设备 | |
CN106095417B (zh) | 一种前景应用程序界面刷新同步方法及系统 | |
CN109725977A (zh) | 一种基于Android系统的多应用显示方法及终端设备 | |
CN106844008A (zh) | 一种数据操作的方法、设备及系统 | |
CN114911596A (zh) | 针对模型训练的调度方法、装置、电子设备和存储介质 | |
WO2013035246A1 (ja) | 仮想計算機制御装置、仮想計算機制御方法、仮想計算機制御プログラム、及び集積回路 | |
CN113419846A (zh) | 资源配置方法和装置、电子设备及计算机可读存储介质 | |
CN110058905A (zh) | 事件处理及操作系统管理方法、装置、设备以及存储介质 | |
CN114570020A (zh) | 数据处理方法以及系统 | |
CN103440159B (zh) | 进程调度方法和系统 | |
CN109639460A (zh) | Nfv资源管理的方法和装置 |
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 |