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

一种任务的确定性调度方法、装置及电子设备

文献发布时间:2023-06-19 19:33:46


一种任务的确定性调度方法、装置及电子设备

技术领域

本发明涉及任务处理技术领域,尤其涉及一种任务的确定性调度方法、装置及电子设备。

背景技术

任务调度中的任务可以指在自动驾驶域控制器上运行的各类作业,在运行常见操作系统的SoC(系统级芯片,System on Chip)上可以指代各个线程,而在MCU(微控制单元,Micro Controller Unit)上可以指代各个任务。这些任务的运行或执行是需要满足约束条件的,只有在约束条件都满足的情况下才能正常运行或执行。

目前,在任务的调度过程中,常利用确定性调度的方式对任务实现调度,使得各任务按照逻辑顺序排布,避免进程间无效的竞争和运行。这里的确定性调度可以理解为,基于各任务的参数,将任务所需的CPU(中央处理器,central processing unit)计算资源抽象成时间片。基于一满足约束条件的启动时间组,将各时间片静态分配到时间轴上。这样,每个任务会运行于各自的时间片内,不同任务竞争产生的不确定性将基本消除。

然而,启动时间组直接影响着时间片在时间轴上的分布情况,仅考虑最基本的约束条件生成的启动时间组,会造成时间片的分布并不十分合理,进而使得任务的调度过程中负载不够均衡。

发明内容

鉴于上述问题,本发明实施例提供了一种任务的确定性调度方法、装置及电子设备以解决现有技术中,任务调度过程中时间片的分布并不十分合理,进而使得任务的调度过程中负载不够均衡的问题。

在本发明实施的第一方面,提供了一种任务的确定性调度方法,所述方法包括:

获取任务集合中每一任务的任务信息以及执行各所述任务所需满足的约束条件,其中,所述任务集合为待调度的第一数量的所述任务构成的集合;

基于所述任务信息和所述约束条件,确定所述初始时间序列,其中,所述初始时间序列为使各所述任务满足所述约束条件的第一数量的初始启动时间点构成的集合;

基于所述初始时间序列,生成第二数量的备选时间序列,其中,每一所述备选时间序列均包含所述第一数量的备选启动时间点,且各所述备选时间序列中的所述备选启动时间点完全不同或不完全相同;

基于各任务被打断的打断次数和约束情况,从所述第二数量的备选时间序列中筛选得到目标时间序列,其中,所述约束情况为基于所述备选时间序列执行各所述任务的过程中能否满足所述约束条件的情况;

基于所述目标时间序列执行各所述任务。

可选地,所述基于各任务被打断的打断次数和约束情况,从所述第二数量的备选时间序列中筛选得到目标时间序列,包括:

从所述第二数量的备选时间序列中筛选出满足所述约束条件的所述备选时间序列;

基于所述打断次数,从满足所述约束条件的所述备选时间序列中选择目标时间序列。

可选地,所述基于所述打断次数,从满足所述约束条件的所述备选时间序列中选择目标时间序列,包括:

选择所有所述任务的总的打断次数小于或者等于预设阈值的备选时间序列为所述目标时间序列;或者,

选择所有所述任务的打断次数均小于或等于各自对应的阈值的备选时间序列为所述目标时间序列。

可选地,在所有所述任务的总的打断次数小于或者等于预设阈值的备选时间序列的数量为多个的情况下,选择所有所述任务的总的打断次数最小的备选时间序列为所述目标时间序列。

可选地,基于所述初始时间序列,生成第二数量的备选时间序列,包括:

将所述初始时间序列作为初始种群,利用遗传算法生成新种群;

将所述新种群确定为所述第二数量的备选时间序列。

可选地,将所述初始时间序列作为初始种群,利用遗传算法生成新种群,包括:

分别从所述初始时间序列和动态时间序列中选择不同位置的元素;

基于所述不同位置的元素和随机生成的时间点,生成所述新种群;

其中,所述动态时间序列为所述初始种群或所述新种群中的任一成员。

可选地,所述基于各任务被打断的打断次数和约束情况,从所述第二数量的备选时间序列中筛选得到目标时间序列,包括:

基于每一所述任务的所述任务信息,确定每一所述任务对应的时间片;

针对每一所述备选时间序列,以所述备选时间序列中的所述备选启动时间点为各所述任务对应的首个时间片的开始时间,将各所述任务对应的所述时间片添加到同一时间轴,生成所述备选时间序列对应的任务时间轴;

基于所述约束条件以及所述任务时间轴,确定各任务被打断的打断次数和约束情况;

基于预设打断策略和预设约束策略,从所述备选时间序列中筛选得到所述目标时间序列。

可选地,所述将各所述任务对应的所述时间片添加到同一时间轴,生成所述备选时间序列对应的任务时间轴,包括:

将各所述任务对应的时间片以不同的颜色添加到同一时间轴,生成所述备选时间序列对应的任务时间轴。

可选地,所述基于所述目标时间序列执行各所述任务,包括:

通过定时器扫描所述任务时间轴,在到达目标时间片的开始时间时,通过相应的线程执行所述目标时间片对应的所述任务,其中,所述目标时间片为所述任务时间轴上的任一所述时间片。

可选地,具有重叠部分的至少两个所述时间片中,按照所述至少两个所述时间片各自的优先级在所述任务时间轴中排列。

可选地,在所述至少两个所述时间片的优先级相同的情况下,按照所述至少两个所述时间片各自的运行时长在所述任务时间轴中排列。

在本发明实施的第二方面,还提供了一种任务的确定性调度装置,所述装置包括:

获取模块,用于获取任务集合中每一任务的任务信息以及执行各所述任务所需满足的约束条件,其中,所述任务集合为待调度的第一数量的所述任务构成的集合;

确定模块,用于基于所述任务信息和所述约束条件,确定所述初始时间序列,其中,所述初始时间序列为使各所述任务满足所述约束条件的第一数量的初始启动时间点构成的集合;

生成模块,用于基于所述初始时间序列,生成第二数量的备选时间序列,其中,每一所述备选时间序列均包含所述第一数量的备选启动时间点,且各所述备选时间序列中的所述备选启动时间点完全不同或不完全相同;

筛选模块,用于基于各任务被打断的打断次数和约束情况,从所述第二数量的备选时间序列中筛选得到目标时间序列,其中,所述约束情况为基于所述备选时间序列执行各所述任务的过程中能否满足所述约束条件的情况;

调度模块,用于基于所述目标时间序列执行各所述任务。

在本发明实施的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任务的确定性调度方法的步骤。

在本发明实施的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一所述的任务的确定性调度方法。

在本发明实施的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任务的确定性调度方法。

针对在先技术,本发明具备如下优点:

本发明提供的任务的确定性调度方法,针对由待调度的第一数量的任务构成的任务集合,获取该任务集合中每一任务的任务信息以及执行各任务所需满足的约束条件,进而基于任务信息和约束条件,确定初始时间序列,该初始时间序列为使各任务满足约束条件的第一数量的初始启动时间点构成的集合。相比于直接利用该初始时间序列执行各任务,本发明在此基础上,将生成第二数量的备选时间序列。以打断次数和约束情况为筛选指标,从第二数量的备选时间序列中筛选得到目标时间序列,实现对初始时间序列的优化,最终基于目标时间序列执行各任务。本发明将打断次数和约束条件相结合,对初次生成的满足约束条件的启动时间组进行优化,按照优化后的启动时间组对各时间片进行排列,使得各时间片的分布更加合理,进而提升了任务调度过程中的负载均衡程度。同时,可以提高芯片算力的运用率,减少切换任务带来的效率损耗。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种任务的确定性调度方法的步骤流程图;

图2为本发明实施例提供的任务时间轴的展示示意图之一;

图3为本发明实施例提供的任务时间轴的展示示意图之二;

图4为本发明实施例提供的任务时间轴的展示示意图之三;

图5为本发明实施例提供的任务时间轴的展示示意图之四;

图6为本发明实施例提供的一种任务的确定性调度方法的局部流程图;

图7为本发明实施例提供的一种任务的确定性调度装置的结构框图;

图8为本发明实施例提供的电子设备的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。

在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

参见图1,本发明实施例提供了一种任务的确定性调度方法,该方法包括:

步骤101:获取任务集合中每一任务的任务信息以及执行各任务所需满足的约束条件。

本步骤中,任务集合为待调度的第一数量的任务构成的集合。其中,待调度的任务可以指在自动驾驶域控制器上运行的各类作业。本申请实施例可用于分布式的设备上,以SoC+MCU构成的自动驾驶域控制器为例,SoC上可以运行QNX操作系统,MCU系统上可以部署AUTOSAR(汽车开放系统架构,AUTomotive Open System Architecture)。第一数量可以为任意数量,为设备当前待处理的部分或全部任务的数量。具体的,可以根据前端客户端或者网页端得到基于客户需求的任务,即待调度的任务。较佳地,本发明涉及的任务可以为周期性任务,即需要周期性执行的任务。任务信息包括任务的执行周期和执行时长。约束条件为预先确定好的保证待调度的第一数量的任务可以正常执行的条件。这里的约束条件包括一个或多个条件,其中一个条件可以仅与一个任务相关,例如任务的延时不能超过规定时间的百分之五。一个条件也可以与多个任务相关,例如任务1的执行依赖于任务2,即需要在执行完任务2之后再执行任务1。

步骤102:基于任务信息和约束条件,确定初始时间序列。

本步骤中,初始时间序列为使各任务满足约束条件的第一数量的初始启动时间点构成的集合。这里,可以采用任意方式生成该初始时间序列。例如随机生成一时间序列,然后基于任务信息和约束条件进行校验,确定该时间序列能否使各任务满足约束条件。若能则该时间序列即为初始时间序列;若不能,则重新随机生成一时间序列,直至生成的时间序列能够使各任务满足约束条件为止,将最后生成的时间序列作为初始时间序列。当然,也可以依次确定每一任务的使得任务满足约束条件的启动时间,最后由各启动时间组成初始时间序列。具体的,在n-1个任务的启动时间满足约束条件的情况下,筛选加入第n个任务满足约束条件的启动时间。这里以及后续所述的各任务指的是任务集合中的所有任务。

步骤103:基于初始时间序列,生成第二数量的备选时间序列。

本步骤中,每一备选时间序列均包含第一数量的备选启动时间点,且各备选时间序列中的备选启动时间点完全不同或不完全相同。也就说,备选时间序列可以是以初始时间序列为基础,扩展出来的包括相同数量元素的时间序列。这里,第二数量通常为一较大的数值,从而使得大量的备选时间序列中存在初始时间序列优化后的结果。

步骤104:基于各任务被打断的打断次数和约束情况,从第二数量的备选时间序列中筛选得到目标时间序列。

本步骤中,需要从第二数量的备选时间序列中选择一个作为初始时间序列的优化结果,即目标时间序列。也就是说,基于目标时间序列执行任务集合中的各任务,相比于基于初始时间序列执行任务集合中的各任务可以使得负载更加均衡。这里,在筛选目标时间序列过程中,将各任务分别按照每一备选时间序列执行过程中被打断的次数、每一备选时间序列的约束情况作为筛选指标,基于预设筛选条件进行灵活筛选。其中,预设筛选条件与优化目标相关联,使得通过预设筛选条件筛选出的目标时间序列最为符合优化目标。

可以理解的是,约束情况为基于备选时间序列执行各任务的过程中能否满足约束条件的情况。也就是说,约束情况包括满足约束条件的第一情况或者不满足约束条件的第二情况。这里,备选时间序列满足约束条件,即为各任务基于备选时间序列执行的过程中满足约束条件。

针对任务被打断的打断次数,各任务按照某一备选时间序列执行过程中,若任务A(可以为任一任务)在执行过程中若未执行完毕就停止执行任务A,转而执行其它任务,则任务A被打断,任务A的打断次数加一。具体的,备选时间序列中的每一备选启动时间点对应一任务的启动时间点,在各任务基于备选时间序列执行预设时长的过程中,每一任务将其对应的备选启动时间点作为首次执行的开始时间(启动时间点),然后按照各自的执行周期和执行时长开始执行。在此过程中,若任一任务在执行过程中若未执行完毕就停止执行该任务,转而执行其它任务,则该任务被打断,打断次数加一。预设时长与任务的数量以及执行周期相关,具体的,可以为所有任务的执行周期的最小公倍数。也就是说,在以预设时长为处理各任务的处理周期的情况下,不同处理周期内各任务的执行情况是相同的。

步骤105:基于目标时间序列执行各任务。

本步骤中,目标时间序列为第二数量的备选时间序列中的一个,其包括第一数量的备选启动时间点,且每一备选启动时间点对应一任务。从而每一任务将其对应的备选启动时间点作为首次执行的开始时间,然后按照各自的执行周期和执行时长开始执行。

本发明实施例中,针对由待调度的第一数量的任务构成的任务集合,获取该任务集合中每一任务的任务信息以及执行各任务所需满足的约束条件,进而基于任务信息和约束条件,确定初始时间序列,该初始时间序列为使各任务满足约束条件的第一数量的初始启动时间点构成的集合。相比于直接利用该初始时间序列执行各任务,本发明在此基础上,将生成第二数量的备选时间序列。以打断次数和约束情况为筛选指标,从第二数量的备选时间序列中筛选得到目标时间序列,实现对初始时间序列的优化,最终基于目标时间序列执行各任务。本发明将打断次数和约束条件相结合,对初次生成的满足约束条件的启动时间组进行优化,按照优化后的启动时间组对各时间片进行排列,使得各时间片的分布更加合理,进而提升了任务调度过程中的负载均衡程度。同时,可以提高芯片算力的运用率,减少切换任务带来的效率损耗。

可选地,基于各任务被打断的打断次数和约束情况,从第二数量的备选时间序列中筛选得到目标时间序列,包括:

从第二数量的备选时间序列中筛选出满足约束条件的备选时间序列。

基于打断次数,从满足约束条件的备选时间序列中选择目标时间序列。

应当说明的是,在将各任务分别按照每一备选时间序列执行过程中被打断的次数、每一备选时间序列的约束情况作为筛选指标的情况下,可以先根据其中一个筛选指标进行第一次筛选,然后在筛选结果中根据另一个筛选指标进行第二次筛选,最终得到目标时间序列。这里,还可以先基于打断次数,从第二数量的备选时间序列中筛选出满足预设次数条件的备选时间序列;然后基于约束条件从满足预设次数条件的备选时间序列中,筛选出满足约束条件的目标时间序列。

本发明实施例中,通过两次筛选的方式,可以从第二数量的备选时间序列中快速筛选得到目标时间序列。

可选地,基于打断次数,从满足约束条件的备选时间序列中选择目标时间序列,包括:

选择所有任务的总的打断次数小于或者等于预设阈值的备选时间序列为目标时间序列;或者,

选择所有任务的打断次数均小于或等于各自对应的阈值的备选时间序列为目标时间序列。

应当说明的是,满足约束条件的备选时间序列的数量通常为多个,需要以打断次数为筛选指标,从中选择一个作为初始时间序列的优化结果,即目标时间序列。在基于打断次数筛选目标时间序列过程中,可以基于预设筛选条件进行灵活筛选,从而得到最为符合优化目标的目标时间序列。其中,预设筛选条件与优化目标相关联。

在一个优选的实施例中,在参与调度的所有的任务由一个处理核执行的情况下,或者,在参与调度的所有的任务由多个处理核配合完成的情况下,选择所有任务的总的打断次数小于或者等于预设阈值的备选时间序列为目标时间序列,从而能够快速的筛选出目标时间序列。其中,参与调度的所有的任务即为上述发明实施例中任务集合中待调度的第一数量的任务。预设阈值可以为预先确定的一较小的数值,例如可以为2或者3。当然其还可以为一动态数值。可以理解的是,每一备选时间序列对应一打断累积次数,即所有任务按照该备选时间序列执行过程中,所有任务的总的打断次数。从而基于每一备选时间序列对应的打断累积次数,可以快速筛选出目标时间序列。

在一个优选的实施例中,选择在各自对应的任务周期中的,各个任务的打断次数均小于或等于该任务对应的阈值的备选时间序列为目标时间序列,即选择所有任务的打断次数均小于或等于各自对应的阈值的备选时间序列为目标时间序列。也就是说,每一任务对应一任务周期,该任务需要在其对应的任务周期内周期性的执行,在执行过程中其被打断的打断次数视为该任务被打断的累积打断次数。同时,该任务对应一阈值,若该任务的打断次数小于或等于该阈值,视为该任务在任务周期内的执行过程正常,否则视为异常。通过本优选的实施例筛选出的目标时间序列,可以保证所有任务在各自的任务周期内的执行过程均正常。

本发明实施例中,可以基于不同的优化目标设置不同的筛选条件,进而基于不同的筛选条件进行灵活筛选,从而得到最为符合优化目标的目标时间序列。

可选地,在所有任务的总的打断次数小于或者等于预设阈值的备选时间序列的数量为多个的情况下,选择所有任务的总的打断次数最小的备选时间序列为目标时间序列。

应当说明的是,所有任务的总的打断次数最小说明,各任务在执行过程中受到的影响也将最小。因此,当存在多个备选时间序列作为选择,且该多个备选时间序列的所有任务的总的打断次数均小于或者等于预设阈值的情况下,选择受影响最小的备选时间序列作为目标时间序列。

本发明实施例中,将所有任务的总的打断次数最小的备选时间序列作为目标时间序列,可以使得所有任务在执行过程中受到的影响也最小。

可选地,基于初始时间序列,生成第二数量的备选时间序列,包括:

将初始时间序列作为初始种群,利用遗传算法生成新种群。

将新种群确定为第二数量的备选时间序列。

应当说明的是,遗传算法是通过模拟自然进化过程搜索最优解的方法,这里不再详述。可以理解的是,利用遗传算法生成的新种群将继承初始种群的部分特征,从而使得新种群中存在尽可能多的满足约束条件的备选时间序列。

作为初始种群的初始时间序列的数量可以为一个或者两个。在其为两个的情况下,将这两个初始时间序列作为第一代,利用遗传算法生成继承有第一代的特征的第二代,将第二代作为新种群,但不限于此。还可以再次将一初始时间序列和第二代中的一个成员作为新第一代,再次利用遗传算法生成继承有新第一代的特征的新第二代,将新第二代作为新种群。以此类推,还可以将多次生成的第二代合称为新种群。

本发明实施例中,相比于随机生成备选时间序列的方式,利用遗传算法生成第二数量的备选时间序列,可以更高概率的得到满足约束条件的备选时间序列,从而使得其中存在尽可能多的满足约束条件的备选时间序列。

可选地,将初始时间序列作为初始种群,利用遗传算法生成新种群,包括:

分别从初始时间序列和动态时间序列中选择不同位置的元素。

基于不同位置的元素和随机生成的时间点,生成新种群。

其中,动态时间序列为初始种群或新种群中的任一成员。

应当说明的是,对于序列而言,其中的元素具有不同的位置,可以通过位置区分不同的元素。分别从初始时间序列和动态时间序列中选择不同位置的元素,可以理解为,在初始时间序列和动态时间序列的多个相同位置上分别选择一个元素。例如初始时间序列为(2,4,6,8,10),动态时间序列为(1,3,5,7,9),其中,元素1和元素2分别位于各自所属序列的相同位置,即第一位置。同理,元素3和元素4分别位于各自所属序列的相同位置,即第二位置。元素5和元素6分别位于各自所属序列的相同位置,即第三位置。在从第一位置、第二位置和第三位置中选择元素时,将从元素1和元素2中选择一个元素,从元素3和元素4中选择一个元素,从元素5和元素6中选择一个元素。选择出的元素可以为元素2、元素3和元素5,但不限于此。

从初始时间序列和动态时间序列中选择不同位置的元素时,其中的不同位置并非初始时间序列或者动态时间序列的全部位置,即选择出的元素的数量小于第一数量。随机生成的时间点的数量与选择出的元素的数量相关,两者相加等于第一数量。这里,不同位置的元素分别和每次随机生成的时间点组合,生成新种群的一部分。这部分新种群的所有成员的区别在于随机生成的时间点不同。较佳地,还可以多次从初始时间序列和动态时间序列中选择不同位置的元素,任意两次选择的位置不完全相同,可以是位置的数量不同,也可以是具体位置不同。基于每次选择出的元素和再次随机生成的时间点,生成新种群的又一部分,丰富了新种群。

可以理解的是,在动态时间序列为初始种群中的成员时,将从两个不同的初始时间序列中选择不同位置的元素,进而基于不同位置的元素和随机生成的时间点,生成新种群的一部分。然后从该新种群的一份部分中选择一个作为动态时间序列,进而再次从初始时间序列和动态时间序列中选择不同位置的元素,基于不同位置的元素和随机生成的时间点,生成新种群的又一部分。并且,以此类推,还可以在该新种群的又一部分中选择一个作为动态时间序列,进而再次从初始时间序列和动态时间序列中选择不同位置的元素,基于不同位置的元素和随机生成的时间点,生成新种群的又一部分。最终形成拥有大量成员的新种群。

值得注意的是,在新种群中选择一个成员作为动态时间序列时,可以依次选择每一成员作为动态时间序列。也可以仅选择其中打断次数最少的成员作为动态时间序列。

本发明实施例中,将遗传算法与随机算法相结合,使得新种群整体满足约束的可能性较大。又因为拥有随机生成的部分,避免会陷入到局部最优解。

可选地,基于各任务被打断的打断次数和约束情况,从第二数量的备选时间序列中筛选得到目标时间序列,包括:

基于每一任务的任务信息,确定每一任务对应的时间片。

应当说明的,时间片(timeslice)又称为“量子(quantum)”或“处理器片(processor slice)”是分时操作系统分配给每个正在运行的进程微观上的一段CPU时间。这里将任务所需的CPU计算资源抽象成时间片。

针对每一备选时间序列,以备选时间序列中的备选启动时间点为各任务对应的首个时间片的开始时间,将各任务对应的时间片添加到同一时间轴,生成备选时间序列对应的任务时间轴。

应当说明的是,这里的时间轴可以为一空白数组模拟的时间轴,将时间片添加到时间轴,即为将时间片表征的数据添加到该空白数组中,生成一记录有各时间片表征的数据的数组,即任务时间轴。该任务时间轴或记录有数据的数组包括每一任务或任务对应的时间片的开始时间、执行周期、执行时长等数据。可以理解的是,由于各备选时间序列中的备选启动时间点不尽相同,使得不同备选时间序列对应的任务时间轴上各时间片的分布不尽相同。

基于约束条件以及任务时间轴,确定各任务被打断的打断次数和约束情况。

应当说明的是,任务时间轴包括每一任务对应的时间片的开始时间、执行周期、执行时长等数据,各时间片的分布一目了然。因此,通过任务时间轴可以快速确定各任务的打断情况,从而计算得到打断次数。同理,通过任务时间轴与约束条件的比对,可以快速确定是否满足约束条件,即约束情况。

基于预设打断策略和预设约束策略,从备选时间序列中筛选得到目标时间序列。

应当说明的是,预设打断策略为基于预设阈值设置的打断策略,具体的,预设打断策略包括打断次数小于或等于预设阈值。预设约束策略为需要满足约束条件的策略。通过两个策略的筛选,使得被筛选出的目标时间序列不仅满足约束条件,同时打断次数也较少。

本发明实施例中,通过将各任务对应的时间片添加到时间轴上,可以生成任务时间轴,从而快速确定备选时间序列的打断次数和约束情况,提升了得到目标时间序列的效率。

可选地,将各任务对应的时间片添加到同一时间轴,生成备选时间序列对应的任务时间轴,包括:

将各任务对应的时间片以不同的颜色添加到同一时间轴,生成备选时间序列对应的任务时间轴。

应当说明的是,不同时间片在任务时间轴上的颜色不同,从而通过颜色可以快速的区分任务时间轴上的不同时间片。如图2所示,三个不同的任务对应的时间片以三个不同的颜色添加到任务时间轴中。从图2中可以直观的看到各任务对应的时间片的分布情况。这里,通过任务时间轴上不同颜色时间片的分布还可以快速确定其对应的备选时间序列是否满足约束条件。例如,假设约束条件为在域A的任务1的执行依赖于域B的任务2,则将其转化为任务时间轴上的表现应当是,所有的任务2所代表的颜色都要在任务1的前面,且不能有两种颜色交叉的情况。假设约束条件为任务的延时不能超过规定时间的百分之五,则将其转化为判断任务时间轴上所有任务执行完毕的时间和预定执行完毕的时间的差值是否满足条件。如图3~图5所示,为不满足约束条件的备选时间序列对应的任务时间轴的示意图。三个任务时间轴各自对应的备选时间序列均不满足约束条件。

本发明实施例中,通过颜色可以快速的区分任务时间轴上的不同时间片,可以进一步提升确定备选时间序列的打断次数和约束情况的效率。

可选地,基于目标时间序列执行各任务,包括:

通过定时器扫描任务时间轴,在到达目标时间片的开始时间时,通过相应的线程执行目标时间片对应的任务,其中,目标时间片为任务时间轴上的任一时间片。

应当说明的是,如果进程内有多线程,在触发的信息中指定执行线程,通过进程中的回调函数,执行相应的线程。这里,可以通过一预设的守护程序,在确定目标时间序列之后,将该目标时间序列对应的任务时间轴传入该守护程序。由守护程序按照任务时间轴启动各个周期任务。通过基于高精度时钟的定时器扫描任务时间轴,当到达某一时间片开始时间时,立刻触发执行相应的线程。

本发明实施例中,通过定时器扫描任务时间轴的方式,在到达每一时间片的开始时间时,通过相应线程执行相应该时间片对应的任务,从而保证各任务可以正常执行。

可选地,具有重叠部分的至少两个时间片中,按照至少两个时间片各自的优先级在任务时间轴中排列。

应当说明的是,由于同一时刻无法真正执行多个不同的任务,因此,若多个任务各自对应的时间片存在重叠部分,将时间片进行线性排列,依次执行。具体的,每一任务或任务对应的时间片均具有优先级,优先级的级别越高,则越应当优先执行。因此,在至少两个时间片具有重叠部分,确定优先执行那个时间片对应的任务时,基于时间片对应的任务的优先级,优先级的级别越高,则在至少两个时间片中排列的越往前。

本发明实施例中,利用任务或任务对应的时间片的优先级,对具有重叠部分的时间片进行排列,保证优先级的级别越高的任务,优先被执行。

可选地,在至少两个时间片的优先级相同的情况下,按照至少两个时间片各自的运行时长在任务时间轴中排列。

应当说明的是,各任务或各任务对应的时间片的优先级可能相同或者不同。在至少两个时间片具有重叠部分,且各时间片的优先级相同时,运行时长越短,则在至少两个时间片中排列的越往前。时间片的运行时长即为时间片的时长,也就是其对应任务的执行时长。可以理解的是,每一任务均不会被同优先级的其它任务打断。对于同优先级的多个任务,在其等待被执行时,依次加入一等待队列。因此,还可以基于其进入等待队列的时间以及是否为被打断的任务,对其重新划分优先级。其中,被打断的任务的优先级最高、然后各任务的优先级按照进入等待队列的时间从早到晚的顺序依次降低。也就是说,在高优先级的任务执行完毕之后,若存在同为低优先级的多个任务,先执行其中被打断的低优先级任务,然后剩余低优先级的多个任务按照进入等待队列的时间从早到晚的顺序依次执行。

本发明实施例中,利用时间片的运行时长,对具有重叠部分且相同优先级的时间片进行排列,不仅可以保证运行时长越短的任务,优先被执行,还可以保证进入等待队列越早的任务,优先被执行。

如图6所示,为本发明实施例提供的一种任务的确定性调度方法的局部流程图,包括:

第一阶段:基于待调度的任务的任务信息和约束条件,生成一满足约束条件的初始时间组(相当于上述发明实施例中的初始时间序列),这里不再赘述。

第二阶段:通过随机和遗传算法生成大量的备选时间组。例如,从两组满足约束条件的初始时间组中选择部分作为备选时间组中的一部分数据,再随机生成备选时间组中的剩余部分数据,将其组合后作为待筛选的大量备选时间组之一。因为初始时间组已经满足约束,所以备选时间组整体满足约束的可能性比全部随机生成的启动时间组更大。又因为拥有随机生成的部分,所以不会陷入到局部最优解。

第三阶段:对备选时间组进行第一次筛选,过滤掉不满足约束条件的备选时间组,保留满足约束条件的备选时间组进入下一阶段。

第四阶段:多第一次筛选的结果进行第二次筛选,过滤掉打断次数较多的备选时间组,保留打断次数较少的时间组进入下一阶段。

第五阶段:输出第二次筛选结果中的任意一个,或者输出第二次筛选结果中打断次数最少的一个备选时间组。使得各任务按照该输出的备选时间组进行执行。

本发明实施例中,通过随机和遗传算法生成大量的启动时间组,并将打断次数作为关键指标,将其中表现不良的启动时间组和不满足约束条件的启动时间组筛选淘汰掉,最后留下的启动时间组即为较为合理的启动时间,优化了确定性调度。提高了芯片算力的运用率,减少切换任务带来的效率损耗。具有更高的准确率和更快的验算速度。可自由设计约束条件,设计参数具有更大的灵活性。

以上介绍了本发明实施例提供的一种任务的确定性调度方法,下面将结合附图介绍本发明实施例提供的一种任务的确定性调度装置。

参见图7,本发明实施例还提供了一种任务的确定性调度装置,该装置包括:

获取模块71,用于获取任务集合中每一任务的任务信息以及执行各任务所需满足的约束条件,其中,任务集合为待调度的第一数量的任务构成的集合;

确定模块72,用于基于任务信息和约束条件,确定初始时间序列,其中,初始时间序列为使各任务满足约束条件的第一数量的初始启动时间点构成的集合;

生成模块73,用于基于初始时间序列,生成第二数量的备选时间序列,其中,每一备选时间序列均包含第一数量的备选启动时间点,且各备选时间序列中的备选启动时间点完全不同或不完全相同;

筛选模块74,用于基于各任务被打断的打断次数和约束情况,从第二数量的备选时间序列中筛选得到目标时间序列,其中,约束情况为基于备选时间序列执行各任务的过程中能否满足约束条件的情况;

调度模块75,用于基于目标时间序列执行各任务。

可选地,筛选模块74,包括:

第一筛选单元,用于从第二数量的备选时间序列中筛选出满足约束条件的备选时间序列;

第二筛选单元,用于基于打断次数,从满足约束条件的备选时间序列中选择目标时间序列。

可选地,第二筛选单元,具体用于选择所有任务的总的打断次数小于或者等于预设阈值的备选时间序列为目标时间序列;或者,

选择所有任务的打断次数均小于或等于各自对应的阈值的备选时间序列为目标时间序列。

可选地,在所有任务的总的打断次数小于或者等于预设阈值的备选时间序列的数量为多个的情况下,选择所有任务的总的打断次数最小的备选时间序列为目标时间序列。

可选地,生成模块73,包括:

生成单元,用于将初始时间序列作为初始种群,利用遗传算法生成新种群;

确定单元,用于将新种群确定为第二数量的备选时间序列。

可选地,生成单元,具体用于分别从初始时间序列和动态时间序列中选择不同位置的元素;基于不同位置的元素和随机生成的时间点,生成新种群。

其中,动态时间序列为初始种群或新种群中的任一成员。

可选地,筛选模块74,包括:

时间片单元,用于基于每一任务的任务信息,确定每一任务对应的时间片;

时间轴单元,用于针对每一备选时间序列,以备选时间序列中的备选启动时间点为各任务对应的首个时间片的开始时间,将各任务对应的时间片添加到同一时间轴,生成备选时间序列对应的任务时间轴;

计算单元,用于基于约束条件以及任务时间轴,确定各任务被打断的打断次数和约束情况;

筛选策略单元,用于基于预设打断策略和预设约束策略,从备选时间序列中筛选得到目标时间序列。

可选地,时间轴单元,具体用于将各任务对应的时间片以不同的颜色添加到同一时间轴,生成备选时间序列对应的任务时间轴。

可选地,调度模块75,具体用于通过定时器扫描任务时间轴,在到达目标时间片的开始时间时,通过相应的线程执行目标时间片对应的任务,其中,目标时间片为任务时间轴上的任一时间片。

可选地,具有重叠部分的至少两个时间片中,按照至少两个时间片各自的优先级在任务时间轴中排列。

可选地,在至少两个时间片的优先级相同的情况下,按照至少两个时间片各自的运行时长在任务时间轴中排列。

本发明实施例提供的一种任务的确定性调度装置能够实现图1和图6的方法实施例中一种任务的确定性调度方法实现的各个过程,为避免重复,这里不再赘述。

本发明的实施例中,针对由待调度的第一数量的任务构成的任务集合,获取该任务集合中每一任务的任务信息以及执行各任务所需满足的约束条件,进而基于任务信息和约束条件,确定初始时间序列,该初始时间序列为使各任务满足约束条件的第一数量的初始启动时间点构成的集合。相比于直接利用该初始时间序列执行各任务,本发明在此基础上,将生成第二数量的备选时间序列。以打断次数和约束情况为筛选指标,从第二数量的备选时间序列中筛选得到目标时间序列,实现对初始时间序列的优化,最终基于目标时间序列执行各任务。本发明将打断次数和约束条件相结合,对初次生成的满足约束条件的启动时间组进行优化,按照优化后的启动时间组对各时间片进行排列,使得各时间片的分布更加合理,进而提升了任务调度过程中的负载均衡程度。同时,可以提高芯片算力的运用率,减少切换任务带来的效率损耗。

本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信;

存储器803,用于存放计算机程序;

处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:

获取任务集合中每一任务的任务信息以及执行各任务所需满足的约束条件,其中,任务集合为待调度的第一数量的任务构成的集合;

基于任务信息和约束条件,确定初始时间序列,其中,初始时间序列为使各任务满足约束条件的第一数量的初始启动时间点构成的集合;

基于初始时间序列,生成第二数量的备选时间序列,其中,每一备选时间序列均包含第一数量的备选启动时间点,且各备选时间序列中的备选启动时间点完全不同或不完全相同;

基于各任务被打断的打断次数和约束情况,从第二数量的备选时间序列中筛选得到目标时间序列,其中,约束情况为基于备选时间序列执行各任务的过程中能否满足约束条件的情况;

基于目标时间序列执行各任务。

上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述终端与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种任务的确定性调度方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中所述的一种任务的确定性调度方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 一种任务调度方法、装置、电子设备及存储介质
  • 一种自动分配任务的方法、装置、电子设备以及存储介质
  • 一种任务时长确定方法及装置和电子设备
  • 一种任务处理方法、装置、电子设备及介质
  • 一种聚合物交联凝胶热稳定性的确定方法及装置
  • 实现确定性执行目标的任务调度方法、装置及电子设备
  • 一种任务调度方案的确定方法、装置和设备
技术分类

06120115953998