一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

资源调度方法、装置、系统、设备及存储介质与流程

2022-12-20 02:08:06 来源:中国专利 TAG:


1.本技术属于操作系统技术领域,尤其涉及一种资源调度方法、装置、系统、设备及存储介质。


背景技术:

2.目前,市场上大量嵌入式设备选用实时操作系统(real time operating system,rtos)作为设备的操作系统。
3.rtos按照任务的优先级执行抢占式调度。如果高优先级任务有调度需求,低优先级任务便会让出调度资源,由高优先级任务抢占;如果低优先级任务有调度需求,但同时高优先级任务正在占用调度资源,低优先级任务将一直得不到调度执行,直到高优先级任务结束调度需求。
4.因此,rtos虽然能保证定义的高优先级任务得到及时的响应;但是,存在低优先级任务长时间得不到调度的问题,还会给设备软件功能的设计开发带来极大困难,适用范围也较小。


技术实现要素:

5.本技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本技术的一个目的在于提出一种资源调度方法、装置、系统、设备及存储介质。
6.为了解决上述技术问题,本技术的实施例提供如下技术方案:
7.一种资源调度方法,包括:
8.当每个待调度任务的实时调度级别有效时,则每隔一个调度周期,遍历多个所述待调度任务和与每个所述待调度任务对应的等待调度时间;
9.将与每个所述待调度任务对应的所述等待调度时间与所述等待调度时间的阈值进行比较;
10.若所述待调度任务对应的所述等待调度时间等于所述等待调度时间的阈值,则所述待调度任务的实时调度级别失效,对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别。
11.可选的,在所述当每个待调度任务的实时调度级别有效时,则每隔一个调度周期,遍历多个所述待调度任务和与每个所述待调度任务对应的等待调度时间之前,还包括:
12.获取多个所述待调度任务,并确定每个所述待调度任务的初始调度级别;
13.基于每个所述待调度任务的所述初始调度级别,获得所述待调度任务的初始调度级别的队列。
14.可选的,所述若所述待调度任务对应的所述等待调度时间等于所述等待调度时间的阈值,则所述待调度任务的实时调度级别失效,对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别,包括:
15.对所述待调度任务的所述实时调度级别基于优先级阶梯进行调整,并将所述待调
度任务的调度周期的次数恢复为0;其中,所述优先级阶梯设有包括多个阶梯值,将任意一个所述阶梯值确定为目标阶梯值,并基于所述目标阶梯值对所述待调度任务的所述实时调度级别进行调整;所述等待调度时间=调度周期*调度周期的次数n,1≤n≤调度周期的次数的阈值,且n为整数;每隔一个所述调度周期对所述待调度任务的调度状态进行确认,并重新计算所述调度周期的次数n;
16.将所述调度周期的次数n与所述调度周期的次数的阈值进行比较,获得比较结果;
17.根据所述比较结果,确定所述待调度任务的所述目标调度级别。
18.可选的,所述根据所述比较结果,确定所述待调度任务的所述目标调度级别,包括:
19.若所述比较结果为调度周期的次数n小于所述调度周期的次数的阈值,且所述待调度任务被调度,则将所述实时调度级别确定为所述待调度任务的所述目标调度级别;
20.或若所述比较结果为所述调度周期的次数n等于所述调度周期的次数的阈值,且所述待调度任务未被调度,则对所述实时调度级别进行调整,直至所述待调度任务被调度;其中,初始调度级别的优先级≤所述实时调度级别的优先级≤所述目标调度级别的优先级。
21.可选的,在所述对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别之后,还包括:
22.根据每个所述待调度任务的所述目标调度级别,获取与每个所述待调度任务匹配的调度资源以及已调度任务;
23.获取所述调度资源的状态,并根据所述调度资源的所述状态,确定与所述调度资源匹配的所述已调度任务的所述目标调度级别有效或失效。
24.可选的,所述获取所述调度资源的状态,并根据所述调度资源的所述状态,确定与所述调度资源匹配的所述已调度任务的所述目标调度级别有效或失效,包括:
25.对所述调度资源的状态进行判断;其中,所述对所述调度资源的状态进行判断,包括:获得所述已调度任务的预测调度次数;若所述预测调度次数大于0,则所述调度资源的所述状态为第一状态;或若所述预测调度次数等于0,则所述调度资源的所述状态为第二状态;
26.根据所述调度资源的所述状态,确定所述已调度任务的匹配的所述目标调度级别有效或失效。
27.可选的,所述根据所述调度资源的所述状态,确定所述已调度任务的匹配的所述目标调度级别有效或失效,包括:
28.若所述状态为所述第一状态,则计算获得与调度资源对应的所述已调度任务的调度次数s
k-1
;其中,0≤s
k-1
≤期待调度次数的最大值,且s
k-1
为整数;k≥1,且k为整数;
29.将所述调度次数s
k-1
与所述期待调度次数的最大值进行比较;
30.若所述调度次数小于所述期待调度次数的最大值,则获得所述已调度任务从第一次被调度到第s
k-1
次被调度的间隔时长,并将所述间隔时长与一个所述调度周期进行比较,若所述间隔时长等于一个所述调度周期,则确定所述待调度任务的所述目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至初始调度级别;或
31.若所述调度次数等于所述期待调度次数的最大值,则确定所述已调度任务的所述
目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至所述初始调度级别。
32.可选的,所述根据所述调度资源的所述状态,确定所述已调度任务的匹配的所述目标调度级别有效或失效,还包括:
33.若所述状态为所述第二状态,则计算获得与所述调度资源匹配的所述已调度任务的剩余调度次数l;其中,0≤l≤预测调度次数,且l为整数;所述预测调度次数基于k个学习周期的所述已调度任务的调度次数以及预测算法参数确定;k≥1,且k为整数;
34.若所述剩余调度次数l不等于0,则确定所述已调度任务的目标调度级别有效;
35.或若所述剩余调度次数l等于0,则确定所述已调度任务的目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至所述初始调度级别。
36.本技术的实施例还提供一种资源调度装置,包括:
37.遍历模块,用于当每个待调度任务的实时调度级别有效时,则每隔一个调度周期,遍历多个所述待调度任务和与每个所述待调度任务对应的等待调度时间;
38.比较模块,用于将与每个所述待调度任务对应的所述等待调度时间与所述等待调度时间的阈值进行比较;
39.调整模块,用于若所述待调度任务对应的所述等待调度时间等于所述等待调度时间的阈值,则所述待调度任务的实时调度级别失效,对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别。
40.本技术的实施例还提供一种资源调度系统,包括:
41.通信连接的注册单元、数据单元以及定时单元;
42.所述注册单元,用于获取多个待调度任务,并确定每个所述待调度任务的调度状态;然后根据调度资源的状态,确定与所述调度资源匹配的已调度任务的目标调度级别有效或无效;
43.所述数据单元,用于配置初始参数集;其中,所述初始参数集包括调度周期以及所述调度周期的次数的阈值;
44.所述定时单元,用于当每个待调度任务的实时调度级别有效时,根据所述待调度任务的所述调度状态以及所述调度周期的次数,对每个所述待调度任务的所述实时调度级别进行调整,获得每个所述待调度任务的目标调度级别。
45.本技术的实施例还提供一种电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
46.本技术的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的方法。
47.本技术的实施例,具有如下技术效果:
48.本技术的上述技术方案,1)若待调度任务的初始调度级别的优先级较低,则可以根据初始参数集,并结合待调度任务的等待调度时间,对待调度任务的初始调度级别的优先级进行提高,以实现待调度任务在等待了合适的时间之后,就可以获得调度资源。
49.2)在初始调度级别的优先级较低的待调度任务,获得匹配的调度资源之后,对与该待调度任务匹配的已调度任务的调度次数进行了限制,因此,不会影响对初始调度级别
的优先级较高的待调度任务的调度。
50.3)适用于采用rtos的嵌入式设备(例如:基站、路由器、或信号扩展设备等),在基于任务优先级的抢占式任务调度机制上,实现了有限制地、精确地、用户友好地调整待调度任务的实时调度级别的优先级,让初始调度级别的优先级较低的待调度任务,得到适量的调度资源,综合改善了系统的性能。
51.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
52.图1是本技术实施例提供的一种资源调度系统的结构示意图;
53.图2是本技术实施例提供的一种任务调度钩子处理元件的工作原理示意图;
54.图3是本技术实施例提供的一种定时单元的工作原理示意图;
55.图4是本技术实施例提供的一种资源调度方法的流程示意图;
56.图5是本技术实施例提供的一种资源调度方法的一个示例的流程示意图;
57.图6是本技术实施例提供的一种资源调度方法的另一个示例的流程示意图;
58.图7是本技术实施例提供的一种资源调度装置的结构示意图。
具体实施方式
59.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
60.为了本领域的技术人员对实施例的理解,对部分用语进行解释:
61.led:light-emitting diode,发光二极管。
62.如图1所示,本技术的实施例提供一种资源调度系统,包括:
63.通信连接的注册单元、数据单元以及定时单元;
64.所述注册单元,用于获取多个待调度任务,并确定每个所述待调度任务的调度状态;然后根据调度资源的状态,确定与所述调度资源匹配的已调度任务的目标调度级别有效或无效;
65.其中,注册单元包括任务注册元件以及任务调度钩子处理元件,任务注册元件用于完成对任务的注册,并获得多个待调度任务;
66.任务调度钩子处理元件用于执行任务调度,对每个待调度任务的调度状态进行标注;根据已调度任务的调度次数,确定是否将已调度任务的实时调度级别恢复至初始调度级别。
67.具体的,如图2所示,判断即将被调度的待调度任务是否已经完成注册,若即将被调度的待调度任务已经完成注册,则待调度任务获取匹配的调度资源,并被进行至少一次调度;然后,判断待调度任务的实时调度级别是否为初始调度级别,若待调度任务的当前优先级是初始调度级别,则表明该待调度任务的初始调度级别未被提高,并将该待调度任务标注为已调度任务,并执行完成本次任务调度;
68.若即将被调度的待调度任务未完成注册,则直接执行完成本次任务调度;
69.若待调度任务的当前优先级不是初始调度级别,则表明该待调度任务的初始调度级别已被提高,在将该待调度任务标注为已调度任务之后,判断与待调度任务匹配的调度资源的状态;若与待调度任务匹配的调度资源的状态为学习状态,则根据待调度任务的调度时间以及调度次数,确定是否将待调度任务的优先级恢复至初始调度级别;在将待调度任务的当前优先级恢复至初始调度级别后,则执行完成本次任务调度;若与待调度任务匹配的调度资源的状态为应用状态,则根据待调度任务的剩余调度次数,确定是否将待调度任务的实时调度级别恢复至初始调度级别;在将待调度任务的实时调度级别恢复至初始调度级别后,则执行完成本次任务调度。
70.所述数据单元,用于配置初始参数集;其中,所述初始参数集包括调度周期以及所述调度周期的次数的阈值;其中,所述初始参数集包括调度周期以及所述调度周期的次数的阈值;所述数据单元还用于配置优先级阶梯;所述优先级阶梯用于表征每个所述待调度任务的两个相邻的实时调度级别相差的优先级数量;其中,初始调度级别的优先级≤实时调度级别的优先级≤目标调度级别的优先级;
71.所述定时单元,用于当每个待调度任务的实时调度级别有效时,根据所述待调度任务的所述调度状态以及所述调度周期的次数,对每个所述待调度任务的所述实时调度级别进行调整,获得每个所述待调度任务的目标调度级别,并根据每个所述待调度任务的所述目标调度级别,获取与每个所述待调度任务匹配的调度资源以及已调度任务;然后获取所述调度资源的所述状态。
72.其中,定时单元包括调度资源预测元件以及优先级提升元件;资源预测单元用于判断与每个待调度任务匹配的调度资源的状态,状态包括学习状态和应用状态;调度资源预测元件在判断出调度资源的状态之后,可以根据实际需要对调度资源的当前的状态进行调整,例如,将当前的学习状态切换为应用状态;或将当前的应用状态切换为学习状态。
73.具体的,如图3所示,定时单元,定时触发,判断是否存在待调度任务,若存在待调度任务,则判断该待调度任务的实时调度级别是否为初始调度级别,若该待调度任务的优先级为初始调度级别,则判断该待调度任务的等待调度时间是否等于等待调度时间的阈值;
74.若该待调度任务对应的等待调度时间等于等待调度时间的阈值,则对该待调度任务的初始调度级别的优先级进行提高,获得实时调度级别,并判断是否还存在待调度任务;若该待调度任务对应的等待调度时间小于等待调度时间的阈值,则根据该待调度任务的调度状态(被调度或未被调度)确定该待调度任务是否继续等待下一个调度周期,并判断是否还存在待调度任务;
75.若该待调度任务的当前优先级不是初始调度级别,则判断该待调度任务的优先级状态是否处于爬升状态(优先级提高阶段),也即该待调度任务的优先级在初始调度级别的基础上已经被提高,则判断该待调度任务是否已经被调度,若该待调度任务已经被调度(该待调度任务已经被标注为已调度任务),则获取与该待调度任务匹配的调度资源的状态,并根据调度资源的状态,确定与调度资源匹配的已调度任务的目标调度级别有效或失效,并判断是否还存在待调度任务;若该待调度任务未被调度,则根据优先级阶梯再次对该待调度任务的实时调度级别进行优先级提高,并判断是否还存在待调度任务。
76.若该待调度任务的优先级状态也不处于爬升状态,则该待调度任务异常,并判断
是否还存在待调度任务,若还存在待调度任务,则重复上述步骤,若不存在待调度任务,则定时单元结束运行。
77.本技术的实施例,适用于采用rtos的嵌入式设备(例如:基站、路由器、或信号扩展设备等),在基于任务优先级的抢占式任务调度机制上,实现了有限制地、精确地、用户友好地调整待调度任务的实时调度级别的优先级,让初始调度级别的优先级较低的待调度任务,得到适量的调度资源,综合改善了系统的性能。
78.如图4所示,本技术的实施例还提供一种资源调度方法,应用于上述系统,包括:
79.步骤s41:当每个待调度任务的实时调度级别有效(n<n
阈值
)时,则每隔一个调度周期,遍历多个所述待调度任务和与每个所述待调度任务对应的等待调度时间;
80.本技术的实施例,实时调度级别用于表征每个待调度任务的当前优先级,因此,实时调度级别的优先级可能等于初始调度级别的级别或大于初始调度级别的优先级;其中,初始调度级别用于表征,每个待调度任务在完成注册之后,获得的优先级。
81.具体的,在进行资源调度之前,首先进行初始参数集的配置,其中,初始参数集包括调度周期、调度周期的次数、调度周期的次数的阈值、期待调度的次数的最大值、调度资源的应用周期的次数的阈值、调度资源的学习周期的次数的阈值以及调度资源的预测算法参数;在完成上述初始参数集的配置以后,则所有的待调度任务需要在这些初始参数集的基础上争取匹配的调度资源。
82.1)对于所有的待调度任务,则每隔一个调度周期,确认一下该待调度任务的调度状态;每当一个调度周期结束,且调度周期的次数未超过调度周期的次数的阈值,则进入下一个调度周期;调度周期≥系统的时钟周期,在系统的运行过程中,每个待调度任务对应的调度周期相同。
83.2)调度周期的次数用于表征每个待调度任务在每个实时调度级别的有效期内记录的调度周期的次数;其中,等待调度时间=调度周期*调度周期的次数n,1≤n≤调度周期的次数的阈值,且n为整数;
84.等待调度时间的阈值<待调度任务不被调度而引入问题的临界时间,且等待调度时间的阈值应尽可能接近待调度任务不被调度而引入问题的临界时间,以避免因待调度任务未被调度而影响系统的运行或者降低用户的满意度。
85.3)期待调度的次数的最大值用于限制待调度任务在提高实时调度级别的优先级后过度抢占调度资源,其具体数值,可以根据实际需要进行确定。
86.4)应用周期的次数的阈值用于表征调度资源处于应用状态下的持续时间所包括的应用周期的次数。
87.5)学习周期的次数的阈值用于表征调度资源处于学习状态下的持续时间所包括的学习周期的次数;一般地,学习周期的次数的阈值≤应用周期的次数的阈值,且各自对应的具体的数值,需要根据实际需要进行确定;
88.例如,对于调度次数稳定的已调度任务可以适当增大应用周期的次数的阈值;而调度次数随场景的不同波动较大的已调度任务,可以适当减小应用周期的次数的阈值。
89.6)对预测算法参数和学习周期的次数的阈值,这两个参数的调制,决定了待调度任务的抢占调度资源的需求精度,需要根据实际需要进行确定;
90.例如,长期多次执行的待调度任务,预测算法参数和学习周期的次数的阈值可以
适当增大;短期少次执行的待调度任务,预测算法参数和学习周期的次数的阈值可以适当减小。
91.7)调度资源的预测算法参数用于结合应用状态前的一个学习状态对应的历史调度次数集合,计算获得该应用状态的预测调度次数。
92.本技术一可选的实施例,对于初始调度级别的优先级最高的待调度任务,可能在第一个调度周期内就被调度,则不需要对该待调度任务的初始调度级别的优先级进行提高;
93.本技术一可选的实施例,对于初始调度级别的优先级较高的待调度任务,可能在几个调度周期内就被调度;且对应的调度周期的次数不超过调度周期的次数的阈值,则也不需要对该待调度任务的初始调度级别的优先级进行提高。
94.本技术一可选的实施例,对于初始调度级别的优先级较低的待调度任务,可能在对应的调度周期的次数等于调度周期的次数的阈值时,仍然未被调度,则需要对该待调度任务的初始调度级别的优先级进行提高;
95.具体的,在所述当每个待调度任务的实时调度级别有效,则每隔一个调度周期,遍历多个所述待调度任务和与每个所述待调度任务对应的等待调度时间之前,还包括:
96.获取系统中已经完成注册的所有的所述待调度任务以及未注册(不需要进行注册)的所有的其它任务,并确定每个所述待调度任务以及每个未完成注册的其它任务的初始调度级别;
97.基于每个所述待调度任务的所述初始调度级别以及每个未注册的其它任务的初始调度级别,获得初始调度级别的队列。
98.例如,获取了多个待调度任务以及多个未注册的其它任务,并以pw对每个待调度任务以及每个其它任务进行表示,则可以获得如下初始调度级别集合:
99.(p
88
,p0,pw……
p1);
100.对上述多个待调度任务以及每个其它任务的初始调度级别根据优先级的高低从高到低进行排序,则可获得如下初始调度级别的队列:
101.pw>
……
>p
88

……
>p1>p0。
102.在后续以初始调度级别队列为依据,对注册的待调度任务的实时调度级别进行调整;而初始调度级别的队列中的多个未注册的其它任务,则不需要基于本技术的对待调度任务的实时调度级别进行调整的机制,完成调度,也即不对初始调度级别的队列中的任意一个其它任务的初始调度级别的优先级,进行提高;任意一个其它任务,只根据自己的初始调度级别进行排队,并等待调度,直至任意一个其它任务基于自身的初始调度级别可以抢占到调度资源,才可以成功调度,否则会一直等待调度。
103.步骤s42:将与每个所述待调度任务对应的所述等待调度时间与所述等待调度时间的阈值进行比较;
104.本技术的实施例,待调度任务等待调度时间用于表征当前时间点距离上一次该待调度任务得到调度时间点的时间间隔。
105.具体的,对于任意一个待调度任务,当该待调度任务处于某一个实时调度级别时(初始调度级别或在初始调度级别的基础上进行了至少一次优先级提高之后,获得的实时调度级别),则首先将该待调度任务的等待调度时间置0,并重新计时,每完成一个调度周
期,对等待调度时间进行更新,并将更新后的等待调度时间与等待调度时间的阈值进行比较。
106.步骤s43:若所述待调度任务对应的所述等待调度时间等于所述等待调度时间的阈值,则所述待调度任务的实时调度级别失效,对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别;
107.如图5所示,具体的,所述若所述待调度任务对应的所述等待调度时间等于所述等待调度时间的阈值,则所述待调度任务的实时调度级别失效,对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别,包括:
108.步骤s431:对所述待调度任务的所述实时调度级别进行调整,并将所述待调度任务的调度周期的次数恢复为0;其中,所述优先级阶梯设有包括多个阶梯值,将任意一个所述阶梯值确定为目标阶梯值,并基于所述目标阶梯值对所述待调度任务的所述实时调度级别进行调整;所述等待调度时间=调度周期*调度周期的次数n,1≤n≤调度周期的次数的阈值,且n为整数;
109.步骤s432:每隔一个所述调度周期对所述待调度任务的调度状态进行确认,并重新计算所述调度周期的次数n;
110.步骤s433:将所述调度周期的次数n与所述调度周期的次数的阈值进行比较,获得比较结果;
111.步骤s434:根据所述比较结果,确定所述待调度任务的所述目标调度级别。
112.进一步地,所述根据所述比较结果,确定所述待调度任务的所述目标调度级别,包括:
113.若所述比较结果为调度周期的次数n小于所述调度周期的次数的阈值,且所述待调度任务被调度,则将所述实时调度级别确定为所述待调度任务的所述目标调度级别;
114.或若所述比较结果为所述调度周期的次数n等于所述调度周期的次数的阈值,且所述待调度任务未被调度,则对所述实时调度级别进行调整,直至所述待调度任务被调度;其中,初始调度级别的优先级≤所述实时调度级别的优先级≤所述目标调度级别的优先级。
115.本技术的实施例,当实时调度级别等于初始调度级别的时候,若待调度任务的初始调度级别的优先级较低,则可以根据初始参数集,并结合待调度任务的等待调度时间,对待调度任务的初始调度级别的优先级进行提高,以实现待调度任务在等待了合适的时间之后,就可以获得调度资源。
116.本技术一可选的实施例,以n
阈值
表示调度周期的次数的阈值;
117.例如,当实时调度级别等于初始调度级别的时候,则某个待调度任务的优先级为初始调度级别,在等待了n
阈值
个调度周期后,仍未被调度,则基于优先级阶梯,对该待调度任务的初始调度级别的优先级进行提高,将该待调度任务的初始调度级别的优先级提高一个目标阶梯值;其中,优先级阶梯的阶梯值表示,实时调度级别的优先级每次提升的数量,可以为:例如,1个优先级(目标阶梯值=1)、2个优先级(目标阶梯值=2)或3个优先级(目标阶梯值=3)等,也即实时调度级别的优先级每次提升的数量可以相等或者不相等;每次进行优先级调整的目标阶梯值可以根据实际需要进行确定,本技术的实施例对此不做具体的限定。
118.在对该待调度任务的初始调度级别的优先级进行提高之后,获得级别提高后的实时调度级别,且该实时调度级别可能比对应的初始调度级别的优先级高两个级别(也即目标阶梯值=2)、比对应的初始调度级别的优先级高三个级别(也即目标阶梯值=3)或比对应的初始调度级别的优先级高一个级别(也即目标阶梯值=1)等,用于提高该待调度任务在后续等待调度的过程中的调度资源的争抢能力。
119.将待调度任务的初始调度级别调整为实时调度级别之后,则将之前统计的调度周期的次数置0,也即n=0,并重新对调度周期的次数进行统计,然后进入第一个等待调度的调度周期,在等待了一个调度周期后,若该待调度任务仍然未被调度,则令n=n 1,也即n=1;并将n与n
阈值
进行比较;若n<n
阈值
,则进入第二个调度周期,在等待了两个调度周期后,若该待调度任务仍然未被调度,则令n=n 1,也即n=2;并将n与n
阈值
进行比较;若n<n
阈值
,则进入第三个调度周期;在等待了三个调度周期后,若该待调度任务仍然未被调度,则令n=n 1,也即n=3;并将n与n
阈值
进行比较
……
若n<n
阈值
,则进入第n个调度周期,若在第n个调度周期,该待调度任务被调度,则将该实时调度级别确定为该待调度任务的目标调度级别。
120.本技术一可选的实施例,当待调度任务的优先级为实时调度级别时,若n=n
阈值
,该待调度任务仍未被调度,则基于优先级阶梯对实时调度级别的优先级进行提高;并将之前统计的调度周期的次数置0,也即n=0,并重新对调度周期的次数进行统计,然后进入第一个等待调度的调度周期,在等待了一个调度周期后,若该待调度任务仍然未被调度,则令n=n 1,也即n=1;并将n与n
阈值
进行比较;若n<n
阈值
,则进入第二个调度周期,在等待了两个调度周期后,若该待调度任务仍然未被调度,则令n=n 1,也即n=2;并将n与n
阈值
进行比较;若n<n
阈值
,则进入第三个调度周期;在等待了三个调度周期后,若该待调度任务仍然未被调度,则令n=n 1,也即n=3;并将n与n
阈值
进行比较
……
若n<n
阈值
,则进入n个调度周期,若在第n个调度周期,该待调度任务被调度,则将当前的实时调度优先级确定为该待调度任务的目标调度级别。
121.本技术一可选的实施例,当待调度任务的优先级为实时调度级别,且实时调度级别的优先级高于初始调度级别的优先级时,若n=n
阈值
,该待调度任务仍未被调度,则基于优先级阶梯对实时调度级别的优先级进行提高;并将调度周期的次数置0,也即n=0,并重新对调度周期的次数进行统计,然后进入第一个等待调度的调度周期,在等待了一个调度周期后,若该待调度任务仍然未被调度,则令n=n 1,也即n=1;并将n与n
阈值
进行比较;若n<n
阈值
,则进入第二个调度周期,在等待了两个调度周期后,若该待调度任务仍然未被调度,则令n=n 1,也即n=2;并将n与n
阈值
进行比较;若n<n
阈值
,则进入第三个调度周期;在等待了三个调度周期后,若该待调度任务仍然未被调度,则令n=n 1,也即n=3;并将n与n
阈值
进行比较
……
若n<n
阈值
,则进入n个调度周期,若在第n个调度周期,该待调度任务被调度,则将当前的实时调度级别确定为该待调度任务的目标调度级别。
122.本技术一可选的实施例,当对待调度任务的实时调度级别的优先级进行至少两次调整提升后,若n=n
阈值
,该待调度任务仍未被调度,则基于优先级阶梯对当前的实时调度级别的优先级继续进行提高,直至该待调度任务获取匹配的调度资源,并被调度。
123.本技术一可选的实施例,在所述对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别之后,还包括:
124.根据每个所述待调度任务的所述目标调度级别,获取与每个所述待调度任务匹配
的调度资源以及已调度任务;
125.获取所述调度资源的状态,并根据所述调度资源的所述状态,确定与所述调度资源匹配的所述已调度任务的所述目标调度级别有效或失效。
126.本技术的实施例,当某个待调度任务的当前优先级为目标调度级别,则表明该待调度任务在该目标调度级别的有效时间内(n<n
阈值
),可以获取匹配的调度资源。
127.本技术一可选的实施例,所述获取所述调度资源的状态,并根据所述调度资源的所述状态,确定与所述调度资源匹配的所述已调度任务的所述目标调度级别有效或失效,包括:
128.对所述调度资源的状态进行判断;其中,所述对所述调度资源的状态进行判断,包括:获得所述已调度任务的预测调度次数;若所述预测调度次数大于0,则所述调度资源的所述状态为第一状态;或若所述预测调度次数等于0,则所述调度资源的所述状态为第二状态;
129.根据所述调度资源的所述状态,确定所述已调度任务的匹配的所述目标调度级别有效或失效。
130.本技术的实施例,可以基于调度资源预测模型实现;其中,调度资源预测模型(包括学习状态以及应用状态)用于对调度资源的状态进行判断;
131.将期待调度的次数的最大值s
max
(s
max
≥0)输入调度资源预测模型,并输出预测调度次数s
predict

132.例如:
133.如果输出的s
predict
=0,则状态值=0,也即调度资源处于第一状态(学习状态);或
134.如果输出的s
predict
>0,则状态值=1,也即调度资源处于第二状态(应用状态)。
135.本技术一可选的实施例,若调度资源预测模型处于应用状态,则根据应用周期的次数与应用周期的次数的阈值的比较结果,判断是否需要切换调度资源的状态;
136.例如,若应用周期的次数>应用周期的次数的阈值,则将应用周期的次数置0,并令状态值=0。
137.如图6所示,进一步地,所述根据所述调度资源的所述状态,确定所述已调度任务的匹配的所述目标调度级别有效或失效,包括:
138.若所述状态为所述第一状态,则计算获得与调度资源对应的所述已调度任务的调度次数s
k-1
;其中,0≤s
k-1
≤期待调度次数的最大值,且s
k-1
为整数;k≥1,且k为整数;
139.将所述调度次数s
k-1
与所述期待调度次数的最大值进行比较;
140.若所述调度次数小于所述期待调度次数的最大值,则获得所述已调度任务从第一次被调度到第s
k-1
次被调度的间隔时长,并将所述间隔时长与一个所述调度周期进行比较,若所述间隔时长等于一个所述调度周期,则确定所述待调度任务的所述目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至所述初始调度级别;或
141.若所述调度次数等于所述期待调度次数的最大值,则确定所述已调度任务的所述目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至所述初始调度级别。
142.本技术的实施例,若所述间隔时长小于一个所述调度周期,则继续计算获得与调度资源对应的所述已调度任务的调度次数s
k-1
;将所述调度次数s
k-1
与所述期待调度次数的最大值进行比较;若所述调度次数小于所述期待调度次数的最大值,则获得所述已调度任
务从第一次被调度到第s
k-1
次被调度的间隔时长,并将所述间隔时长与一个所述调度周期进行比较
……
重复上述步骤,直至所述调度次数等于所述期待调度次数的最大值,将所述已调度任务的所述实时调度级别恢复至所述初始调度级别;或
143.所述间隔时长等于一个所述调度周期,则确定所述待调度任务的所述目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至所述初始调度级别。
144.如图6所示,进一步地,所述根据所述调度资源的所述状态,确定所述已调度任务的匹配的所述目标调度级别有效或失效,还包括:
145.若所述状态为所述第二状态,则计算获得与所述调度资源匹配的所述已调度任务的剩余调度次数l;其中,0≤l≤预测调度次数,且l为整数;所述预测调度次数基于k个学习周期的所述已调度任务的调度次数以及预测算法参数确定;k≥1,且k为整数;
146.若所述剩余调度次数l不等于0,则确定所述已调度任务的目标调度级别有效;
147.或若所述剩余调度次数l等于0,则确定所述已调度任务的目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至所述初始调度级别。
148.本技术的实施例,若所述剩余调度次数l不等于0,则确定所述已调度任务的目标调度级别有效,并继续计算获得与所述调度资源匹配的所述已调度任务的剩余调度次数l,直至剩余调度次数l=0。
149.本技术一可选的实施例,若调度资源预测模型处于学习状态(第一状态),则根据学习周期的次数与学习周期的次数的阈值的比较结果,判断是否需要切换调度资源的状态;
150.例如,若学习周期的次数k>学习周期的次数的阈值k
阈值
,则将k置0,并令状态值=1。
151.本技术一可选的实施例,s
predict
可以基于预测算法计算获得,具体的,在调度资源预测模型从学习状态切换为应用状态时,需要根据s
max
、历史调度次数集合{s
k-1
,s
k-2
,s
k-3
……
s0,s-1
}以及预测算法参数β,基于指数加权平均算法计算获得s
predict
,k为学习周期的次数。
152.其中,当调度资源处于学习状态的时候,每当将所述待调度任务的所述实时调度级别恢复至所述初始调度级别,则令k=k 1,历史调度统计为第k个学习周期已调度任务的调度次数;
153.也即,s
k-1
=在第k个学习周期的已调度任务的调度次数。
154.进一步地,当调度资源处于应用状态(第二状态)的时候,限制已调度任务的被调度的次数为s
限制
=s
predict
,完成第一次调度的已调度任务对应的l=s
限制-1,此后,每当已调度任务被调度一次,则令l=l-1;依次类推,当l=0,则将所述待调度任务的所述实时调度级别恢复至所述初始调度级别;其中,s
限制
为应用学习周期的次数的阈值。
155.例如:
[0156][0157]
式中,-1≤i≤k-1≤k
阈值

[0158]
根据上述公式,可得:
[0159]
本技术的实施例,在初始调度级别的优先级较低的待调度任务,获得匹配的调度资源之后,对与该待调度任务匹配的已调度任务的调度次数进行了限制,因此,不会影响对初始调度级别的优先级较高的待调度任务的调度。
[0160]
本技术一可选的实施例,所有的待调度任务均使用同一套初始参数集,可能会降低用户的满意度,也可能存在额外的开销,本技术的实施例结合运行场景和待调度任务类别以及差异化调整初始参数集,获得调整参数集,用于提高用户体验,降低额外开销。
[0161]
具体的,可以通过如下实现方式实现根据用户实际需要对初始参数集的调整:
[0162]
1)设置默认初始参数集;
[0163]
2)进行实际场景测试,根据测试体验结果和每个初始参数的特点,调大或调小某个初始参数的值;
[0164]
3)重复步骤2),直到用户体验满足预期;
[0165]
4)记录用户体验满足预期时的参数,并将此时的参数作为最终参数部署至产品中。
[0166]
本技术的实施例,可以根据用户不同的需求或者不同场景的需求,对初始参数集中的一个或者多个初始参数进行调整,操作简单,降低了软件开发的复杂度,扩大了本技术的适用范围,提高了用户的满意度。
[0167]
例如:对于场景:路由器后端设备在大流量下载时,路由器的led灯停止闪烁,led灯的预期的闪烁周期为1s。
[0168]
初始调度级别的优先级较高的待调度任务:数据下载/转发任务。
[0169]
初始调度级别的优先级较低的待调度任务:led灯周期闪烁任务。
[0170]
具体的,对初始参数集进行调整,并获得调整参数集的过程如下:
[0171]
1)设置默认初始参数集值:
[0172]
{调度周期=0.1s,n
阈值
=3,s
max
=5,β=0.9,k
阈值
=10,s
限制
=30}
[0173]
2)进行实际场景测试,基于初始参数集执行对初始调度级别的优先级较低的待调度任务的调度;
[0174]
实测结果:路由器后端设备在大流量下载时,路由器的led灯可以闪烁,但是精度不够,有时闪烁周期为1.2s,比预期的闪烁周期1s长,因此不符合预期;
[0175]
3)根据提高led灯周期闪烁任务的频率的实际需求,将n
阈值
从3调整为1;
[0176]
实测结果:路由器后端设备在大流量下载时,路由器的led灯按预期闪烁,闪烁周期为1s;
[0177]
提高了用户体验。
[0178]
4)根据减小led灯周期闪烁任务的初始调度级别的优先级被调高后的实时调度级别对数据下载/转发任务的调度的影响,将s
max
从5调整为1;
[0179]
实测结果:路由器后端设备在大流量下载时,路由器的led灯按预期闪烁周期为1s闪烁。
[0180]
实现了在减少led灯周期闪烁任务的初始调度级别的优先级被调高后的实时调度级别对数据下载/转发任务的调度的影响的同时,用户体验不变。
[0181]
5)根据针对led灯周期闪烁任务简单稳定的特点,适当减少学习状态阶段的开销的实际需求,将β从0.9调整为0.5,同时将k
阈值
从10调整为2;
[0182]
实测结果:路由器后端设备在大流量下载时,路由器的led灯按预期闪烁,闪烁周期为1s。
[0183]
实现了减少开销的同时,用户体验不变。
[0184]
6)根据针对led灯周期闪烁任务简单稳定的特点,适当增加应用阶段维持时间,减少机制状态切换的开销的实际需求,将s
限制
从30调整为100;
[0185]
实测结果:路由器后端设备在大流量下载时,路由器的led灯按预期闪烁周期为1s闪烁;
[0186]
实现了减少开销的同时,用户体验不变。
[0187]
7)完成led灯周期闪烁任务注册,并选择如下调整参数集,{调度周期=0.1s,n
阈值
=1,s
max
=1,β=0.5,k
阈值
=2,s
限制
=100},对系统进行配置。
[0188]
依次类推,可以基于上述方法根据实际场景或实际需要对初始参数集进行其它调整,获得其它的调整参数集,并基于其它的调整参数集对系统进行配置。
[0189]
如图7所示,本技术的实施例还提供一种资源调度装置70,包括:
[0190]
遍历模块71,用于当每个待调度任务的实时调度级别有效时,则每隔一个调度周期,遍历多个所述待调度任务和与每个所述待调度任务对应的等待调度时间;
[0191]
比较模块72,用于将与每个所述待调度任务对应的所述等待调度时间与所述等待调度时间的阈值进行比较;
[0192]
调整模块73,用于若所述待调度任务对应的所述等待调度时间等于所述等待调度时间的阈值,则所述待调度任务的实时调度级别失效,对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别。
[0193]
可选的,在所述当每个待调度任务的实时调度级别有效时,则每隔一个调度周期,遍历多个所述待调度任务和与每个所述待调度任务对应的等待调度时间之前,还包括:
[0194]
获取多个所述待调度任务,并确定每个所述待调度任务的初始调度级别;
[0195]
基于每个所述待调度任务的所述初始调度级别,获得所述待调度任务的初始调度级别的队列。
[0196]
可选的,所述若所述待调度任务对应的所述等待调度时间等于所述等待调度时间的阈值,则所述待调度任务的实时调度级别失效,对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别,包括:
[0197]
对所述待调度任务的所述实时调度级别基于优先级阶梯进行调整,并将所述待调度任务的调度周期的次数恢复为0;其中,所述优先级阶梯设有包括多个阶梯值,将任意一个所述阶梯值确定为目标阶梯值,并基于所述目标阶梯值对所述待调度任务的所述实时调度级别进行调整;所述等待调度时间=调度周期*调度周期的次数n,1≤n≤调度周期的次数的阈值,且n为整数;每隔一个所述调度周期对所述待调度任务的调度状态进行确认,并重新计算所述调度周期的次数n;
[0198]
将所述调度周期的次数n与所述调度周期的次数的阈值进行比较,获得比较结果;
[0199]
根据所述比较结果,确定所述待调度任务的所述目标调度级别。
[0200]
可选的,所述根据所述比较结果,确定所述待调度任务的所述目标调度级别,包括:
[0201]
若所述比较结果为调度周期的次数n小于所述调度周期的次数的阈值,且所述待
调度任务被调度,则将所述实时调度级别确定为所述待调度任务的所述目标调度级别;
[0202]
或若所述比较结果为所述调度周期的次数n等于所述调度周期的次数的阈值,且所述待调度任务未被调度,则对所述实时调度级别进行调整,直至所述待调度任务被调度;其中,初始调度级别的优先级≤所述实时调度级别的优先级≤所述目标调度级别的优先级。
[0203]
可选的,在所述对所述待调度任务的所述实时调度级别进行调整,获得所述待调度任务的目标调度级别之后,还包括:
[0204]
根据每个所述待调度任务的所述目标调度级别,获取与每个所述待调度任务匹配的调度资源以及已调度任务;
[0205]
获取所述调度资源的状态,并根据所述调度资源的所述状态,确定与所述调度资源匹配的所述已调度任务的所述目标调度级别有效或失效。
[0206]
可选的,所述获取所述调度资源的状态,并根据所述调度资源的所述状态,确定与所述调度资源匹配的所述已调度任务的所述目标调度级别有效或失效,包括:
[0207]
对所述调度资源的状态进行判断;其中,所述对所述调度资源的状态进行判断,包括:获得所述已调度任务的预测调度次数;若所述预测调度次数大于0,则所述调度资源的所述状态为第一状态;或若所述预测调度次数等于0,则所述调度资源的所述状态为第二状态;
[0208]
根据所述调度资源的所述状态,确定所述已调度任务的匹配的所述目标调度级别有效或失效。
[0209]
可选的,所述根据所述调度资源的所述状态,确定所述已调度任务的匹配的所述目标调度级别有效或失效,包括:
[0210]
若所述状态为所述第一状态,则计算获得与调度资源对应的所述已调度任务的调度次数s
k-1
;其中,0≤s
k-1
≤期待调度次数的最大值,且s
k-1
为整数;k≥1,且k为整数;
[0211]
将所述调度次数s
k-1
与所述期待调度次数的最大值进行比较;
[0212]
若所述调度次数小于所述期待调度次数的最大值,则获得所述已调度任务从第一次被调度到第s
k-1
次被调度的间隔时长,并将所述间隔时长与一个所述调度周期进行比较,若所述间隔时长等于一个所述调度周期,则确定所述待调度任务的所述目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至初始调度级别;或
[0213]
若所述调度次数等于所述期待调度次数的最大值,则确定所述已调度任务的所述目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至所述初始调度级别。
[0214]
可选的,所述根据所述调度资源的所述状态,确定所述已调度任务的匹配的所述目标调度级别有效或失效,还包括:
[0215]
若所述状态为所述第二状态,则计算获得与所述调度资源匹配的所述已调度任务的剩余调度次数l;其中,0≤l≤预测调度次数,且l为整数;所述预测调度次数基于k个学习周期的所述已调度任务的调度次数以及预测算法参数确定;k≥1,且k为整数;
[0216]
若所述剩余调度次数l不等于0,则确定所述已调度任务的目标调度级别有效;
[0217]
或若所述剩余调度次数l等于0,则确定所述已调度任务的目标调度级别失效,并将所述已调度任务的所述实时调度级别恢复至所述初始调度级别。
[0218]
本技术的实施例还提供一种电子设备,包括处理器、存储器以及存储在所述存储
器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
[0219]
本技术的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上所述的方法。
[0220]
另外,本技术实施例的装置的其他构成及作用对本领域的技术人员来说是已知的,为减少冗余,此处不做赘述。
[0221]
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0222]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0223]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0224]
在本技术的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。
[0225]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三
个等,除非另有明确具体的限定。
[0226]
在本技术中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
[0227]
在本技术中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0228]
尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献