CN117389750A - 任务加速方法、装置、可读存储介质及芯片 - Google Patents
任务加速方法、装置、可读存储介质及芯片 Download PDFInfo
- Publication number
- CN117389750A CN117389750A CN202210846188.6A CN202210846188A CN117389750A CN 117389750 A CN117389750 A CN 117389750A CN 202210846188 A CN202210846188 A CN 202210846188A CN 117389750 A CN117389750 A CN 117389750A
- Authority
- CN
- China
- Prior art keywords
- task
- lock resource
- processor
- lock
- tasks
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000001133 acceleration Effects 0.000 title claims abstract description 58
- 230000004044 response Effects 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 76
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013468 resource allocation Methods 0.000 claims description 6
- 230000000903 blocking effect Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000007115 recruitment Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种任务加速方法、装置、可读存储介质及芯片,涉及互联网技术领域,该方法包括:响应于第一任务请求锁资源失败,确定该锁资源所在的第二任务;对该第二任务进行加速,以缩短该第二任务释放该锁资源的时长;响应于该锁资源被该第二任务释放,将该锁资源分配至该第一任务。使用本公开提出的任务加速方法,可以缩短第二任务释放锁资源的时长,使得第一任务可以尽快获取到锁资源,减少等待锁资源所带来的应用软件卡顿的时长,提升用户体验。
Description
技术领域
本公开涉及互联网技术领域,尤其涉及一种任务加速方法、装置、可读存储介质及芯片。
背景技术
随着终端上应用软件的迅猛发展,终端上所支持的应用越来越多,用户可以在终端上同时打开多个应用软件,此时多个同时运行的应用软件的任务会存在资源竞争的情况出现,导致部分未竞争到资源的关键任务会出现卡顿的现象。
例如,相关技术中,终端上运行的多个任务在竞争同一锁资源的情况下,由于一个锁资源无法同时被分配在多个任务中,导致部分关键任务无法获取到该锁资源,在等待锁资源的期间出现了较长时间的应用软件的卡顿现象,影响了用户使用体验。
发明内容
为克服相关技术中存在的问题,本公开提供一种任务加速方法、装置、可读存储介质及芯片。
根据本公开实施例的第一方面,提供一种任务加速方法,所述方法包括:
响应于第一任务请求锁资源失败,确定所述锁资源所在的第二任务;
对所述第二任务进行加速,以缩短所述第二任务释放所述锁资源的时长;
响应于所述锁资源被所述第二任务释放,将所述锁资源分配至所述第一任务。
可选地,所述响应于第一任务请求锁资源失败,将所述锁资源分配至所述第一任务,包括:
响应于多个所述第一任务请求所述锁资源失败,从多个所述第一任务中,确定在调度白名单中的第一目标任务;
将所述锁资源分配至所述第一目标任务。
可选地,所述方法还包括:
响应于所述调度白名单中不具有所述第一目标任务,或所述调度白名单中的第一目标任务释放所述锁资源,从多个所述第一任务中,确定调度类为设定类别的第二目标任务;
将所述锁资源分配至所述第二目标任务。
可选地,所述方法还包括:
响应于所述第一任务中不具有调度类为所述设定类别的第二目标任务,或所述第二目标任务释放所述锁资源,按照多个所述第一任务的优先级,将所述锁资源分配至多个所述第一任务中优先级最高的第三目标任务。
可选地,所述方法还包括:
响应于所述调度白名单中不具有所述第一目标任务,或所述调度白名单中的第一目标任务释放所述锁资源,按照多个所述第一任务的优先级,将所述锁资源分配至多个所述第一任务中优先级最高的第三目标任务。
可选地,所述对所述第二任务进行加速,包括:
将所述第二任务从第一处理器调度至第二处理器,以对所述第二任务进行加速;
其中,所述第二处理器的处理能力大于所述第一处理器的处理能力。
可选地,所述对所述第二任务进行加速,包括:
提高所述第二任务所在的第一处理器的处理频率,以对所述第二任务进行加速。
可选地,所述对所述第二任务进行加速,包括:
提高所述第二任务在第一处理器上的处理优先级,以对所述第二任务进行加速;
其中,所述第一处理器为所述第二任务所在的处理器。
可选地,所述对所述第二任务进行加速,包括:
在所述第二任务存在以下至少一种状态的情况下,对所述第二任务进行加速:
所述第二任务所在的第一处理器的处理能力小于设定处理能力、所述第二任务的处理频率小于预设处理频率以及所述第二任务在所述第一处理器上的优先级小于设定优先级。
可选地,响应于第一任务请求锁资源失败之后,所述方法还包括:
控制所述第一任务处于睡眠状态。
可选地,所述对所述第二任务进行加速,以缩短所述第二任务释放所述锁资源的时长,包括:
对所述第二任务的运行状态进行加速,以缩短所述第二任务释放所述锁资源的时长。
根据本公开实施例的第二方面,提供一种任务加速装置,包括:
第二任务确定模块,被配置为响应于第一任务请求锁资源失败,确定所述锁资源所在的第二任务;
加速模块,被配置为对所述第二任务进行加速,以缩短所述第二任务释放所述锁资源的时长;
资源分配模块,被配置为响应于所述锁资源被所述第二任务释放,将所述锁资源分配至所述第一任务。
根据本公开实施例的第三方面,提供一种任务加速装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
执行所述可执行指令以实现本公开实施例第一方面所提供的任务加速方法的步骤。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的任务加速方法的步骤。
根据本公开实施例的第五方面,提供一种芯片,包括处理器和接口;所述处理器用于读取指令以执行本公开第一方面所提供的任务加速方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
在第一任务请求锁资源失败的情况下,会将锁资源所在的第二任务进行加速,以缩短第二任务释放锁资源的时长,相应地,第一任务可以尽快获取到第二任务所释放的锁资源,使得第一任务等待锁资源的时长被缩短,当第一任务等待锁资源的时长被缩短后,第一任务所在的应用软件的卡顿时长也相应地缩小,进而提升了用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种任务加速方法的步骤流程图。
图2是根据一示例性实施例示出的多个CPU(central processing unit,中央处理器)分别运行不同任务的示意图。
图3是根据一示例性实施例示出的对第二任务加速前以及对第二任务加速后的对比示意图。
图4是根据一示例性实施例示出的将第一任务从第一处理器调度至第二处理器的示意图。
图5是根据一示例性实施例示出的提高第一处理器的处理频率的示意图。
图6是根据一示例性实施例示出的提高第一任务在第一处理器上的处理优先级的示意图。
图7是根据一示例性实施例示出的一种任务加速装置的框图。
图8是根据一示例性实施例示出的一种装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
需要说明的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
相关技术中,工作人员经研究后发现,多个任务在请求同一锁资源的情况下,请参阅图2所示,以终端上具有CPU0、CPU1、CPU2以及CPU3这四个CPU为例,每个CPU周而复始地在运行着各自的任务A、任务B、任务C以及任务D。
例如,在任务A需要获取锁资源的情况下,任务A运行完一些数据之后,会请求锁资源,以运行下一段数据。当任务A请求锁资源失败的情况下,任务A会从运行状态切换至睡眠状态以等待其余CPU上的任务B、任务C或者任务D释放锁资源,在任务A获取到锁资源之后,任务A再从睡眠状态切换至运行状态。
在这个过程中,任务A等待其余任务释放锁资源的时长较长,任务A的睡眠状态所占用的时长较长,在任务A处于睡眠状态下,CPU0并未运行任务A,导致任务A所在的应用软件会出现较长时长的卡顿,影响了用户的使用体验。
为了缩短应用软件的卡顿时长,本公开在第一任务(例如,第一任务为任务A)请求锁资源失败的情况下,会将锁资源所在的第二任务(例如,第二任务可以为任务B)进行加速,以缩短第二任务释放锁资源的时长,相应地,第一任务可以尽快获取到第二任务所释放的锁资源,使得第一任务等待锁资源的时长被缩短,当第一任务等待锁资源的时长被缩短后,第一任务所在的应用软件的卡顿时长也相应地缩小,进而提升了用户体验。
图1是根据一示例性实施例示出的一种任务加速方法的流程图,如图1所示,该任务加速方法用于终端中,终端可以是手机、电脑、平板等设备,该任务加速方法包括以下步骤:
在步骤S11中,响应于第一任务请求锁资源失败,确定所述锁资源所在的第二任务。
本公开中,第一任务指的是在终端上运行的多个应用软件中,每个应用软件所产生的多个任务中的关键任务,关键任务包括第一目标任务、第二目标任务以及第三目标任务,第一目标任务指的是在调度白名单中的任务,第二目标任务指的是调度类别为预设类别的第二目标任务,第三目标任务指的是应用软件的核心场景中,与用户使用体验强相关的任务。
例如,用户在使用终端打开游戏软件后,核心场景包括游戏场景、游戏登录场景等核心场景,而在游戏场景中包括游戏画面显示、游戏声音播放以及画面流畅性等与用户体验强相关的第三目标任务。
其中,一个任务对应一个进程或者一个线程,用于表示应用软件所要实现的一个功能。
其中,同一任务在不同阶段的运行状态下的数据所使用的锁资源可能相同,也可能不同。锁资源指的是锁所保护的对象,一个锁资源对应于一个实际的实体,例如一个锁资源可以对任务运行状态下的一个文件、一段数据或者一个数据库等数据加锁,以防止其余任务对锁资源锁住的数据造成伤害。
当第一任务与第二任务等所有的任务在运行完上一段数据,且即将运行下一段数据之前,需要获取对下一段数据进行加锁的锁资源,若任务未获取到锁资源,则需控制任务处于睡眠状态,以等待锁资源,直到获取到锁资源之后,任务才会从睡眠状态切换至运行状态,以利用锁资源对下一段数据进行加锁,并运行下一段数据。
通过在第一任务请求锁资源失败的情况下,控制第一任务处于睡眠状态以等待锁资源,可以避免第一任务处于运行状态所带来的终端的电能损耗。
其中,在第一任务请求锁资源失败的情况下,可以通过第一任务对锁资源进行依赖分析,来确定第一任务所需的锁资源所在的第二任务;第二任务是应用软件在运行的多个任务中,占用第一任务所需的锁资源的任务。
对锁资源进行依赖分析,可以参考相关技术,本公开在此不再赘述。
在步骤S12中,对所述第二任务进行加速,以缩短所述第二任务释放所述锁资源的时长。
本公开中,是对第二任务的运行状态进行加速,以缩短第二任务的运行状态的时长,进而缩短第二任务释放锁资源的时长。第二任务的运行状态的持续时长等于第一任务的睡眠状态的持续时长。
请参阅图3所示的加速前示意图,相关技术中,在未对第二任务的运行状态进行加速的情况下,当CPU0所运行的任务A获取锁A失败的情况下进行睡眠状态;通过锁依赖分析确定CPU4所运行的任务B中持有锁A;在任务B运行完一段数据释放锁A后,任务A获取锁A继续运行任务A的下一段数据。在这个过程中,任务B的运行状态的持续时长较长,导致任务A的睡眠状态的持续时长较长。
而本公开中,请参阅图3所示的加速后示意图,在任务A获取失败的情况下进入睡眠状态;再控制任务B的运行状态加速,使得任务B的运行状态所持续的时长缩短,任务B释放锁A后,任务A获取锁A继续运行任务A的下一段数据。可以看出图3的加速后示意图相较于图3的加速前示意图,任务B的运行状态所持续的时长明显变小,任务A的睡眠状态所持续的时长也明显变小。
在步骤S13中,响应于所述锁资源被所述第二任务释放,将所述锁资源分配至所述第一任务。
本公开中,在第二任务尽早地释放锁资源之后,第一任务可以尽早地获取到锁资源,从而减少第一任务等待锁资源的睡眠状态下的时长,减少了第一任务所在的应用软件的卡顿时长,提升了用户体验。
在一种可能的实施方式中,由于终端所运行的第一任务可能有多个,而多个第一任务在同时请求锁资源的情况下,则可以采用锁调度策略,来将锁资源依次调度给多个第一任务,锁调度策略具体包括以下两种方式。
方式1包括以下步骤:
在步骤S21中,响应于多个所述第一任务请求所述锁资源失败,从多个所述第一任务中,确定在调度白名单中的第一目标任务。
本公开中,可以先判断终端中是否是多个第一任务请求锁资源失败,若是多个第一任务请求失败,则从多个第一任务中先确定在调度白名单中的第一目标任务;若是一个第一任务请求失败,则将锁资源发送给该第一任务。
其中,调度白名单是预先设定的白名单,调度白名单中列出了多个与终端系统相关的任务。在确定第一任务中是否存在有调度白名单中的第一目标任务时,可以建立多个第一任务的任务标识,并在调度白名单中列出多个任务的任务标识,再将多个任务的任务标识与调度白名单中列出的多个任务标识逐一地进行比较,在存在标识一致的情况下,则将任务标识对应的第一任务作为第一目标任务。
在步骤S22中,将所述锁资源分配至所述第一目标任务。
其中,在调度白名单中的任务所需的锁资源被其余任务占用的情况下,可能会导致终端系统无法正常使用,因此在多个第一任务同时需要同一锁资源的情况下,可以先将该锁资源分配给第一任务中属于调度白名单中的第一目标任务,以保障终端系统的正常使用。
其中,若第一任务中存在多个第一目标任务,可以将锁资源随机分配给多个第一目标任务;也可以将锁资源按照多个第一目标任务与终端系统的紧密程度,来将锁资源分配给多个第一目标任务,与终端系统越紧密的第一目标任务会越早地被分配锁资源。
在步骤S23中,响应于所述调度白名单中不具有所述第一目标任务,或所述调度白名单中的第一目标任务释放所述锁资源,从多个所述第一任务中,确定调度类为设定类别的第二目标任务。
其中,在调度白名单中不具有第一目标任务的情况下,说明此时终端运行的多个第一任务中并不具有与终端系统相关的任务,并没有与终端系统相关的任务需要使用锁资源,此时可以从多个第一任务中确定调度类别为预设类别的第二目标任务。
其中,在调度白名单中的第一目标任务释放了锁资源的情况下,说明与终端系统相关的任务已经使用完锁资源,此时可以从多个第一任务中确定调度类别为预设类别的第二目标任务。
预设类别包括:DL调度类别、RT调度类别以及P调度类别。实时调度中,终端接收到请求后,会做出相应的动作以响应该请求,若想要正确地响应该请求,一方面响应的逻辑结果要正确,另一方面更重要的是需要在规定的期限内做出响应,如果终端未在规定的期限内做出响应,那么终端会产生错误。
为了正确响应终端接收到的请求,周期任务(P调度,period)、运行时间任务(RT调度,runtime)以及最后期限任务(DL,deadline)均是很重要的任务,因此需要保障这几个任务能够及时地接收到锁资源,以避免终端产生错误。
在步骤S24中,将所述锁资源分配至所述第二目标任务。
其中,在第一任务中不存在调度白名单中的第一目标任务,或调度白名单中的第一目标任务使用完锁资源之后,可以将锁资源及时地分配给第二目标任务,以避免终端在接收到请求后无法及时地响应请求。
在步骤S25中,响应于所述第一任务中不具有调度类为所述设定类别的第二目标任务,或所述第二目标任务释放所述锁资源,按照多个所述第一任务的优先级,将所述锁资源分配至多个所述第一任务中优先级最高的第三目标任务。
其中,在第一任务中不具有调度类为设定类别的第二目标任务的情况下,说明终端运行的多个第一任务均是与应用软件的使用直接相关的任务,此时可以将锁资源按照多个第一任务的优先级,将锁资源分配至多个第一任务中优先级最高的第三目标任务。
在第二目标任务释放锁资源的情况下,说明第二目标任务已经使用完锁资源,多个第一任务中剩余的任务均是与应用软件的使用直接相关的任务,此时可以将锁资源分配给多个第一任务中优先级最高的第三目标任务。
其中,除却第一目标任务与第二目标任务这些与终端系统相关的任务之外,终端在前台运行的多个第一任务在一般是一个应用软件所产生的。
例如,终端打开了游戏软件、社交软件以及招聘软件等,游戏软件在前台中运行,社交软件与招聘软件在后台中运行,此时用户并未使用社交软件与招聘软件,所以社交软件与招聘软件所产生的任务可以是非关键任务;而游戏软件是用户正在使用的任务,所以游戏软件当前所产生的任务可以是关键任务,即第一任务。
其中,多个第一任务的优先级可以通过优先级标志位来体现,优先级标志位可以在0到99的范围内。例如,开发人员在开发游戏软件时,可以将游戏软件产生的游戏画面的优先级标志位设置为98,将游戏画面的流畅性设置为90,将游戏软件产生的游戏语音的优先级标志位设置为85,将游戏语音的流畅性设置为80。因此,可以从多个优先级标志位中,选择优先级标志位的数值最大的98作为最高优先级,最高优先级对应的游戏画面任务是第三目标任务。
为了保障游戏画面的显示,需要先将锁资源发送给游戏画面任务,以保障游戏画面任务获取到锁资源后可以及时地运行数据,避免游戏画面无法显示的情况发生。
其中,在优先级最高的第三目标任务使用完锁资源之后,可以将锁资源按照剩余多个第一任务的锁资源,将锁资源按照剩余多个第一任务的优先级,依次分配给剩余的多个第一任务,以保障用户的使用体验。
通过本公开提出的任务加速方法,可以先将锁资源分配给与终端系统相关的第一目标任务,先保障终端系统的正常运行;再将锁资源分配给调度类别为预设类别的第二目标任务,以保障终端可以正常及时地响应请求;最后将锁资源分配给第三目标任务,以保障与用户体验强相关的任务能够及时地获取到锁资源,提升用户使用应用软件的体验感。可见,本公开在分配锁资源时,是在保障终端可以正常运行应用软件的前提下,再提升用户使用应用软件的体验感。
方式2包括以下步骤:
在步骤S31中,响应于多个所述第一任务请求所述锁资源失败,从多个所述第一任务中,确定在调度白名单中的第一目标任务。
在步骤S32中,将所述锁资源分配至所述第一目标任务。
在步骤S33中,响应于所述调度白名单中不具有所述第一目标任务,或所述调度白名单中的第一目标任务释放所述锁资源,按照多个所述第一任务的优先级,将所述锁资源分配至多个所述第一任务中优先级最高的第三目标任务。
其中,在调度白名单中不具有第一目标任务的情况下,表明终端运行的多个第一任务均是与应用软件相关的任务,此时可以将锁资源按照多个第一任务的优先级分配给多个第一任务。
在调度白名单中的第一目标任务释放锁资源的情况下,表明第一目标任务已经使用完锁资源,表明多个第一任务中剩余的第一任务均是与应用软件相关的任务,此时可以将锁资源按照多个第一任务的优先级分配给多个第一任务。
通过本公开提出的任务加速方法,可以先将锁资源分配给与终端系统相关的第一目标任务,先保障终端系统的正常运行;再将锁资源分配给第三目标任务,以保障与用户体验强相关的任务能够及时地获取到锁资源,提升用户使用应用软件的体验感。可见,本公开在分配锁资源时,是在保障终端可以正常运行应用软件的前提下,再提升用户使用应用软件的体验感。
在一种可能的实施方式中,可以通过以下几种方式来对第二任务进行加速,可以理解的是,以下几种方式中国,可以以其中一种方式来对第二任务进行加速,也可以以任意两种方式组合来对第二任务进行加速,也可以以三种方式组合来对第二任务进行加速,本公开在此不做限制。
方式3:将所述第二任务从第一处理器调度至第二处理器,以对所述第二任务进行加速;其中,所述第二处理器的处理能力大于所述第一处理器的处理能力。
本公开中,请参阅图4所示,第二处理器的处理能力大于第一处理器的处理能力,可以表现为第二处理器的核数比第一处理器的核数多,例如第二处理器为四核,第一处理器为双核,又如第二处理器为八核,第一处理器为四核或双核。在处理器的处理能力提升后,可以对第二任务运行数据进行加速,进而对第二任务的运行状态进行加速,缩短第二任务的运行状态的时长。
方式4:提高所述第二任务所在的第一处理器的处理频率,以对所述第二任务进行加速。
本公开中,请参阅图5所示,第一处理器可以为变频处理器,因此,可以通过提高第一处理器对数据进行处理的处理频率,来对第二任务的运行状态进行加速,缩短第二任务的运行状态的时长。
方式5:提高所述第二任务在第一处理器上的处理优先级,以对所述第二任务进行加速;其中,所述第一处理器为所述第二任务所在的处理器。
本公开中,请参阅图6所示,第一处理器也可能同时处理多个任务,为了保障第二任务能够被优先处理,此时可以提高第二任务的处理优先级,例如,第二任务在第一处理器上当前所处的处理优先级为5,此时可以提升2个优先级,使得第二任务的处理优先级提升至3。
可见,在提升了第二任务的处理优先级之后,可以使得第一处理器能够优先地处理第二任务,减少第二任务等待第一处理器来对其进行处理的时长,进而对第二任务的运行状态进行加速,缩短第二任务的运行状态的时长。
通过本公开提出的任务加速方法,可以通过将第二任务转移至核数更高的第二处理器、提高第二任务所在的第一处理器的处理频率以及提高第二任务在第一处理器上的处理优先级中的至少一种方式,减少第二任务等待第一处理器处理的等待时长,或者提升处理器对第二任务的处理速度,来缩短第二任务的运行状态的时长,进而缩短第一任务的睡眠状态的时长,缩短了应用软件卡顿的时长。
其中,在方式3至方式5中,在第二任务所在的第一处理器的处理能力小于设定处理能力、第二任务所在的第一处理器的处理频率小于预设处理频率以及第二任务在第一处理器上的处理优先级小于设定优先级的状态中,存在至少一种状态的情况下,说明第二任务的运行状态的时长还有缩短的空间。
此时可以采用三种方式中第二任务所没有达到的条件(条件包括设定处理能力、预设处理频率以及提升处理优先级),来对第二任务的运行状态进行加速。
例如,在第二任务所在的第一处理器的处理能力小于设定处理能力、第二任务所在的第一处理器的处理频率等于预设处理频率以及第二任务在第一处理器上的处理优先级小于设定优先级的状态下,可以将第二任务所在的第一处理器转移至第三处理器,通过第三处理器来提供设定处理能力,也可以将第二任务在第一处理器上的处理优先级进行提高。
其中,设定处理能力可以为最大的处理能力,例如八核处理器锁提供的最大处理能力,第三处理器可以为八核处理器,当然也可以为核数更大的处理器;预设处理频率可以为第一处理器所能达到的最大处理频率;设定优先级可以为多个处理优先级中最大的处理优先级。
通过本公开提出的任务加速方法,可以在第二任务还具有时长缩短空间的情况下,采用方式3至方式5中的至少一种方法,来对第二任务进行加速,以进一步地缩短第二任务的运行状态的时长,减少第一任务获取锁资源的时长,
本公开中,在对第二任务的运行状态进行加速后,第一任务的睡眠状态可以得到加速,在第一任务的睡眠状态加速后,可以采用上述方式3至方式5的方式来继续对第一任务的运行状态进行加速,以使得第一任务上的睡眠状态与运行状态处于全链路的加速状态,提升第一任务运行数据以及获取锁资源的速度,使得用户使用应用软件更加流畅,进一步提升用户体验感。
图7是根据一示例性实施例示出的一种任务加速装置的框图。参照图7,该任务加速装置120包括:第二任务确定模块121、加速模块122和资源分配模块123。
第二任务确定模块121,被配置为响应于第一任务请求锁资源失败,确定所述锁资源所在的第二任务;
加速模块122,被配置为对所述第二任务进行加速,以缩短所述第二任务释放所述锁资源的时长;
资源分配模块123,被配置为响应于所述锁资源被所述第二任务释放,将所述锁资源分配至所述第一任务。
可选地,第二任务确定模块121包括:
第一目标任务确定模块,被配置为响应于多个所述第一任务请求所述锁资源失败,从多个所述第一任务中,确定在调度白名单中的第一目标任务;
第一锁资源分配模块,被配置为将所述锁资源分配至所述第一目标任务。
可选地,任务加速装置120还包括:
第二目标任务确定模块,被配置为响应于所述调度白名单中不具有所述第一目标任务,或所述调度白名单中的第一目标任务释放所述锁资源,从多个所述第一任务中,确定调度类为设定类别的第二目标任务;
第二锁资源分配模块,被配置为将所述锁资源分配至所述第二目标任务。
可选地,任务加速装置120还包括:
第三目标任务第一确定模块,被配置为响应于所述第一任务中不具有调度类为所述设定类别的第二目标任务,或所述第二目标任务释放所述锁资源,按照多个所述第一任务的优先级,将所述锁资源分配至多个所述第一任务中优先级最高的第三目标任务。
可选地,任务加速装置120还包括:
响应于所述调度白名单中不具有所述第一目标任务,或所述调度白名单中的第一目标任务释放所述锁资源,按照多个所述第一任务的优先级,将所述锁资源分配至多个所述第一任务中优先级最高的第三目标任务。
可选地,加速模块122包括:
第一加速模块,被配置为将所述第二任务从第一处理器调度至第二处理器,以对所述第二任务进行加速;
其中,所述第二处理器的处理能力大于所述第一处理器的处理能力。
可选地,加速模块122包括:
第二加速模块,被配置为提高所述第二任务所在的第一处理器的处理频率,以对所述第二任务进行加速。
可选地,加速模块122包括:
第三加速模块,被配置为提高所述第二任务在第一处理器上的处理优先级,以对所述第二任务进行加速;
其中,所述第一处理器为所述第二任务所在的处理器。
可选地,加速模块122包括:
第四加速模块,被配置为在所述第二任务存在以下至少一种状态的情况下,对所述第二任务进行加速:
所述第二任务所在的第一处理器的处理能力小于设定处理能力、所述第二任务的处理频率小于预设处理频率以及所述第二任务在所述第一处理器上的优先级小于设定优先级。
可选地,任务加速装置120还包括:
控制模块,被配置为控制所述第一任务处于睡眠状态。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的任务加速方法的步骤。
图8是根据一示例性实施例示出的一种用于任务加速的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的任务加速方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用软件或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时长和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816分配。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
输入/输出接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述任务加速方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述任务加速方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
上述装置除了可以是独立的电子设备外,也可是独立电子设备的一部分,例如在一种实施例中,该装置可以是集成电路(Integrated Circuit,IC)或芯片,其中该集成电路可以是一个IC,也可以是多个IC的集合;该芯片可以包括但不限于以下种类:GPU(GraphicsProcessing Unit,图形处理器)、CPU(Central Processing Unit,中央处理器)、FPGA(Field Programmable Gate Array,可编程逻辑阵列)、DSP(Digital Signal Processor,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、SOC(System on Chip,SoC,片上系统或系统级芯片)等。上述的集成电路或芯片中可以用于执行可执行指令(或代码),以实现上述的任务加速方法。其中该可执行指令可以存储在该集成电路或芯片中,也可以从其他的装置或设备获取,例如该集成电路或芯片中包括处理器、存储器,以及用于与其他的装置通信的接口。该可执行指令可以存储于该存储器中,当该可执行指令被处理器执行时实现上述的任务加速方法;或者,该集成电路或芯片可以通过该接口接收可执行指令并传输给该处理器执行,以实现上述的任务加速方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的任务加速方法的代码部分。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (15)
1.一种任务加速方法,其特征在于,所述方法包括:
响应于第一任务请求锁资源失败,确定所述锁资源所在的第二任务;
对所述第二任务进行加速,以缩短所述第二任务释放所述锁资源的时长;
响应于所述锁资源被所述第二任务释放,将所述锁资源分配至所述第一任务。
2.根据权利要求1所述的方法,其特征在于,所述响应于第一任务请求锁资源失败,将所述锁资源分配至所述第一任务,包括:
响应于多个所述第一任务请求所述锁资源失败,从多个所述第一任务中,确定在调度白名单中的第一目标任务;
将所述锁资源分配至所述第一目标任务。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于所述调度白名单中不具有所述第一目标任务,或所述调度白名单中的第一目标任务释放所述锁资源,从多个所述第一任务中,确定调度类为设定类别的第二目标任务;
将所述锁资源分配至所述第二目标任务。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述第一任务中不具有调度类为所述设定类别的第二目标任务,或所述第二目标任务释放所述锁资源,按照多个所述第一任务的优先级,将所述锁资源分配至多个所述第一任务中优先级最高的第三目标任务。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于所述调度白名单中不具有所述第一目标任务,或所述调度白名单中的第一目标任务释放所述锁资源,按照多个所述第一任务的优先级,将所述锁资源分配至多个所述第一任务中优先级最高的第三目标任务。
6.根据权利要求1所述的方法,其特征在于,所述对所述第二任务进行加速,包括:
将所述第二任务从第一处理器调度至第二处理器,以对所述第二任务进行加速;
其中,所述第二处理器的处理能力大于所述第一处理器的处理能力。
7.根据权利要求1所述的方法,其特征在于,所述对所述第二任务进行加速,包括:
提高所述第二任务所在的第一处理器的处理频率,以对所述第二任务进行加速。
8.根据权利要求1所述的方法,其特征在于,所述对所述第二任务进行加速,包括:
提高所述第二任务在第一处理器上的处理优先级,以对所述第二任务进行加速;
其中,所述第一处理器为所述第二任务所在的处理器。
9.根据权利要求1所述的方法,其特征在于,所述对所述第二任务进行加速,包括:
在所述第二任务存在以下至少一种状态的情况下,对所述第二任务进行加速:
所述第二任务所在的第一处理器的处理能力小于设定处理能力、所述第二任务的处理频率小于预设处理频率以及所述第二任务在所述第一处理器上的优先级小于设定优先级。
10.根据权利要求1所述的方法,其特征在于,响应于第一任务请求锁资源失败之后,所述方法还包括:
控制所述第一任务处于睡眠状态。
11.根据权利要求1所述的方法,其特征在于,所述对所述第二任务进行加速,以缩短所述第二任务释放所述锁资源的时长,包括:
对所述第二任务的运行状态进行加速,以缩短所述第二任务释放所述锁资源的时长。
12.一种任务加速装置,其特征在于,包括:
第二任务确定模块,被配置为响应于第一任务请求锁资源失败,确定所述锁资源所在的第二任务;
加速模块,被配置为对所述第二任务进行加速,以缩短所述第二任务释放所述锁资源的时长;
资源分配模块,被配置为响应于所述锁资源被所述第二任务释放,将所述锁资源分配至所述第一任务。
13.一种任务加速装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
执行所述可执行指令以实现权利要求1~11中任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时实现权利要求1~11中任一项所述方法的步骤。
15.一种芯片,其特征在于,包括处理器和接口;所述处理器用于读取指令以执行权利要求1~11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210846188.6A CN117389750A (zh) | 2022-07-04 | 2022-07-04 | 任务加速方法、装置、可读存储介质及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210846188.6A CN117389750A (zh) | 2022-07-04 | 2022-07-04 | 任务加速方法、装置、可读存储介质及芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117389750A true CN117389750A (zh) | 2024-01-12 |
Family
ID=89461886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210846188.6A Pending CN117389750A (zh) | 2022-07-04 | 2022-07-04 | 任务加速方法、装置、可读存储介质及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117389750A (zh) |
-
2022
- 2022-07-04 CN CN202210846188.6A patent/CN117389750A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110515709B (zh) | 任务调度系统、方法、装置、电子设备及存储介质 | |
US10257416B2 (en) | Apparatus and method for setting camera | |
CN107370772B (zh) | 账号登录方法、装置及计算机可读存储介质 | |
US20210389973A1 (en) | Electronic device and method for operating the same | |
CN109254849B (zh) | 应用程序的运行方法及装置 | |
KR20070027613A (ko) | 디바이스상의 공유된 리소스의 동적 중재 시스템 | |
CN114138439A (zh) | 任务调度方法及装置、电子设备和存储介质 | |
CN114153582A (zh) | 资源调度方法及装置、电子设备和存储介质 | |
US9678868B2 (en) | Method and device for optimizing memory | |
CN108958911B (zh) | 进程的控制方法及装置 | |
CN111865630A (zh) | 拓扑信息获取方法、装置、终端及存储介质 | |
CN107153621B (zh) | 设备识别方法及装置 | |
CN112188034A (zh) | 一种图像处理方法、装置、终端设备及介质 | |
CN117389750A (zh) | 任务加速方法、装置、可读存储介质及芯片 | |
CN113778687B (zh) | 内存分配信息处理方法、装置、电子设备及存储介质 | |
CN112286687A (zh) | 一种资源处理方法及装置 | |
CN113360254A (zh) | 任务调度方法及系统 | |
CN112817844A (zh) | 后台进程驻留测试方法、装置、设备及存储介质 | |
WO2024055708A1 (zh) | 任务调度方法、装置、设备及介质 | |
CN114115025B (zh) | 基于自动驾驶系统的故障信息的保存方法、装置和设备 | |
CN118093109A (zh) | 线程执行方法、装置、电子设备及介质 | |
CN113568737B (zh) | 硬件资源分配方法及装置 | |
CN117453435B (zh) | 缓存数据读取方法、装置、设备及存储介质 | |
CN112201236B (zh) | 终端唤醒方法、装置及计算机可读存储介质 | |
US20240219506A1 (en) | Locating method and apparatus, electronic device, and storage medium |
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 |