掌桥专利:专业的专利平台
掌桥专利
首页

任务调度方法、装置和电子设备

文献发布时间:2023-06-19 19:20:08


任务调度方法、装置和电子设备

技术领域

本申请属于通信技术领域,更具体地,涉及一种任务调度方法、装置和电子设备。

背景技术

随着科学技术的不断发展,电子设备的功能越来越多,常驻在电子设备后台的应用也越来越多。通常情况下,在同一时间运行的程序较多时,系统可以根据资源调度策略中的调度优先级高低调动资源。例如,当用户在前台使用手机刷微信朋友圈时,手机的后台还有很多应用在后台运行,比如QQ在后台接收消息,迅雷在后台下载电影等等。当前系统的资源调度策略会优先保障前台应用的运行,也就是前台应用可以优先获得资源,比如将前台的微信优先运行在CPU大核并且提高其调度优先级,而后台应用则限制资源的获得,比如将后台的QQ或者迅雷限制在CPU小核上运行并且降低其调度优先级等。

但是,采用此种资源调度策略会大大加剧优先级反转问题的发生,即,优先极高的任务因被优先级低的任务堵塞而不能运行,需要先运行优先级低的任务释放系统锁后,才能运行优先级高的任务的现象,从而导致系统卡顿的问题。

发明内容

本申请实施例的目的是提供一种任务调度方法、装置和电子设备,能够解决相关技术中因优先级反转而导致的系统卡顿的问题。

第一方面,本申请实施例提供了一种任务调度方法,所述方法包括:

在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息;

在所述参数信息满足预设条件的情况下,运行所述第一任务,其中,所述参数信息满足预设条件包括:所述参数信息中包括目标标识信息。

第二方面,本申请实施例提供一种任务调度装置,所述装置包括:

获取模块,用于在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息;

控制模块,用于在所述参数信息满足预设条件的情况下,运行所述第一任务,其中,所述参数信息满足预设条件包括:所述参数信息中包括目标标识信息。

第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。

第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。

第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。

第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。

在本申请实施例中,通过设置关键锁,可以保证同一时间只存在一个任务获取关键锁,从而可以在多个任务同时运行时,通过获取关键锁的时间排序运行该多个任务,避免系统拥堵的问题。通过在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息,在所述参数信息满足预设条件的情况下,运行所述第一任务,可以优先运行带有目标标识信息的第一任务,从而缩短第一任务等待运行的时间,避免相关技术中优先级反转造成系统卡顿的问题。

附图说明

图1为本申请实施例提供的任务调度方法的流程图;

图2为本申请一个例子的示意性流程图;

图3为本申请另一个例子的示意性流程图;

图4为本申请又一个例子的示意性流程图;

图5为本申请实施例的任务调度装置的示意图;

图6为本申请实施例提供的电子设备的结构示意图;

图7为本申请另一实施例提供的电子设备的硬件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清除地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。

下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的任务调度方法进行详细地说明。

如图1所示,其是本申请实施例提供的一种任务调度方法,该方法包括如下步骤101~步骤102,以下予以详细说明。

步骤101,在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息。

步骤102、在所述参数信息满足预设条件的情况下,运行所述第一任务。

本实施例中,在电子设备的系统中,常会存在同一时间多任务运行的情况。例如,在使用手机玩游戏的过程中,前台运行游戏应用,与此同时,还可能存在后台运行“设置”应用、“音乐”应用、“文件管理”等应用。但是,由于电子设备的一些硬件资源的限制,比如,存储数据的UFS存储器在手机中只有一个,导致在多个任务调用系统资源的时候,同一时间只能有一个任务在调用。其中,关键锁可以是被设置在调用数据的入口处,以保证同一时间只有一个任务读取系统资源。也就是说,同一时间只存在一个任务获取关键锁。

在调用数据的入口处设置好关键锁后,在多个任务需要获取系统资源的情况下,由于同一时间只存在一个任务获取关键锁,因此,该多个任务被按照时间顺序依次获取关键锁。并且,在该多个任务中其中任一任务获取到关键锁后,标志着该任务进入等待运行或者运行的临界区,该任务对应的系统资源被占用。通常情况下,获取关键锁的时间靠前的任务会优先于获取关键锁的时间靠后的任务运行,从而,该多个任务可以按照获取关键锁的时间顺序运行。

若需要优先运行该多个任务中某个任务,则在该任务获取关键锁时,可以通过目标标识信息对该任务进行标记,并将所述目标标识信息作为该任务的参数信息的其中一项。其中,目标标识信息可以用于指示其对应的任务为特殊任务。例如,目标标识信息可以是特殊字符,通过特殊字符标记需要优先运行的特殊任务。本领域技术人员应当理解,这里对目标标识信息不做具体限定。

在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息。在所述参数信息中包括所述目标标识信息的情况下,则确定所述第一任务为满足预设条件的特殊任务。在所述参数信息中不包括所述目标标识信息的情况下,则确定所述第一任务不满足预设条件。其中,第一任务为所述多个任务中任意一个任务。

在确定所述第一任务为满足预设条件的特殊任务的情况下,在CPU运行所述第一任务,并禁止其他高优先级的任务运行。

例如,任务1和任务2按照时间先后获取关键锁,若任务1和任务2均未标记有标识信息,则按照获取关键锁的时间先后顺序运行任务1和任务2。若任务2为通过特殊字符标记的特殊任务,在任务2获取到带有标识信息的关键锁的情况下,任务2先于任务1运行。

根据本申请实施例,通过设置关键锁,可以保证同一时间只存在一个任务获取关键锁,从而可以在多个任务同时运行时,通过获取关键锁的时间排序运行该多个任务,避免系统拥堵的问题。通过在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息,在所述参数信息满足预设条件的情况下,运行所述第一任务,可以优先运行带有目标标识信息的第一任务,从而缩短第一任务等待运行的时间,避免相关技术中优先级反转造成系统卡顿的问题。

在一个实施例中,为了避免特殊任务长时间在运行而导致其他任务无法正常运行的问题,进而降低用户体验,本申请实施例还提供了一种基于目标标识信息的标识时长控制任务调度的方法。即,在所述参数信息中包括目标标识信息的情况下,所述参数信息满足预设条件还包括:所述目标标识信息的标识时长小于或者等于预设时长。

本实施例中,在多个任务获取关键锁时,可以在通过目标标识信息标记其中的特殊任务的同时,记录该特殊任务被标记有所述目标标识信息的标识时长。并且,将该标识时长与对应的目标标识信息相关联。

在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息,并先确定所述第一任务的参数信息中是否包括目标标识信息。在确定所述第一任务的参数信息中包括目标标识信息的情况下,再确定所述目标标识信息的标识时长是否小于或者等于预设时长。在所述目标标识信息的标识时长小于或者等于预设时长的情况下,确定所述参数信息满足预设条件,进而禁止其他高优先级的任务运行,运行所述第一任务。

根据本申请实施例,通过在所述参数信息中包括目标标识信息的情况下,所述参数信息满足预设条件还包括:所述目标标识信息的标识时长小于或者等于预设时长,可以避免因特殊任务长时间运行而影响其他任务的运行,进而影响系统的运行速度,降低用户体验。

在一个实施例中,所述获取所述第一任务的参数信息之后,所述方法还包括:

步骤201、在所述参数信息不满足所述预设条件,且存在优先级高于所述第一任务的第二任务的情况下,运行所述第二任务;其中,所述参数信息不满足所述预设条件包括以下其中一项:所述参数信息中不包括所述目标标识信息、所述参数信息中包括所述目标标识信息但所述目标标识信息的标识时长大于所述预设时长;

步骤202、在所述第二任务退出运行之后,运行所述第一任务。

本实施例中,在所述第一任务的参数信息中不包括所述目标标识信息,或者,所述参数信息中包括所述目标标识信息但所述目标标识信息的标识时长大于所述预设时长的情况下,确定所述第一任务的参数信息不满足预设条件。

在所述第一任务的参数信息不满足所述预设条件,且存在优先级高于所述第一任务的第二任务的情况下,运行所述第二任务。并且,在运行所述第二任务时,所述第一任务处于等待运行状态。在所述第二任务退出运行之后,运行所述第一任务。

例如,任务2获取关键锁的时间先于任务1获取关键锁的时间,即,任务2的优先级高于任务1的优先级。并且,任务1的参数信息不包括目标标识信息,或者,任务1的参数信息包括目标标识信息但是目标标识信息的标识时长大于预设时长。此种情况下,任务1的参数信息不满足设定条件,根据优先级顺序,先运行任务2,待任务2运行完成且退出运行之后,再运行任务1。

根据本申请实施例,在所述第一任务的参数信息不满足所述设定条件,且存在优先级高于所述第一任务的第二任务的情况下,运行所述第二任务,在所述第二任务退出运行之后,运行所述第一任务,可以避免多任务运行冲突导致系统卡顿的问题。

在一个实施例中,为了提高系统的运行速度,降低系统功耗,本申请实施例还设置了触发获取第一任务的参数信息的条件。也就是说,所述在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息,包括:

步骤301、在所述第一任务获取到关键锁,且所述第一任务占用系统资源的情况下,获取所述第一任务的参数信息;

步骤302、在所述第一任务获取到关键锁,且第三任务占用所述系统资源的情况下,等待所述第一任务被唤醒,并在所述第一任务被唤醒的情况下,获取所述第一任务的参数信息;其中,所述第一任务在所述第三任务释放所述系统资源的情况下被唤醒。

本实施例中,设置触发获取第一任务的参数信息的两种条件:

条件一:在所述第一任务获取到关键锁,且所述第一任务占用系统资源的情况下,获取所述第一任务的参数信息。

在第一任务获取到关键锁,且所述第一任务未占用系统资源的情况下,说明所述第一任务可能被堵塞,此时,不进行对于所述第一任务的参数信息是否满足预设条件的检测。

在第一任务获取到关键锁,且所述第一任务占用系统资源的情况下,需要判断所述第一任务是否为满足预设条件的特殊任务,进而确定所述第一任务和需要运行的其他任务的优先级顺序。即,获取所述第一任务的参数信息,以检测所述第一任务的参数信息是否满足预设条件。

条件二:在所述第一任务获取到关键锁,且第三任务占用所述系统资源的情况下,等待所述第一任务被唤醒,并在所述第一任务被唤醒的情况下,获取所述第一任务的参数信息;其中,所述第一任务在所述第三任务释放所述系统资源的情况下被唤醒。

所述条件二针对的是在第一任务获取到关键锁,且第三任务占用系统资源的情况,此种情况下,所述第一任务的运行可能被堵塞。例如,第一任务为锁嵌套结构,在运行第一任务前,不仅要获取关键锁作为外锁,还需要获取用于锁定其调佣的系统资源的内锁。在第一任务获取到关键锁后,所述内锁被第三任务占用,无法获取所述内锁。此种情况下,第一任务的运行被堵塞。

在第一任务的运行被堵塞的情况下,按照优先级顺序先运行其他任务,所述第一任务处于等待被唤醒的睡眠状态。其中,所述其他任务中包括所述第三任务。在所述第三任务运行完成且退出运行之后,释放所述内锁。此时,所述第一任务被唤醒,所述第一任务可以获取所述内锁,进而占用所述系统资源。在所述第一任务占用所述系统资源的情况下,获取所述第一任务的参数信息,以检测所述第一任务的参数信息是否满足所述预设条件。

根据本申请实施例,通过进一步设置触发获取所述第一任务的参数信息的条件,可以提高系统运行速度,降低系统功耗。并且在第一任务被堵塞的情况下,先运行其他任务,在所述第三任务释放所述系统资源的情况下唤醒所述第一任务,获取所述第一任务的参数信息,还可避免因优先级高的任务被堵塞而无法运行其他优先级低的任务的问题,提高系统运行速度。

在一个实施例中,所述运行所述第一任务之后,所述方法还包括:

在所述第一任务释放所述关键锁之后,清除所述第一任务的所述参数信息。

本实施例中,在运行完所述第一任务之后,所述第一任务释放所述关键锁,并清除所述第一任务的所述参数信息。其中,在所述参数信息中包括目标标识信息的情况下,所述清除所述第一任务的所述参数信息为清除所述第一任务的所述参数信息中的所述目标标识信息。在所述参数信息中包括目标标识信息和所述目标标识信息的标识时长的情况下,所述清除所述第一任务的所述参数信息为清除所述第一任务的所述参数信息中的所述目标标识信息和所述目标标识信息的标识时长。

根据本申请实施例,在所述第一任务释放所述关键锁之后,清除所述第一任务的所述参数信息,从而可以避免在运行完带有目标标识信息的任务后,该目标标识信息影响其他任务的正常运行。

在一个实施例中,所述获取所述第一任务的参数信息之后,所述方法还包括:

步骤401、在发生设定事件,且所述第一任务的所述参数信息中包括所述目标标识信息的情况下,获取所述目标标识信息的标识时长。

本实施例中,设定事件可以是周期性发生的事件。例如,设定事件可以是Tick中断事件,可以理解的,Tick中断是周期性的时钟中断,在手机系统内,Tick中断一般为4毫秒每次。Tick中断可以实现周期性地更新系统中任务运行的时间信息,进而基于该任务运行的时间信息确定当前运行的任务是否需要调度。

在系统运行的过程中,可以在发生设定事件的情况下,对系统中包括目标标识信息的特殊任务,进行标识时长的超时判断。

步骤402、在所述目标标识信息的标识时长大于所述预设时长的情况下,清除所述第一任务的所述参数信息中的所述目标标识信息。

本实施例中,在所述目标标识信息的标识时长大于所述预设时长的情况下,也就是说,运行所述第一任务的时间过长,所述第一任务的运行出现异常,可能陷入了死循环。此种情况下,清除所述第一任务的参数信息中的所述目标标识信息,所述第一任务按照其获取关键锁的时间重新排序,以避免其一直运行。

根据本申请实施例,通过在发生设定事件,且所述第一任务的所述参数信息中包括所述目标标识信息的情况下,获取所述目标标识信息的标识时长;在所述目标标识信息的标识时长大于所述预设时长的情况下,清除所述第一任务的所述参数信息中的所述目标标识信息,可以避免因任务运行异常而导致其他任务无法运行的问题,提高了系统运行的速度。

<例子1>

图2为根据本发明一个例子的任务调度方法的示意图,该例子针对任务中存在不能抢占的特殊任务,执行该特殊任务的情况。

根据图2所示,该例子中,任务调度方法的具体步骤可以包括:

步骤21:在第一任务获取系统资源前,获取关键锁。在获取关键锁时,为第一任务标记目标标识信息,并记录第一任务被标记所述目标标识信息的标识时长,再将目标标识信息和该目标标识信息的标识时长作为第一任务的参数信息的其中一项。

步骤22:在所述第一任务获取到关键锁,且所述第一任务占用系统资源的情况下,获取所述第一任务的参数信息。

本实施例中,第一任务获取到关键锁,标志着第一任务进入等待运行或者运行状态的临界区,第一任务占用CPU。若存在高优先级的第二任务需要运行,由于第一任务抢占CPU,则执行步骤23,以确定所述第一任务和第二任务运行的先后顺序。

步骤23:判断第一任务的参数信息中是否包括目标标识信息,并且第一任务的目标标识信息的标识时长有没有超过预设时长t?

步骤24.若检测到第一任务的参数信息中包括目标标识信息,且目标标识信息的标识时长小于或者等于预设时长t,则禁止CPU切换到第二任务,CPU运行第一任务。

步骤25:若检测到第一任务的参数信息中不包括目标标识信息,或者第一任务的参数信息中包括目标标识信息但是标识时长已经超过预设时长t,则先运行高优先级的第二任务。

步骤26:当第二任务运行完成,CPU会切换回运行第一任务。

步骤27:第一任务释放关键锁。

本实施例中,第一任务释放关键锁标志着所述第一任务退出临界区。

步骤28:清除第一任务的所述参数信息中的目标标识信息。

在该实施例中,步骤24中若检测到第一任务的参数信息中包括目标标识信息,且目标标识信息的标识时长小于或者等于预设时长t,则禁止CPU切换到第二任务,CPU运行第一任务,可以缩短第一任务的临界区时间。步骤25和步骤26中,若检测到第一任务的参数信息中不包括目标标识信息,或者第一任务的参数信息中包括目标标识信息但是标识时长已经超过预设时长t,则先运行高优先级的第二任务,当第二任务运行完成,CPU会切换回运行第一任务,可以避免优先级反转导致系统卡顿的问题。

<例子2>

图3为根据本发明另一个例子的任务调度方法的示意图,该例子针对第一任务被堵塞,主动让出CPU,然后快速切换回来在CPU运行的情况。

根据图3所示,该例子中,任务调度方法的具体步骤可以包括:

步骤31:在第一任务获取系统资源前,获取关键锁。在获取关键锁时,为第一任务标记目标标识信息,并记录第一任务被标记所述目标标识信息的标识时长,再将目标标识信息和该目标标识信息的标识时长作为第一任务的参数信息的其中一项。

步骤32:在所述第一任务获取到关键锁,且第三任务占用所述系统资源的情况下,等待所述第一任务被唤醒。

本实施例中,第一任务获取到关键锁,标志着所述第一任务进入临界区。此时,第三任务占用所述第一任务需要调佣的系统资源,第一任务被堵塞,此时,第一任务处于等待被唤醒的状态。CPU将运行其他任务,其中,其他任务中包含第三任务。

步骤33:在所述第一任务被唤醒的情况下,获取所述第一任务的参数信息;其中,所述第一任务在所述第三任务释放所述系统资源的情况下被唤醒。

本实施例中,在第三任务退出运行,释放该系统资源的情况下,第一任务被唤醒。在所述第一任务被唤醒的情况下,获取所述第一任务的参数信息,以判断所述第一任务的参数信息是否满足预设条件。

步骤34:判断第一任务的参数信息中是否包括目标标识信息,并且第一任务的目标标识信息的标识时长有没有超过预设时长t?

步骤35:若第一任务的参数信息中包括目标标识信息,并且没有超时,则马上让CPU切换回第一任务运行。

步骤36:若第一任务的参数信息中不包括目标标识信息,或者第一任务的参数信息中包括目标标识信息,但是标识时长已经超时,则根据当前是否有其他高优先级的任务需要运行,判断是否切换到其他任务运行。

步骤37:在其他高优先级的任务退出运行后,CPU切换回第一任务运行。

步骤38:第一任务释放关键锁,标志着第一任务退出临界区。

步骤39:清除第一任务的目标标识信息。

本实施例中,在第一任务被阻塞的情况下,主动让出CPU,当前CPU将运行第三任务。在第三任务退出运行,第一任务被唤醒。在第一任务被唤醒的情况下,判断所述第一任务的参数信息是否满足预设条件。若第一任务的参数信息中包括目标标识信息,且没有超时的情况下,马上让当前CPU切换回运行第一任务,从而避免因高优先级的任务被堵塞而无法运行其他任务的问题,还可提高系统运行速度。

<例子3>

图4为根据本发明又一个例子的任务调度方法的示意图,该例子针对系统的周期性超时检测,以判断任务是否存在运行异常的情况。

根据图4所示,该例子中,任务调度方法的具体步骤可以包括:

步骤41:发生Tick中断。

步骤42:Tick中断时,检查第一任务是否为包括目标标识信息的特殊任务,而且目标标识信息的标识时长是否超过预设时长t?

步骤43:若第一任务为包括目标标识信息的特殊任务,而且其标识时长超过预设时长t,则清除第一任务的目标标识信息,也就是允许CPU运行其他任务。

步骤44:若第一任务不是特殊任务,或者,第一任务是包括目标标识信息的特殊任务,但是其标识时长超过预设时长t,则退出Tick超时判断。

本实施例中,可以利用Tick中断对系统中带有目标标识信息的任务进行超时检测,如果检查到目标标识信息的标识时长超过预设时长,说明该任务长时间抢占CPU,可能出现运行异常,陷入了死循环,此种情况下,清除该任务的目标标识信息,以使该任务重新开始排队。因该任务重新排队后的优先级较低,会排在比较后面,系统可以运行其他任务。如此,可以避免因任务运行出现异常而导致其他任务无法运行的问题,提高了系统运行的速度。

本申请实施例提供的任务调度方法,执行主体可以为任务调度装置。本申请实施例中以任务调度装置执行任务调度的方法为例,说明本申请实施例提供的任务调度装置。

如图5所示,为本申请实施例提供的一种任务调度装置500,该装置500包括:

获取模块501,用于在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息;

控制模块502,用于在所述参数信息满足预设条件的情况下,运行所述第一任务,其中,所述参数信息满足预设条件包括:所述参数信息中包括目标标识信息。

根据本申请实施例,通过设置关键锁,可以保证同一时间只存在一个任务获取关键锁,从而可以在多个任务同时运行时,通过获取关键锁的时间排序运行该多个任务,避免系统拥堵的问题。通过在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息,在所述参数信息满足预设条件的情况下,运行所述第一任务,可以优先运行带有目标标识信息的第一任务,从而缩短第一任务等待运行的时间,避免相关技术中优先级反转造成系统卡顿的问题。

在一个实施例中,在所述参数信息中包括目标标识信息的情况下,所述参数信息满足预设条件还包括:所述目标标识信息的标识时长小于或者等于预设时长。

根据本申请实施例,通过在所述参数信息中包括目标标识信息的情况下,所述参数信息满足预设条件还包括:所述目标标识信息的标识时长小于或者等于预设时长,可以避免因特殊任务长时间运行而影响其他任务的运行,进而影响系统的运行速度,降低用户体验。

在一个实施例中,所述控制模块502还用于在所述参数信息不满足所述预设条件,且存在优先级高于所述第一任务的第二任务的情况下,运行所述第二任务;其中,所述参数信息不满足所述预设条件包括以下其中一项:所述参数信息中不包括所述目标标识信息、所述参数信息中包括所述目标标识信息但所述目标标识信息的标识时长大于所述预设时长;

在所述第二任务退出运行之后,运行所述第一任务。

根据本申请实施例,在所述第一任务的参数信息不满足所述设定条件,且存在优先级高于所述第一任务的第二任务的情况下,运行所述第二任务,在所述第二任务退出运行之后,运行所述第一任务,可以避免多任务运行冲突导致系统卡顿的问题。

在一个实施例中,所述装置还包括:清除模块503,

所述清除模块503用于在所述第一任务释放所述关键锁之后,清除所述第一任务的所述参数信息。

根据本申请实施例,在所述第一任务释放所述关键锁之后,清除所述第一任务的所述参数信息,从而可以避免在运行完带有目标标识信息的任务后,该目标标识信息影响其他任务的正常运行。

在一个实施例中,所述获取模块501具体用于在所述第一任务获取到关键锁,且所述第一任务占用系统资源的情况下,获取所述第一任务的参数信息;

或者,所述获取模块501具体用于在所述第一任务获取到关键锁,且第三任务占用所述系统资源的情况下,等待所述第一任务被唤醒,并在所述第一任务被唤醒的情况下,获取所述第一任务的参数信息;其中,所述第一任务在所述第三任务释放所述系统资源的情况下被唤醒。

根据本申请实施例,通过设置触发获取所述第一任务的参数信息的条件,可以提高系统运行速度,降低系统功耗。并且在第一任务被堵塞的情况下,先运行其他任务,在所述第三任务释放所述系统资源的情况下唤醒所述第一任务,获取所述第一任务的参数信息,还可避免因优先级高的任务被堵塞而无法运行其他优先级低的任务的问题,提高系统运行速度。

在一个实施例中,所述获取模块501用于在发生设定事件,且所述第一任务的所述参数信息中包括所述目标标识信息的情况下,获取所述目标标识信息的标识时长;

所述清除模块503用于在所述目标标识信息的标识时长大于所述预设时长的情况下,清除所述第一任务的所述参数信息中的所述目标标识信息。

根据本申请实施例,通过在发生设定事件,且所述第一任务的所述参数信息中包括所述目标标识信息的情况下,获取所述目标标识信息的标识时长;在所述目标标识信息的标识时长大于所述预设时长的情况下,清除所述第一任务的所述参数信息中的所述目标标识信息,可以避免因任务运行异常而导致其他任务无法运行的问题,提高了系统运行的速度。

本申请实施例中的任务调度装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。

本申请实施例中的任务调度装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。

本申请实施例提供的任务调度装置能够实现图1至图4的方法实施例实现的各个过程,为避免重复,这里不再赘述。

可选地,如图6所示,本申请实施例还提供一种电子设备600,包括处理器601和存储器602,存储器602上存储有可在所述处理器601上运行的程序或指令,该程序或指令被处理器601执行时实现上述任务调度方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。

需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。

图7为实现本申请实施例的一种电子设备的硬件结构示意图。

该电子设备1000包括但不限于:射频单元1001、网络模块1002、音频输出单元1003、输入单元1004、传感器1005、显示单元1006、用户输入单元1007、接口单元1008、存储器1009、以及处理器1010等部件。

本领域技术人员可以理解,电子设备1000还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器1010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。

其中,处理器1010,用于在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息;在所述参数信息满足预设条件的情况下,运行所述第一任务,其中,所述参数信息满足预设条件包括:所述参数信息中包括目标标识信息。

根据本申请实施例,通过设置关键锁,可以保证同一时间只存在一个任务获取关键锁,从而可以在多个任务同时运行时,通过获取关键锁的时间排序运行该多个任务,避免系统拥堵的问题。通过在第一任务获取到关键锁的情况下,获取所述第一任务的参数信息,在所述参数信息满足预设条件的情况下,运行所述第一任务,可以优先运行带有目标标识信息的第一任务,从而缩短第一任务等待运行的时间,避免相关技术中优先级反转造成系统卡顿的问题。

可选地,在所述参数信息中包括目标标识信息的情况下,所述参数信息满足预设条件还包括:所述目标标识信息的标识时长小于或者等于预设时长。

根据本申请实施例,通过在所述参数信息中包括目标标识信息的情况下,所述参数信息满足预设条件还包括:所述目标标识信息的标识时长小于或者等于预设时长,可以避免因特殊任务长时间运行而影响其他任务的运行,进而影响系统的运行速度,降低用户体验。

可选地,处理器1010还用于在所述参数信息不满足所述预设条件,且存在优先级高于所述第一任务的第二任务的情况下,运行所述第二任务;其中,所述参数信息不满足所述预设条件包括以下其中一项:所述参数信息中不包括所述目标标识信息、所述参数信息中包括所述目标标识信息但所述目标标识信息的标识时长大于所述预设时长;在所述第二任务退出运行之后,运行所述第一任务。

根据本申请实施例,在所述第一任务的参数信息不满足所述设定条件,且存在优先级高于所述第一任务的第二任务的情况下,运行所述第二任务,在所述第二任务退出运行之后,运行所述第一任务,可以避免多任务运行冲突导致系统卡顿的问题。

可选地,处理器1010用于在所述第一任务释放所述关键锁之后,清除所述第一任务的所述参数信息。

根据本申请实施例,在所述第一任务释放所述关键锁之后,清除所述第一任务的所述参数信息,从而可以避免在运行完带有目标标识信息的任务后,该目标标识信息影响其他任务的正常运行。

可选地,处理器1010用于在所述第一任务获取到关键锁,且所述第一任务占用系统资源的情况下,获取所述第一任务的参数信息;或者,在所述第一任务获取到关键锁,且第三任务占用所述系统资源的情况下,等待所述第一任务被唤醒,并在所述第一任务被唤醒的情况下,获取所述第一任务的参数信息;其中,所述第一任务在所述第三任务释放所述系统资源的情况下被唤醒。

根据本申请实施例,通过设置触发获取所述第一任务的参数信息的条件,可以提高系统运行速度,降低系统功耗。并且在第一任务被堵塞的情况下,先运行其他任务,在所述第三任务释放所述系统资源的情况下唤醒所述第一任务,获取所述第一任务的参数信息,还可避免因优先级高的任务被堵塞而无法运行其他优先级低的任务的问题,提高系统运行速度。

可选地,处理器1010用于在发生设定事件,且所述第一任务的所述参数信息中包括所述目标标识信息的情况下,获取所述目标标识信息的标识时长;在所述目标标识信息的标识时长大于所述预设时长的情况下,清除所述第一任务的所述参数信息中的所述目标标识信息。

根据本申请实施例,通过在发生设定事件,且所述第一任务的所述参数信息中包括所述目标标识信息的情况下,获取所述目标标识信息的标识时长;在所述目标标识信息的标识时长大于所述预设时长的情况下,清除所述第一任务的所述参数信息中的所述目标标识信息,可以避免因任务运行异常而导致其他任务无法运行的问题,提高了系统运行的速度。

应理解的是,本申请实施例中,输入单元1004可以包括图形处理器(GraphicsProcessing Unit,GPU)10041和麦克风10042,图形处理器10041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元1006可包括显示面板10061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板10061。用户输入单元1007包括触控面板10071以及其他输入设备10072中的至少一种。触控面板10071,也称为触摸屏。触控面板10071可包括触摸检测装置和触摸控制器两个部分。其他输入设备10072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。

存储器1009可用于存储软件程序以及各种数据。存储器1009可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器1009可以包括易失性存储器或非易失性存储器,或者,存储器1009可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器1009包括但不限于这些和任意其它适合类型的存储器。

处理器1010可包括一个或多个处理单元;可选的,处理器1010集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器1010中。

本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述任务调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。

本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述任务调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。

本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述任务调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。

通过以上的实施方式的描述,本领域的技术人员可以清除地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

相关技术
  • 一种任务调度方法、装置、电子设备及存储介质
  • 可弯曲电子设备、可弯曲电子设备的控制方法、装置及电子设备
  • 电子设备显示屏驱动芯片驱动方法、装置及电子设备
  • 天线结构及电子设备的信号接收方法、装置、电子设备
  • 一种电子设备的输入方法、输入装置及电子设备
  • 计算任务调度方法、计算任务调度装置及电子设备
  • 任务调度方法方法、装置、电子设备及存储介质
技术分类

06120115870960