CN108241527A - 一种任务调度方法及电子设备 - Google Patents
一种任务调度方法及电子设备 Download PDFInfo
- Publication number
- CN108241527A CN108241527A CN201611218172.1A CN201611218172A CN108241527A CN 108241527 A CN108241527 A CN 108241527A CN 201611218172 A CN201611218172 A CN 201611218172A CN 108241527 A CN108241527 A CN 108241527A
- Authority
- CN
- China
- Prior art keywords
- target process
- thread
- task scheduling
- path
- critical path
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种任务调度方法及电子设备,该方法包括:监测系统运行状态,所述系统运行状态包括目标进程的状态;根据系统运行状态,采用目标进程对应的任务调度策略进行任务调度;其中,所述目标进程为与虚拟现实VR和/或增强现实AR相关的进程。上述方法用于缓解现有技术中存在的,操作系统采用公平调度策略不能满足AR/VR设备实时显示的要求,导致屏幕撕裂和花屏的技术问题,实现了保证显示的实时性的技术效果。
Description
技术领域
本发明涉及信息处理领域,尤其涉及一种任务调度方法及电子设备。
背景技术
现有的VR(Virtual Reality;虚拟现实)/AR(Augmented Reality;增强现实)设备,大多都是基于通用操作系统,如安卓Android系统进行开发的,通用系统的任务调度比较公平,以尽量保证所有的任务可以获得相等的CPU(Central Processing Unit;中央处理器)资源。
由于VR/AR设备对实时显示的要求较高,因此,为了降低显示时延,VR/AR设备可以采用FBR(Front Buffer Rendering;前缓冲区渲染)模式,FBR系模式允许VR/AR设备的GPU(Graphics Processing Unit;图形处理器)和显示控制器同时写和读同一块内存,从而减小中间缓存,以降低显示时延。
通常情况下,在显示控制器扫描完内存中的一帧数据后,可以通过显示控制器的垂直同步VSYNC中断信号通知GPU绘制下一帧数据,具体的,VSYNC中断信号由内核中断上报到屏幕绘制程序(屏幕绘制程序为负责调用GPU的应用程序),再由屏幕绘制程序通知GPU进行绘制。由于通用系统的任务调度比较公平,在系统负载比较高时,屏幕绘制程序的执行或者VSYNC中断信号的上报可能会产生延误,使得GPU向内存写入数据和显示控制器从内存中读取数据的时序出错,导致严重的屏幕撕裂和花屏现象。
可见,现有技术中,操作系统采用公平调度策略不能满足VR/AR设备实时显示的要求,会导致屏幕撕裂和花屏现象。
发明内容
本发明的目的是提供一种任务调度方法及电子设备,用于解决现有技术中,操作系统采用公平调度策略不能满足VR/AR设备实时显示的要求,会导致屏幕撕裂和花屏现象的技术问题。
为了实现上述发明目的,本发明实施例第一方面提供一种任务调度方法,包括:
监测系统运行状态,所述系统运行状态包括目标进程的状态;
根据所述系统运行状态,采用所述目标进程对应的任务调度策略进行任务调度;其中,所述目标进程为与虚拟现实VR和/或增强现实AR相关的进程。
可选的,所述系统运行状态包括目标进程的状态,所述根据系统运行状态,采用目标进程对应的任务调度策略,包括:
在所述目标进程执行时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
可选的,隔离目标进程对应的CPU核包括:
将所述目标进程绑定到专用CPU核上;
将所述非目标进程绑定到通用CPU核上,和/或,将中断和与所述中断对应的中断服务例程绑定到中断处理CPU核上。
可选的,提高目标进程对应的关键路径的优先级包括:
对所述关键路径上的线程设置比所述关键路径外的线程高的优先级,所述关键路径为包括所述目标进程中的一个或多个线程的路径;
采用实时调度算法对所述关键路径上的线程进行调度。
可选的,所述关键路径包括:显示路径、渲染路径和传感器路径中的一个或多个;
所述显示路径包括垂直同步VSYNC中断信号上报到前缓冲区渲染FBR线程的通道内的内核态线程和用户态线程;所述渲染路径包括图形处理器GPU中断信号上报到FBR线程的通道内的内核态线程和用户态线程;所述传感器路径包括传感器中断信号上报到传感器收集处理线程的通道内的内核态线程和用户态线程。
本发明实施例第二方面提供一种电子设备,包括:
状态监测模块,监测系统运行状态,所述系统运行状态包括目标进程的状态;
任务调度模块,用于根据所述系统运行状态,采用所述目标进程对应的任务调度策略进行任务调度;其中,所述目标进程为与虚拟现实VR和/或增强现实AR相关的进程。
可选的,所述任务调度模块用于:
在所述目标进程执行时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
可选的,所述系统运行状态还包括系统负载,所述根据系统运行状态,采用目标进程对应的任务调度策略,包括:
在当前系统负载大于或等于系统负载阈值时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
可选的,所述电子设备还包括任务调度策略配置模块,用于:
将所述目标进程绑定到专用CPU核上;
将所述非目标进程绑定到通用CPU核上,和/或,将中断和与所述中断对应的中断服务例程绑定到中断处理CPU核上。
可选的,所述系统运行状态还包括系统负载,所述任务调度模块用于:
在当前系统负载大于或等于系统负载阈值时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
可选的,所述电子设备还包括任务调度策略配置模块,用于:
对所述关键路径上的线程设置比所述关键路径外的线程高的优先级,所述关键路径为包括所述目标进程中的一个或多个线程的路径;
采用实时调度算法对所述关键路径上的线程进行调度;
其中,所述关键路径包括:显示路径、渲染路径和传感器路径中的一个或多个;
所述显示路径包括垂直同步VSYNC中断信号上报到前缓冲区渲染FBR线程的通道内的内核态线程和用户态线程;所述渲染路径包括图形处理器GPU中断信号上报到FBR线程的通道内的内核态线程和用户态线程;所述传感器路径包括传感器中断信号上报到传感器收集处理线程的通道内的内核态线程和用户态线程。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果或者优点:
本发明实施例的方案中,通过监测系统运行状态,并根据系统运行状态,采用目标进程对应的任务调度策略进行任务调度,其中,目标进程为AR/VR进程,操作系统根据系统运行状态,确定是否采用AR/VR进程对应的任务调度策略进行任务调度,避免了操作系统始终使用默认的公平调度策略进行任务调度,从而缓解现有技术中存在的,操作系统采用公平调度策略不能满足AR/VR设备实时显示的要求,导致屏幕撕裂和花屏的技术问题,实现了保证显示的实时性的技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图:
图1为本发明实施例提供的任务调度方法的流程图;
图2为本发明实施例提供的渲染路径的示意图;
图3为本发明实施例提供的电子设备的功能模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。例如:用户运行电子设备上的应用程序,操作系统就创建一个进程,并为它分配资源,资源包括各种表格、内存空间、磁盘空间、I/O设备等。通常,用户启动一个应用程序时,操作系统可能会创建一个或多个进程。而在一个进程中可以包含一个或多个线程,它们可以利用进程所拥有的资源,在一个进程的多个线程之间,可以并发执行,同样,不同进程中的线程也能并发执行,从而充分利用处理机与外围设备并行工作的能力。因此,本发明实施例中,任务调度指对目标进程中的线程进行调度。
请参考图1,图1为本发明实施例提供的任务调度方法的流程图,该方法应用于电子设备中,电子设备可以为VR/AR专用设备,例如:VR一体机,智能眼镜等,电子设备也可以为通用设备,例如:计算机、智能手机等。该方法包括以下步骤。
步骤10,监测系统运行状态,所述系统运行状态包括目标进程的状态。
步骤11,根据所述系统运行状态,采用所述目标进程对应的任务调度策略进行任务调度;其中,所述目标进程为与虚拟现实VR和/或增强现实AR相关的进程。
在步骤10中,系统运行状态包括但不限于目标进程的状态、系统负载、硬件温度和系统电量等。其中,进程的状态通常分为五个状态,即初始状态,就绪状态,执行状态,等待状态和终止状态;系统负载是指电子设备的任务执行队列的长度;硬件温度可以为CPU或GPU等的温度。与VR/AR相关的进程可以为运行VR/AR相关的应用程序时创建的进程,VR/AR相关的应用程序可以为VR游戏、AR游戏或VR视频等等。
在步骤11中,操作系统可以根据系统运行状态确定是否采用目标进程对应的任务调度策略。在实际应用中,操作系统可以对系统运行状态进行实时监测,也可以每隔一段时间对系统运行状态进行一次监测,在此不作限制。
举例来讲,系统运行状态可以为目标进程的状态,不同的系统运行状态可以对应不同的任务调度策略,在AR/VR进程执行时,采用与AR/VR进程对应的任务调度策略进行任务调度;在AR/VR进程关闭时,采用操作系统默认的公平调度策略进行任务调度;使得在AR/VR进程运行时,避免操作系统使用默认的公平调度策略进行任务调度,从而保证AR/VR进程的能够得到及时调度。
又例如:系统运行状态可以为系统负载,在当前系统负载大于或者等于系统负载阈值时,采用目标进程对应的任务调度策略进行任务调度,在系统负载小于系统负载阈值时,采用操作系统默认的公平调度策略进行任务调度,相对于现有技术中固定的调度方式,提高了系统的灵活性,避免了系统资源的浪费。其中,系统负载阈值可以为根据经验值设置的值。
本发明实施例中,在AR/VR进程执行时,操作系统还可以进一步监测进程的处于前台运行状态还是后台运行状态,然后,在AR/VR进程为前台运行状态时,采用与AR/VR进程对应的任务调度策略进行任务调度,在AR/VR进程从前台运行状态切换至后台运行状态时,采用公平调度策略进行调度,以减少操作系统中实时进程的数量。
本发明实施例中,目标进程对应的任务调度策略包括不限于以下三种实施方式,在具体实施过程中,可以采用以下三种实施方式中的一种或多种任务调度策略对目标进程进行调度,在此不作限制。
第一种实施方式:隔离目标进程对应的CPU。其中,目标进程为VR/AR进程,非目标进程为除VR/AR进程外的其他进程。
一种可能的情况为,通过CPU分区将运行目标进程的CPU和运行非目标进程的CPU完全隔离,具体的,可以将目标进程绑定到专用CPU核上,并将非目标进程绑定到通用CPU核上,则即使在系统负载较高时,非目标进程也不能迁移到专用CPU核上,从而避免非目标进程挤占专用CPU核,保证目标进程能够得到及时调度。
举例来讲,假设专用CPU核运行的VR/AR进程中包括FBR线程,FBR线程用于通过GPU对VR/AR场景的左右眼纹理数据进行在线合成,并将合成后的数据提供给显示屏显示,因此,FBR线程对实时性的要求较高。通用CPU核在执行一些CPU消耗型任务时,例如:压缩解压缩软任务或视频转换任务等,如果不将运行FBR线程的CPU核隔离,在通用CPU核的负载很高时,这些CPU消耗型任务有可能会迁移到专用CPU核上,引起调度不均衡,而通过将运行目标进程的CPU和运行非目标进程的CPU完全隔离,即使通用CPU核的负载很高,CPU消耗型任务也不能迁移到专用CPU核上执行,从而避免CPU消耗型任务影响FBR线程的执行。
另一种可能的情况为,通过CPU分区将运行目标进程的CPU和接收电子设备的中断和运行中断对应的中断服务例程的CPU完全隔离,具体的,可以将目标进程绑定到专用CPU核上,并将中断和中断对应的中断服务例程绑定到中断处理CPU核上,则即使在系统负载较高时,也可以避免处理中断的内核线程和中断服务例程挤占专用CPU核,从而保证VR/AR进程能够得到及时调度。
其中,中断是指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程,即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。中断服务例程是指在CPU知道中断发生后,CPU将该中断处理委托给一个软件例程执行,该软件例程可能会修复故障、提供专门的处理或将外部事件通知用户进程,该软件例程即为中断服务例程。
本发明实施例中,还可以通过CPU分区将运行目标进程的CPU、运行非目标进程的CPU和处理中断的CPU完全隔离,使得非目标进程、中断和中断服务例程都不会挤占专用CPU核,从而保证VR/AR进程能够得到及时调度,避免由于其他非目标进程或者中断影响到FBR线程的执行,导致屏幕撕裂或花屏。
在实际应用中,对于VR/AR设备,由于运行的VR/AR进程较多,可以为VR/AR进程分配比非VR/AR进程和中断更多的CPU核,从而保证VR/AR进程能够得到及时调度。
接下来,对CPU分区方法进行说明。CPU分区方法可以为硬件隔离和软件隔离,硬件隔离是指采用多个独立的CPU芯片进行隔离;软件隔离是指对于多核CPU,在操作系统启动时,通过设置操作系统的启动参数(如linux系统的isolcpus参数)来保留专用的CPU核,或者通过虚拟CPU机制对多个CPU核进行隔离。其中,专用CPU核、通用CPU核和中断处理CPU核可以为一个多核CPU上的不同CPU核,也可以为多个独立的CPU芯片的CPU核,在此不作限制。
第二种实施方式:限制非目标进程占用的资源的额度。其中,所述资源为CPU资源和/或内存资源,对于额度,本领域技术人员可以根据经验值进行设置,例如,可以限制非目标进程占用内存资源的额度为20%,则在操作系统运行内存消耗较大的任务时,也不会占用太多的内存资源,从而为VR/AR进程的运行保留较多的内存资源。举例来讲,在电子设备缓存视频时,可能会占用较多的内存资源,此时,可以限制非目标进程占用内存资源的额度为20%,则在电子设备缓存视频时,缓存视频的进程和其他系统进程最多能够占用20%的内存资源,从而将剩余的80%内存资源保留给VR/AR进程使用。同样的,也可以对非目标进程占用CPU资源的额度进行设置,在此不再详述。
第三种实施方式:提高目标进程对应的关键路径的优先级。本发明实施例中,关键路径是指程序中具有最长等待时间的路径,关键路径上的任何线程或消息被延迟,都会造成整个路径的等待时间变长。为了保证VR/AR进程能够得到及时调度,根据一种可能的实施方式,在目标进程启动时,可以提高目标进程对应的关键路径的优先级。
具体的,目标进程对应的关键路径是指包括目标进程中的一个或多个线程的关键路径。例如:对于VR/AR进程,关键路径可以包括显示路径、渲染路径和传感器路径中的一个或多个,其中,显示路径包括在显示控制器扫描完成一帧图像后,将VSYNC中断信号上报到FBR线程的通道内的所有内核态线程和用户态线程;渲染路径包括在GPU完成一次场景渲染后,将GPU中断信号上报到FBR线程的通道内的所有内核态线程和用户态线程;传感器路径包括在传感器完成一次数据后将传感器中断信号上报到传感器收集处理线程的通道内的所有内核态线程和用户态线程,FBR线程和传感器收集处理线程为VR/AR进程中的线程,FBR线程用于通过GPU对VR/AR场景的左右眼纹理数据进行在线合成,并将合成后的数据提供给显示屏显示,传感器收集处理线程用于在用户佩戴VR/AR设备时,采集用户头部转动的传感器数据。
然后,对关键路径上的这些线程可以设置比关键路径外的其他线程更高的优先级,优先级越高,操作系统对线程的调度越及时。并且,在进程运行时,操作系统采用实时调度算法对关键路径上的线程进行调度,实时调度算法会优先调度优先级高的线程,使得关键路径上的线程得到及时调度。其中,实时调度算法可以为先进先出实时调度算法或基于时间片的先进先出实时调度算法。
在实际应用中,关键路径可以为预先设置好的,例如:对于VR/AR进程,关键路径可以为现实路径、渲染路径和传感器路径中的一个或多个;关键路径也可以为在目标进程启动时,根据目标进程中的线程确定的,则关键路径为包括目标进程中的一个或多个线程的路径,例如:对于RBR线程,执行FBR线程时,操作系统会调用其他内核中的线程和用户态驱动线程,则该关键路径包括FBR线程本身和操作系统调用的所有内核态线程和用户态驱动线程。
接下来,以关键路径为渲染路径为例对关键路径的调度方法进行详细说明。
渲染路径包括GPU中断信号上报到FBR线程的通道内的所有内核态线程和用户态线程,在VR/AR设备采用FBR模式进行图像渲染时,内核态线程包括GPU内核态驱动线程、GPU中断信号对应的中断服务例程和GPU渲染线程,用户态线程包括GPU用户态驱动线程、FBR线程和主渲染线程,其中,主渲染线程和FBR线程为屏幕绘制程序(屏幕绘制程序为负责调用GPU的应用程序)中的线程,主渲染线程用于控制GPU进行场景渲染,将场景通过GPU绘制到左右眼纹理上,FBR线程用于通过GPU对左右眼纹理数据进行在线合成,并将合成后的数据提供给显示屏显示。
在GPU渲染图像的过程中,首先,主渲染线程生成绘制指令,并将绘制指令提交到GPU用户态驱动线程和GPU内核态驱动线程,GPU用户态驱动线程和GPU内核态驱动线程合并或处理绘制指令,然后,将绘制指令提交到GPU侧,GPU在接收到绘制指令后,开始进行一帧图像的渲染。
如图2所示,在GPU渲染完成一帧图像数据后,GPU会发出中断信号,该中断信号用于通知主渲染线程和FBR线程,在GPU发出中断信号后,由GPU内核态驱动线程接收到中断信号,GPU内核态驱动线程在接收到该中断信号后,会调用与GPU中断信号对应的中断服务例程,将GPU中断信号通知GPU渲染线程,再由GPU渲染线程通知GPU用户态驱动线程,最后,由GPU用户态驱动线程通知FBR线程和主渲染线程,从而完成一次绘制过程,然后,FBR线程接收到GPU中断信号后,控制GPU对左右眼纹理数据进行在线合成,主渲染线程接收到GPU中断信号后,生成下一帧图像的绘制指令,控制GPU开始渲染下一帧图像。
对于渲染路径,如果只提高屏幕绘制程序(包括主渲染线程和FBR线程)的优先级,而关键路径上的其他线程的优先级没有提高,包括GPU用户态驱动线程、GPU内核态驱动线程、中断服务线程和GPU渲染线程等,则在这些线程上可能存在线程的执行或消息传递被延迟,从而导致整个绘制过程被延迟,因此,通过提高关键路径上的所有线程的优先级,能够减少关键路径的等待时间,使得整条通路上不存在高延迟的环节,从而保证整个渲染过程的实时性。
基于同一发明构思,本发明实施例还提供一种电子设备,如图3所示,该电子设备包括:
状态监测模块30,用于监测系统运行状态,所述系统运行状态包括目标进程的状态;
任务调度模块31,用于根据所述系统运行状态,采用所述目标进程对应的任务调度策略进行任务调度;其中,所述目标进程为与虚拟现实VR和/或增强现实AR相关的进程。
可选的,所述系统运行状态包括目标进程的状态,所述任务调度模块31用于:
在所述目标进程执行时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
可选的,所述系统运行状态还包括系统负载,所述任务调度模块31用于:
在当前系统负载大于或等于系统负载阈值时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
可选的,所述电子设备还包括任务调度策略配置模块,用于:
将所述目标进程绑定到专用CPU核上;
将所述非目标进程绑定到通用CPU核上,和/或,将中断和与所述中断对应的中断服务例程绑定到中断处理CPU核上。
可选的,所述电子设备还包括任务调度策略配置模块,用于:
对所述关键路径上的线程设置比所述关键路径外的线程高的优先级,所述关键路径为包括所述目标进程中的一个或多个线程的路径;
采用实时调度算法对所述关键路径上的线程进行调度;
其中,所述关键路径包括:显示路径、渲染路径和传感器路径中的一个或多个;
所述显示路径包括垂直同步VSYNC中断信号上报到前缓冲区渲染FBR线程的通道内的内核态线程和用户态线程;所述渲染路径包括图形处理器GPU中断信号上报到FBR线程的通道内的内核态线程和用户态线程;所述传感器路径包括传感器中断信号上报到传感器收集处理线程的通道内的内核态线程和用户态线程。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果或者优点:
本发明实施例的方案中,通过监测系统运行状态,并根据系统运行状态,采用目标进程对应的任务调度策略进行任务调度,其中,目标进程为AR/VR进程,操作系统根据系统运行状态,确定是否采用AR/VR进程对应的任务调度策略进行任务调度,避免了操作系统始终使用默认的公平调度策略进行任务调度,从而缓解现有技术中存在的,操作系统采用公平调度策略不能满足AR/VR设备实时显示的要求,导致屏幕撕裂和花屏的技术问题,实现了保证显示的实时性的技术效果。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (11)
1.一种任务调度方法,其特征在于,包括:
监测系统运行状态,所述系统运行状态包括目标进程的状态;
根据所述系统运行状态,采用所述目标进程对应的任务调度策略进行任务调度;其中,所述目标进程为与虚拟现实VR和/或增强现实AR相关的进程。
2.如权利要求1所述的方法,其特征在于,所述根据系统运行状态,采用目标进程对应的任务调度策略,包括:
在所述目标进程执行时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
3.如权利要求1所述的方法,其特征在于,所述系统运行状态还包括系统负载,所述根据系统运行状态,采用目标进程对应的任务调度策略,包括:
在当前系统负载大于或等于系统负载阈值时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
4.如权利要求2或3所述的方法,其特征在于,隔离目标进程对应的CPU核的方法包括:
将所述目标进程绑定到专用CPU核上;将所述非目标进程绑定到通用CPU核上,和/或,将中断和与所述中断对应的中断服务例程绑定到中断处理CPU核上。
5.如权利要求2或3所述的方法,其特征在于,提高目标进程对应的关键路径的优先级的方法包括:
对所述关键路径上的线程设置比所述关键路径外的线程高的优先级,所述关键路径为包括所述目标进程中的一个或多个线程的路径;
采用实时调度算法对所述关键路径上的线程进行调度。
6.如权利要求5所述的方法,其特征在于,所述关键路径包括:显示路径、渲染路径和传感器路径中的一个或多个;
所述显示路径包括垂直同步VSYNC中断信号上报到前缓冲区渲染FBR线程的通道内的内核态线程和用户态线程;所述渲染路径包括图形处理器GPU中断信号上报到FBR线程的通道内的内核态线程和用户态线程;所述传感器路径包括传感器中断信号上报到传感器收集处理线程的通道内的内核态线程和用户态线程。
7.一种电子设备,其特征在于,包括:
状态监测模块,用于监测系统运行状态,所述系统运行状态包括目标进程的状态;
任务调度模块,用于根据所述系统运行状态,采用所述目标进程对应的任务调度策略进行任务调度;其中,所述目标进程为与虚拟现实VR和/或增强现实AR相关的进程。
8.如权利要求7所述的电子设备,其特征在于,所述系统运行状态包括目标进程的状态,所述任务调度模块用于:
在所述目标进程执行时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
9.如权利要求8所述的电子设备,其特征在于,所述系统运行状态还包括系统负载,所述任务调度模块用于:
在当前系统负载大于或等于系统负载阈值时,采用隔离目标进程对应的CPU核、限制非目标进程占用的资源的额度和提高目标进程对应的关键路径的优先级中的一种或多种任务调度策略,进行任务调度;
其中,所述非目标进程为所述电子设备上除所述目标进程外的其他进程,所述资源为CPU资源和/或内存资源。
10.如权利要求8或9所述的电子设备,其特征在于,所述电子设备还包括任务调度策略配置模块,用于:
将所述目标进程绑定到专用CPU核上;
将所述非目标进程绑定到通用CPU核上,和/或,将中断和与所述中断对应的中断服务例程绑定到中断处理CPU核上。
11.如权利要求8或9所述的电子设备,其特征在于,所述电子设备还包括任务调度策略配置模块,用于:
对所述关键路径上的线程设置比所述关键路径外的线程高的优先级,所述关键路径为包括所述目标进程中的一个或多个线程的路径;
采用实时调度算法对所述关键路径上的线程进行调度;
其中,所述关键路径包括:显示路径、渲染路径和传感器路径中的一个或多个;所述显示路径包括垂直同步VSYNC中断信号上报到前缓冲区渲染FBR线程的通道内的内核态线程和用户态线程;所述渲染路径包括图形处理器GPU中断信号上报到FBR线程的通道内的内核态线程和用户态线程;所述传感器路径包括传感器中断信号上报到传感器收集处理线程的通道内的内核态线程和用户态线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611218172.1A CN108241527B (zh) | 2016-12-26 | 2016-12-26 | 一种任务调度方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611218172.1A CN108241527B (zh) | 2016-12-26 | 2016-12-26 | 一种任务调度方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108241527A true CN108241527A (zh) | 2018-07-03 |
CN108241527B CN108241527B (zh) | 2021-10-08 |
Family
ID=62701344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611218172.1A Active CN108241527B (zh) | 2016-12-26 | 2016-12-26 | 一种任务调度方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241527B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109358830A (zh) * | 2018-09-20 | 2019-02-19 | 京东方科技集团股份有限公司 | 消除ar/vr画面撕裂的双屏显示方法及ar/vr显示设备 |
CN109491788A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种虚拟化平台负载均衡实现方法及装置 |
CN110955499A (zh) * | 2018-09-26 | 2020-04-03 | Oppo广东移动通信有限公司 | 处理器核心配置方法、装置、终端及存储介质 |
CN111666318A (zh) * | 2019-03-05 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 图形绘制方法和装置以及电子设备 |
CN112338919A (zh) * | 2020-10-30 | 2021-02-09 | 珠海市一微半导体有限公司 | 一种机器人的运行控制方法、机器人及芯片 |
CN112988400A (zh) * | 2021-04-30 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 显存优化方法、装置、电子设备以及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073545A (zh) * | 2011-02-28 | 2011-05-25 | 中国人民解放军国防科学技术大学 | 操作系统中防止用户界面卡屏的进程调度方法及装置 |
CN103617071A (zh) * | 2013-12-02 | 2014-03-05 | 北京华胜天成科技股份有限公司 | 一种资源独占及排它的提升虚拟机计算能力的方法及装置 |
CN104536822A (zh) * | 2014-12-31 | 2015-04-22 | 中科创达软件股份有限公司 | 一种进程调度优化方法、进程执行方法及相关装置 |
CN105224886A (zh) * | 2014-06-26 | 2016-01-06 | 中国移动通信集团甘肃有限公司 | 一种移动终端安全隔离方法、装置及移动终端 |
US20160026507A1 (en) * | 2014-07-24 | 2016-01-28 | Qualcomm Innovation Center, Inc. | Power aware task scheduling on multi-processor systems |
-
2016
- 2016-12-26 CN CN201611218172.1A patent/CN108241527B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073545A (zh) * | 2011-02-28 | 2011-05-25 | 中国人民解放军国防科学技术大学 | 操作系统中防止用户界面卡屏的进程调度方法及装置 |
CN103617071A (zh) * | 2013-12-02 | 2014-03-05 | 北京华胜天成科技股份有限公司 | 一种资源独占及排它的提升虚拟机计算能力的方法及装置 |
CN105224886A (zh) * | 2014-06-26 | 2016-01-06 | 中国移动通信集团甘肃有限公司 | 一种移动终端安全隔离方法、装置及移动终端 |
US20160026507A1 (en) * | 2014-07-24 | 2016-01-28 | Qualcomm Innovation Center, Inc. | Power aware task scheduling on multi-processor systems |
CN104536822A (zh) * | 2014-12-31 | 2015-04-22 | 中科创达软件股份有限公司 | 一种进程调度优化方法、进程执行方法及相关装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109358830A (zh) * | 2018-09-20 | 2019-02-19 | 京东方科技集团股份有限公司 | 消除ar/vr画面撕裂的双屏显示方法及ar/vr显示设备 |
CN110955499A (zh) * | 2018-09-26 | 2020-04-03 | Oppo广东移动通信有限公司 | 处理器核心配置方法、装置、终端及存储介质 |
CN110955499B (zh) * | 2018-09-26 | 2022-11-18 | Oppo广东移动通信有限公司 | 处理器核心配置方法、装置、终端及存储介质 |
CN109491788A (zh) * | 2018-11-01 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种虚拟化平台负载均衡实现方法及装置 |
CN111666318A (zh) * | 2019-03-05 | 2020-09-15 | 阿里巴巴集团控股有限公司 | 图形绘制方法和装置以及电子设备 |
CN111666318B (zh) * | 2019-03-05 | 2023-10-27 | 阿里巴巴集团控股有限公司 | 图形绘制方法和装置以及电子设备 |
CN112338919A (zh) * | 2020-10-30 | 2021-02-09 | 珠海市一微半导体有限公司 | 一种机器人的运行控制方法、机器人及芯片 |
CN112338919B (zh) * | 2020-10-30 | 2022-03-04 | 珠海一微半导体股份有限公司 | 一种机器人的运行控制方法、机器人及芯片 |
CN112988400A (zh) * | 2021-04-30 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 显存优化方法、装置、电子设备以及可读存储介质 |
CN112988400B (zh) * | 2021-04-30 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 显存优化方法、装置、电子设备以及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108241527B (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108241527A (zh) | 一种任务调度方法及电子设备 | |
CN102890643B (zh) | 基于应用效果即时反馈的显卡虚拟化下的资源调度系统 | |
CN102317917B (zh) | 热点域虚拟机cpu调度方法及虚拟机系统 | |
JP4383853B2 (ja) | 時間アロケータを有するグラフィックレンダリングエンジンを用いる装置、方法及びシステム | |
CN107577185B (zh) | 一种任务执行方法及基于多核处理器的控制器 | |
US9652300B2 (en) | Systems, methods, and computer program products for preemption of threads at a synchronization barrier | |
CN107295285B (zh) | 视频数据的处理方法、处理装置及存储介质 | |
CN109992347B (zh) | 界面显示方法、装置、终端及存储介质 | |
CN111737019B (zh) | 一种显存资源的调度方法、装置及计算机存储介质 | |
TW202024866A (zh) | 飛行中適應性注視點顯像 | |
CN105320561A (zh) | 任务管理方法和系统 | |
EP1880277A2 (en) | Command execution controlling apparatus, command execution instructing apparatus and command execution controlling method | |
CN102404633B (zh) | 一种监控装置、智能电视系统及电视机 | |
CN109906437A (zh) | 基于线程重要性的处理器核停止和频率选择 | |
CN109151966A (zh) | 终端控制方法、装置、终端设备及存储介质 | |
WO2016192079A1 (en) | Adaptive batch encoding for slow motion video recording | |
KR20070083459A (ko) | 명령 전송 제어 장치 및 명령 전송 제어 방법 | |
CN102866765B (zh) | 图形处理单元与其管理方法 | |
CN109213607A (zh) | 一种多线程渲染的方法和装置 | |
JP3688618B2 (ja) | データ処理システム及びデータ処理方法、コンピュータプログラム、記録媒体 | |
US7999814B2 (en) | Information processing apparatus, graphics processor, control processor and information processing methods | |
Kang et al. | Priority-driven spatial resource sharing scheduling for embedded graphics processing units | |
WO2006121201A1 (en) | Information processing apparatus and task execution method | |
EP2801074A1 (en) | Pipelined image processing sequencer | |
CN107291559A (zh) | 一种控制cpu线程和gpu线程同步的方法及装置 |
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 |