任务调度方法、装置、设备、存储介质及产品与流程
未命名
07-23
阅读:196
评论:0
1.本技术涉及智能配电技术领域,尤其涉及一种任务调度方法、装置、设备、存储介质及产品。
背景技术:
2.随着智能驾驶技术的发展,智能配电系统的应用也越来越广泛。目前智能配电系统通常需要对多种类型的集成电路(integrated circuit,ic)进行控制和数据读取,由于每种ic的通信方式、时钟频率、运行周期、运行时间等都各不相同,导致智能配电系统在处理各类ic对应的任务时,往往需要创建多个不同周期的定时器,产生多个中断,并定义多个任务优先级。这无疑增加了整个系统运行的复杂度,容易出现多任务之间的频繁抢占,函数重入严重的情况,从而导致智能配电系统的运行效率较低,甚至造成系统奔溃。
技术实现要素:
3.本技术实施例提供一种任务调度方法、装置、设备、存储介质及产品,以解决智能配电系统的运行效率较低的技术问题。
4.第一方面,本技术实施例提供一种任务调度方法,包括:
5.获取n个任务中各任务的运行时间、运行周期和运行优先级,以及n个任务对应的中断触发周期,n为大于1的整数;
6.根据中断触发周期和最大比例阈值,确定n个任务对应的执行周期,最大比例阈值指示中断触发周期中用于执行任务的时长所占的比例;
7.按照时间片划分规则,对n个任务中各任务的运行时间进行划分,得到划分后的运行时间片,时间片划分规则基于执行周期确定;
8.根据执行周期,以及n个任务中各任务的运行周期、运行优先级和运行时间片,确定n个任务的分发序列,以按照分发序列执行n个任务。
9.这样,n个任务共用同一个中断触发周期,无需创建多个线程,降低了系统的整体复杂度,同时可以对各任务的运行时间进行时间片划分处理,缩短了单个任务的运行时间,便于将划分后的运行时间片分发至由中断触发周期确定的执行周期进行执行,实现了对任务调度的负载均衡优化处理,从而可以避免出现任务抢占而导致函数重入严重的情况,有效提高了智能配电系统的运行效率,降低了系统崩溃的风险。
10.可选地,在一些实施例中,根据中断触发周期和最大比例阈值,确定n个任务对应的执行周期之前,方法还包括:
11.根据n个任务中各任务的运行时间、运行周期,确定各任务在初选周期内对应的加权时间,初选周期为各任务的运行周期中的最大运行周期,加权时间为各任务在初选周期内运行的总时长;
12.根据各任务对应的加权时间之和与初选周期的比值,确定最大比例阈值。
13.本实施例中,最大比例阈值可以是基于n个任务中各任务的运行时间和运行周期
进行加权计算得到的,这样,可以使得最大比例阈值更符合n个任务的实际情况,提高了后续n个任务的执行周期的准确性,从而确保n个任务的分发序列的准确性和合理性。
14.可选地,在一些实施例中,按照时间片划分规则,对n个任务中各任务的运行时间进行划分之前,方法还包括:
15.从n个任务中确定目标任务,其中目标任务的运行时间大于执行周期;
16.接收用户对目标任务的目标输入;
17.响应于目标输入,生成时间片划分规则。
18.本实施例中,用户可以对运行时间大于执行周期的目标任务进行分析,从而作出对目标任务的目标输入,以生成时间片划分规则用于后续的时间片划分处理,有效保证了时间片划分的准确性和合理性。
19.可选地,在一些实施例中,根据执行周期,以及n个任务中各任务的运行周期、运行优先级和运行时间片,确定n个任务的分发序列,包括:
20.根据n个任务中各任务的运行优先级,确定第i优先级对应的第i任务,其中1≤i≤n;
21.根据执行周期和第i任务的运行周期,确定一个执行周期对应的当前执行时间段内是否执行第i任务;
22.在当前执行时间段内执行第i任务的情况下,将第i任务的运行时间片添加至当前执行时间段的执行计划中;
23.在当前执行时间段内不执行第i任务的情况下,确定第i+1优先级对应的第i+1任务,其中第i优先级高于第i+1优先级;
24.根据执行周期和第i+1任务的运行周期,确定当前执行时间段内是否执行第i+1任务;
25.在当前执行时间段内执行第i+1任务的情况下,将第i+1任务的运行时间片添加至当前执行时间段的执行计划中;
26.其中,n个任务的分发序列包括多个执行周期对应的执行时间段的执行计划。
27.本实施例中,可以通过加权轮询算法来确定n个任务的分发序列,从而实现任务均衡处理,降低系统复杂度,优化整个系统执行效率,避免系统的崩溃的目的。
28.可选地,在一些实施例中,确定n个任务的分发序列之后,方法还包括:
29.根据分发序列,通过链表形式按照顺序执行n个任务。
30.本实施例中,由于链表形式较为直观且简便,采用链表形式来表示n个任务的分发序列,且按照链表的顺序来执行n个任务,可以确保在不同的执行周期内正确地执行分发序列中各自对应的任务,进一步降低了系统堵塞的概率。
31.可选地,在一些实施例中,确定n个任务的分发序列之后,方法还包括:
32.在执行n个任务的过程中,获取n个任务中各任务的开始执行时间和结束执行时间;
33.根据开始执行时间和结束执行时间,确定n个任务中各任务的实际运行时间,并记录。
34.本实施例中,可以记录n个任务中各任务的实际运行时间,便于后续分析n个任务是否存在异常情况,并可以基于该异常情况及时对智能配电系统进行诊断维护,从而有效
降低系统堵塞甚至崩溃的风险。
35.第二方面,本技术实施例提供一种任务调度装置,包括:
36.第一获取模块,用于获取n个任务中各任务的运行时间、运行周期和运行优先级,以及n个任务对应的中断触发周期,n为大于1的整数;
37.第一确定模块,用于根据中断触发周期和最大比例阈值,确定n个任务对应的执行周期,最大比例阈值指示中断触发周期中用于执行任务的时长所占的比例;
38.划分模块,用于按照时间片划分规则,对n个任务中各任务的运行时间进行划分,得到划分后的运行时间片,时间片划分规则基于执行周期确定;
39.第二确定模块,用于根据执行周期,以及n个任务中各任务的运行周期、运行优先级和运行时间片,确定n个任务的分发序列,以按照分发序列执行n个任务。
40.可选地,在一些实施例中,装置还包括:
41.第三确定模块,用于根据n个任务中各任务的运行时间、运行周期,确定各任务在初选周期内对应的加权时间,初选周期为各任务的运行周期中的最大运行周期,加权时间为各任务在初选周期内运行的总时长;
42.第四确定模块,用于根据各任务对应的加权时间之和与初选周期的比值,确定最大比例阈值。
43.可选地,在一些实施例中,装置还包括:
44.第五确定模块,用于从n个任务中确定目标任务,其中目标任务的运行时间大于执行周期;
45.接收模块,用于接收用户对目标任务的目标输入;
46.生成模块,用于响应于目标输入,生成时间片划分规则。
47.可选地,在一些实施例中,第二确定模块,还用于:
48.根据n个任务中各任务的运行优先级,确定第i优先级对应的第i任务,其中1≤i≤n;
49.根据执行周期和第i任务的运行周期,确定一个执行周期对应的当前执行时间段内是否执行第i任务;
50.在当前执行时间段内执行第i任务的情况下,将第i任务的运行时间片添加至当前执行时间段的执行计划中;
51.在当前执行时间段内不执行第i任务的情况下,确定第i+1优先级对应的第i+1任务,其中第i优先级高于第i+1优先级;
52.根据执行周期和第i+1任务的运行周期,确定当前执行时间段内是否执行第i+1任务;
53.在当前执行时间段内执行第i+1任务的情况下,将第i+1任务的运行时间片添加至当前执行时间段的执行计划中;
54.其中,n个任务的分发序列包括多个执行周期对应的执行时间段的执行计划。
55.可选地,在一些实施例中,装置还包括:
56.执行模块,用于根据分发序列,通过链表形式按照顺序执行n个任务。
57.可选地,在一些实施例中,装置还包括:
58.第二获取模块,用于在执行n个任务的过程中,获取n个任务中各任务的开始执行
时间和结束执行时间;
59.记录模块,用于根据开始执行时间和结束执行时间,确定n个任务中各任务的实际运行时间,并记录。
60.第三方面,本技术实施例提供一种电子设备,设备包括:处理器以及存储有程序指令的存储器;处理器执行程序指令时实现第一方面的方法。
61.第四方面,本技术实施例提供一种机器可读存储介质,机器可读存储介质上存储有程序指令,程序指令被处理器执行时实现第一方面的方法。
62.第五方面,本技术实施例提供一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行第一方面的方法。
63.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
64.下面将参考附图来描述本技术示例性实施例的特征、优点和技术效果。
65.图1为本技术实施例提供的任务调度方法的流程示意图;
66.图2为本技术实施例提供的任务调度方法中分发序列的示意图;
67.图3为本技术实施例提供的任务调度装置的结构示意图;
68.图4为本技术实施例提供的电子设备的结构示意图。
69.在附图中,附图未必按照实际的比例绘制。
具体实施方式
70.下面结合附图和实施例对本技术的实施方式作进一步详细描述。以下实施例的详细描述和附图用于示例性地说明本技术的原理,但不能用来限制本技术的范围,即本技术不限于所描述的实施例。
71.在本技术的描述中,需要说明的是,除非另有说明,“多个”的含义是两个以上;术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。“垂直”并不是严格意义上的垂直,而是在误差允许范围之内。“平行”并不是严格意义上的平行,而是在误差允许范围之内。
72.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本技术所描述的实施例可以与其它实施例相结合。
73.在相关技术中,智能配电系统的任务调度方法通常会按照的各任务的执行周期创建多个线程,在每个定时器中断来之后发送新的消息队列。这通常存在以下问题:
74.1、需要创建多个不同周期的定时器,产生多个中断触发周期,定义多个任务优先级,导致整个系统复杂度提高,往往需要性能更好的微控制单元(microcontroller unit,
mcu)来执行任务,增加了系统的整体成本。
75.2、集中处理运行时间长的任务,读取数据或者进行逻辑控制时,一旦遇到阻塞或者调用函数的临界区代码较为频繁,那么延时堆积会导致系统的运行效率低,甚至发生系统崩溃。
76.3、多任务之间存在频繁抢占的现象,导致函数重入严重,从ic的寄存器读取的数据在没有保护的情况下容易出现误操作,增加了系统的不稳定性,若增加保护则会增加系统上下文切换的开销,导致系统的运行效率低,甚至发生系统崩溃。
77.基于此,本技术实施例提供一种任务调度方法、装置、设备、存储介质及产品,以解决上述的技术问题。下面首先介绍本技术实施例提供的负载均衡方法。
78.请参阅图1,图1是本技术一个实施例提供的任务调度方法的流程示意图,该任务调度方法可以包括如下步骤:
79.步骤101,获取n个任务中各任务的运行时间、运行周期和运行优先级,以及n个任务对应的中断触发周期,n为大于1的整数;
80.步骤102,根据中断触发周期和最大比例阈值,确定n个任务对应的执行周期,最大比例阈值指示中断触发周期中用于执行任务的时长所占的比例;
81.步骤103,按照时间片划分规则,对n个任务中各任务的运行时间进行划分,得到划分后的运行时间片,时间片划分规则基于执行周期确定;
82.步骤104,根据执行周期,以及n个任务中各任务的运行周期、运行优先级和运行时间片,确定n个任务的分发序列,以按照分发序列执行n个任务。
83.在步骤101中,智能配电系统可以先初始化待执行的任务信息,获取待执行的n个任务中各任务的运行时间、运行周期和运行优先级,其中,运行时间和运行周期可以是基于预先测试得到并记录于智能配电系统中的,也可以是根据实际需求预先设定的。运行优先级也可以是基于任务类型、任务对保证车辆智能驾驶功能能够安全实现的重要性来预先设定得到,其中运行时间越短、重要程度越高的任务,其运行优先级也可以越高。
84.例如,智能配电系统可以包括高边驱动模组、脉冲宽度调制(pulse width modulation,pwm)模组、电源管理模组、电流/电压检测模组和通信模组等。每个模组均可以对应执行不同类型的任务,以高边驱动模组为例,可以对应执行数据采集任务、诊断任务和喂狗任务等,其运行优先级可以预先设定为:喂狗任务的运行优先级高于诊断任务的运行优先级,诊断任务的运行优先级高于数据采集任务的运行优先级。可以理解的是,该运行优先级的设定仅作为一个示例用于理解本技术实施例的技术方案,不作为本技术实施例的限定,具体可以结合实际需求为各任务预设运行优先级。
85.还可以获取n个任务对应的中断触发周期,其中,中断触发周期可以是基于各任务的运行时间和运行周期确定的。示例地,可以先将各任务的运行周期中最小运行周期确定为第一周期;然后基于除第一周期外的其他运行周期和各任务的运行时间,确定中断触发周期,其中,中断触发周期小于或等于第一周期,大于各任务的运行时间中最小运行时间,且其他运行周期能够被中断触发周期整除。
86.例如,n个任务的相关信息可以如表1所示:
[0087] 运行时间运行周期任务a5ms30ms
任务b15ms50ms任务c30ms100ms
[0088]
其中,可以将30ms作为第一周期,确定中断周期小于或等于30ms,此时基于任务b和任务c的运行周期,可以将25ms选择为任务a、任务b和任务c的中断触发周期。
[0089]
在步骤102中,可以理解的是,智能配电系统在一个中断触发周期中,除了执行任务的时间,往往还需要一定时间来缓冲或延时调用任务,基于此,用于执行任务的执行周期可以是由中断触发周期和最大比例阈值来共同确定。其中,最大比例阈值可以用来指示中断触发周期中用于执行任务的时长所占的比例,其可以是预先设定的,如最大比例阈值可以为70%~80%,也可以是基于各任务的运行时间和运行周期计算得到的,此处不作具体限定。
[0090]
例如,任务a、任务b和任务c的中断触发周期为25ms,若最大比例阈值为80%,则任务a、任务b和任务c的执行周期可以为20ms。
[0091]
在步骤103中,确定执行周期后,可以基于执行周期确定时间片划分规则。可以理解的,执行周期的时长可能小于某些任务的运行时间,基于这种情况,可以对运行时间超出执行周期的任务进行时间片划分。示例地,可以分析运行时间超出执行周期的原因,例如任务c的运行时间30ms超出了执行周期20ms,则表示需要对任务c进行时间片划分,此时若任务c包括两个子器件对应的任务,则可以将任务c的运行时间30ms划分为两个15ms的运行时间片。对于运行时间不超出执行周期的任务,则可以默认划分后的运行时间片即为其原来的运行时间(即未对这些任务进行时间片划分)。换而言之,时间片划分规则可以指示哪些任务需要进行时间片划分,以及如何进行时间片划分。
[0092]
在步骤104中,可以根据执行周期,以及n个任务中各任务的运行周期、运行优先级和运行时间片,确定n个任务的分发序列,该分发序列可以指示某个执行周期中需要执行的任务。即,后续智能配电系统中的执行模块可以按照n个任务的分发序列来执行n个任务。
[0093]
如图2所示,任务a、任务b和任务c的中断触发周期为25ms,执行周期可以为20ms;任务a的运行周期为30ms,运行时间片为5ms;任务b的运行周期为50ms,运行时间片为15ms;任务c的运行周期为100ms,运行时间片为15ms(任务c1)+15ms(任务c2)。运行优先级可以是任务b大于任务a大于任务c。则此时,在第一个执行周期内(0~20ms),可以分别执行任务b和任务a;在第二个执行周期内(25~45ms),可以分别执行任务c1和任务a;在第三个执行周期内(50~70ms),可以分别执行任务b和任务a;在第四个执行周期内(75~95ms),可以分别执行任务c2和任务a......这样,即可在同一个中断触发周期的情况下,同时满足任务a、任务b和任务c的运行周期要求,同时避免了任务抢占,导致函数重入严重的情况,有效提高了智能配电系统的运行效率。
[0094]
在本技术实施例中,任务调度方法能够获取n个任务中各任务的运行时间、运行周期和运行优先级,以及n个任务对应的中断触发周期;根据中断触发周期和最大比例阈值,确定n个任务对应的执行周期,最大比例阈值指示中断触发周期中用于执行任务的时长所占的比例;按照时间片划分规则,对n个任务中各任务的运行时间进行划分,得到划分后的运行时间片,时间片划分规则基于执行周期确定;根据执行周期,以及n个任务中各任务的运行周期、运行优先级和运行时间片,确定n个任务的分发序列,以按照分发序列执行n个任务。这样,n个任务共用同一个中断触发周期,无需创建多个线程,降低了系统的整体复杂
度,同时可以对各任务的运行时间进行时间片划分处理,缩短了单个任务的运行时间,便于将划分后的运行时间片分发至由中断触发周期确定的执行周期进行执行,实现了对任务调度的负载均衡优化处理,从而可以避免出现任务抢占而导致函数重入严重的情况,有效提高了智能配电系统的运行效率,降低了系统崩溃的风险。
[0095]
可选地,在一些实施例中,上述步骤102之前,任务调度方法还可以包括如下步骤:
[0096]
根据n个任务中各任务的运行时间、运行周期,确定各任务在初选周期内对应的加权时间,初选周期为各任务的运行周期中的最大运行周期,加权时间为各任务在初选周期内运行的总时长;
[0097]
根据各任务对应的加权时间之和与初选周期的比值,确定最大比例阈值。
[0098]
在本实施例中,可以先确定出各任务的运行周期中的最大运行周期,将该最大运行周期作为初选周期。例如任务c的运行周期为最大运行周期,因此可以将任务c的运行周期100ms作为初选周期,即初选周期为100ms。
[0099]
可以计算各任务在初选周期内运行的总时长,作为个各任务在初选周期内对应的加权时间,并可以根据加权时间的总和与初选周期的比值,计算得到最大比例阈值。
[0100]
例如,任务a在100ms内最多可以运行4个周期,则任务a的加权时间为20ms;任务b在100ms内最多可以运行2个周期,则任务b的加权时间为30ms;任务c在100ms内最多可以运行1个周期,则任务c的加权时间为30ms。任务a、任务b和任务c的加权时间之和为80ms,最大比例阈值等于80ms/100ms=80%。
[0101]
本实施例中,最大比例阈值可以是基于n个任务中各任务的运行时间和运行周期进行加权计算得到的,这样,可以使得最大比例阈值更符合n个任务的实际情况,提高了后续n个任务的执行周期的准确性,从而确保n个任务的分发序列的准确性和合理性。
[0102]
可选地,在一些实施例中,上述步骤103之前,任务调度方法还可以包括如下步骤:
[0103]
从n个任务中确定目标任务,其中目标任务的运行时间大于执行周期;
[0104]
接收用户对目标任务的目标输入;
[0105]
响应于目标输入,生成时间片划分规则。
[0106]
在本实施例中,可以先判断哪些任务需要进行时间片划分,即可以从n个任务中确定运行时间大于执行周期的目标任务,该目标任务可以认为是需要对其运行时间进行时间片划分的任务。可以理解的是,其他运行时间小于或等于执行周期的任务,可以默认其划分后的运行时间片为其原始的运行时间,换而言之,这样任务的运行时间实质上并未进行时间片划分处理。
[0107]
确定目标任务后,用户可以结合实际情况分析目标任务的运行时间大于执行周期的原因。例如目标任务为任务c,通过分析用户得知任务c包括两个子器件对应的任务(任务c1和任务c2),则此时用户可以作出对目标任务的目标输入,目标输入可以指示将任务c的运行时间30ms划分为任务c1对应的运行时间片15ms和任务c2对应的运行时间片15ms。
[0108]
智能配电系统可以在接收到目标输入后,响应于该目标输入生成时间片划分规则,以便智能配电系统可以按照时间片划分规则将任务c的运行时间30ms划分为任务c1对应的运行时间片15ms和任务c2对应的运行时间片15ms。
[0109]
本实施例中,用户可以对运行时间大于执行周期的目标任务进行分析,从而作出对目标任务的目标输入,以生成时间片划分规则用于后续的时间片划分处理,有效保证了
时间片划分的准确性和合理性。
[0110]
可选地,在一些实施例中,上述步骤104,可以包括如下步骤:
[0111]
根据n个任务中各任务的运行优先级,确定第i优先级对应的第i任务,其中1≤i≤n;
[0112]
根据执行周期和第i任务的运行周期,确定一个执行周期对应的当前执行时间段内是否执行第i任务;
[0113]
在当前执行时间段内执行第i任务的情况下,将第i任务的运行时间片添加至当前执行时间段的执行计划中;
[0114]
在当前执行时间段内不执行第i任务的情况下,确定第i+1优先级对应的第i+1任务,其中第i优先级高于第i+1优先级;
[0115]
根据执行周期和第i+1任务的运行周期,确定当前执行时间段内是否执行第i+1任务;
[0116]
在当前执行时间段内执行第i+1任务的情况下,将第i+1任务的运行时间片添加至当前执行时间段的执行计划中;
[0117]
其中,n个任务的分发序列包括多个执行周期对应的执行时间段的执行计划。
[0118]
在本实施例中,可以根据执行周期,以及n个任务中各任务的运行周期、运行优先级和运行时间片,通过加权轮询算法来确定n个任务的分发序列。
[0119]
示例地,可以先获取运行优先级最高的任务,根据执行周期和该任务的运行周期,判断一个执行周期对应的当前执行时间段内是否执行该任务。若是,则将该任务的运行时间片添加至当前执行时间段的执行计划中;若否,则进入下一运行优先级的任务的判断,以此类推。
[0120]
例如,如图2所示,在第一个执行周期对应的当前执行时间段(0~20ms)内,先判断是否执行任务b(最高运行优先级),此时可以认为需要执行任务b,因此可以将任务b的运行时间片(15ms)添加至第一个执行周期对应的当前执行时间段(0~20ms)的执行计划中。可以理解的是,此时任务b的运行时间片占用了0~15ms的时间段,第一个执行周期对应的当前执行时间段还剩下16~20ms。
[0121]
可以继续判断是否执行任务a(次最高运行优先级),由于任务a的运行时间片为5ms,运行周期为30ms,因此可以认为需要执行任务a,故可以将任务a的运行时间片(5ms)也添加至第一个执行周期对应的当前执行时间段(0~20ms)的执行计划中。此时任务b的运行时间片和任务a的运行时间片完全占用了第一个执行周期对应的当前执行时间段,则无需继续判断下一个运行优先级的任务(即任务c)。
[0122]
在第二个执行周期对应的当前执行时间段(25~45ms)内,还是先判断是否执行任务b,由于任务b的运行周期为50ms,因此可以认为此时不需要执行任务b,则可以判断是否执行任务a。由于任务a的运行周期为30ms,因此可以认为此时也不需要执行任务a,则可以判断是否执行任务c。由于任务c的运行周期为100ms,因此可以认为需要执行任务c,故可以将任务c1的运行时间片(15ms)添加至第二个执行周期对应的当前执行时间段(25~45ms)的执行计划中。
[0123]
可以理解的是,此时任务c的运行时间片占用了25~40ms的时间段,第二个执行周期对应的当前执行时间段还剩下41~45ms。因此可以继续判断是否执行任务b,根据任务b
的运行周期可知此时仍不需要执行任务b,则可以继续判断是否执行任务a,根据任务a的运行周期可以此时需要执行任务a,故可以将任务a的运行时间片(5ms)也添加至第二个执行周期对应的当前执行时间段(41~45ms)的执行计划中......
[0124]
通过上述所言的加权轮询算法,可以得到多个执行周期对应的执行时间段的执行计划,而n个任务的分发序列可以包括该执行计划。
[0125]
本实施例中,可以通过加权轮询算法来确定n个任务的分发序列,从而实现任务均衡处理,降低系统复杂度,优化整个系统执行效率,避免系统的崩溃的目的。
[0126]
可选地,在一些实施例中,上述步骤104之后,任务调度方法还可以包括如下步骤:
[0127]
根据分发序列,通过链表形式按照顺序执行n个任务。
[0128]
本实施例中,由于链表形式较为直观且简便,采用链表形式来表示n个任务的分发序列,且按照链表的顺序来执行n个任务,可以确保在不同的执行周期内正确地执行分发序列中各自对应的任务,进一步降低了系统堵塞的概率。
[0129]
可选地,在一些实施例中,上述步骤104之后,任务调度方法还可以包括如下步骤:
[0130]
在执行n个任务的过程中,获取n个任务中各任务的开始执行时间和结束执行时间;
[0131]
根据开始执行时间和结束执行时间,确定n个任务中各任务的实际运行时间,并记录。
[0132]
在本实施例中,在执行任务的过程中,可以获取该任务的开始执行时间和结束执行时间,并可以根据开始执行时间与结束执行时间之间的差值,计算得到该任务在实际执行过程中的实际运行时间。
[0133]
可以记录n个任务中各任务的实际运行时间,这样,后续可以基于记录的数据分析n个任务是否存在异常情况。可以理解的是,理论上来说,各任务的实际运行时间应该与其预先测试得到的运行时间相同或相差很小,若实际运行时间与其运行时间相差很大,则可以认为该任务的执行存在异常,此时用户可以基于该异常情况及时对智能配电系统进行诊断维护,从而有效降低系统堵塞甚至崩溃的风险。
[0134]
在一些示例中,实际运行时间还可以用于对智能配电系统内存储的运行时间进行更新。可以理解的是,各任务中有中央处理器(central processing unit,cpu)消耗型代码,也有输入/输出(input/output,i/o)消耗型的代码,在系统运行过程中每个任务的实际运行时间可能会存在波动,基于此,如果只是简单的记录某一次运行时间可能导致产生误差,因此,可以通过引入动态时间片计算,多次统计每个任务的实际运行时间,为任务调度方法提供实时可靠的数据的支持。换而言之,下次执行该任务调度方法时,可以基于更新后的运行时间作为可靠依据进行一系列处理,得到任务分发序列,以保证结果的准确性。
[0135]
基于上述实施例提供的任务调度方法,本技术还提供了一种任务调度装置的实施例。
[0136]
图3示出了本技术另一个实施例提供的任务调度装置的结构示意图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0137]
参照图3,任务调度装置300可以包括:
[0138]
第一获取模块301,用于获取n个任务中各任务的运行时间、运行周期和运行优先级,以及n个任务对应的中断触发周期,n为大于1的整数;
[0139]
第一确定模块302,用于根据中断触发周期和最大比例阈值,确定n个任务对应的执行周期,最大比例阈值指示中断触发周期中用于执行任务的时长所占的比例;
[0140]
划分模块303,用于按照时间片划分规则,对n个任务中各任务的运行时间进行划分,得到划分后的运行时间片,时间片划分规则基于执行周期确定;
[0141]
第二确定模块304,用于根据执行周期,以及n个任务中各任务的运行周期、运行优先级和运行时间片,确定n个任务的分发序列,以按照分发序列执行n个任务。
[0142]
可选地,在一些实施例中,任务调度装置300还可以包括:
[0143]
第三确定模块,用于根据n个任务中各任务的运行时间、运行周期,确定各任务在初选周期内对应的加权时间,初选周期为各任务的运行周期中的最大运行周期,加权时间为各任务在初选周期内运行的总时长;
[0144]
第四确定模块,用于根据各任务对应的加权时间之和与初选周期的比值,确定最大比例阈值。
[0145]
可选地,在一些实施例中,任务调度装置300还可以包括:
[0146]
第五确定模块,用于从n个任务中确定目标任务,其中目标任务的运行时间大于执行周期;
[0147]
接收模块,用于接收用户对目标任务的目标输入;
[0148]
生成模块,用于响应于目标输入,生成时间片划分规则。
[0149]
可选地,在一些实施例中,第二确定模块304,还可以用于:
[0150]
根据n个任务中各任务的运行优先级,确定第i优先级对应的第i任务,其中1≤i≤n;
[0151]
根据执行周期和第i任务的运行周期,确定一个执行周期对应的当前执行时间段内是否执行第i任务;
[0152]
在当前执行时间段内执行第i任务的情况下,将第i任务的运行时间片添加至当前执行时间段的执行计划中;
[0153]
在当前执行时间段内不执行第i任务的情况下,确定第i+1优先级对应的第i+1任务,其中第i优先级高于第i+1优先级;
[0154]
根据执行周期和第i+1任务的运行周期,确定当前执行时间段内是否执行第i+1任务;
[0155]
在当前执行时间段内执行第i+1任务的情况下,将第i+1任务的运行时间片添加至当前执行时间段的执行计划中;
[0156]
其中,n个任务的分发序列包括多个执行周期对应的执行时间段的执行计划。
[0157]
可选地,在一些实施例中,任务调度装置300还可以包括:
[0158]
执行模块,用于根据分发序列,通过链表形式按照顺序执行n个任务。
[0159]
可选地,在一些实施例中,任务调度装置300还可以包括:
[0160]
第二获取模块,用于在执行n个任务的过程中,获取n个任务中各任务的开始执行时间和结束执行时间;
[0161]
记录模块,用于根据开始执行时间和结束执行时间,确定n个任务中各任务的实际运行时间,并记录。
[0162]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,与本技术方法
实施例基于同一构思,是与上述任务调度方法对应的装置,上述方法实施例中所有实现方式均适用于该装置的实施例中,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0163]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0164]
图4示出了本技术又一个实施例提供的电子设备的硬件结构示意图。
[0165]
电子设备可以包括处理器401以及存储有程序或指令的存储器402。处理器401执行程序时实现上述任意各个方法实施例中的步骤。
[0166]
示例性的,程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器402中,并由处理器401执行,以完成本技术。一个或多个模块/单元可以是能够完成特定功能的一系列程序指令段,该指令段用于描述程序在设备中的执行过程。
[0167]
具体地,上述处理器401可以包括中央处理器(cpu),或者特定集成电路(application specific integrated circuit,asic),或者可以被配置成实施本技术实施例的一个或多个集成电路。
[0168]
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在综合网关容灾设备的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。
[0169]
存储器可包括只读存储器(rom),随机存取存储器(ram),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
[0170]
处理器401通过读取并执行存储器402中存储的程序或指令,以实现上述实施例中的任意一种方法。
[0171]
在一个示例中,电子设备还可包括通信接口403和总线404。其中,处理器401、存储器402、通信接口403通过总线404连接并完成相互间的通信。
[0172]
通信接口403,主要用于实现本技术实施例中各模块、装置、单元和/或设备之间的通信。
[0173]
总线404包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架
构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线404可包括一个或多个总线。尽管本技术实施例描述和示出了特定的总线,但本技术考虑任何合适的总线或互连。
[0174]
另外,结合上述实施例中的方法,本技术实施例可提供一种机器可读存储介质来实现。该机器可读存储介质上存储有程序或指令;该程序或指令被处理器执行时实现上述实施例中的任意一种方法。该机器可读存储介质可以被如计算机等机器读取。
[0175]
本技术实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0176]
应理解,本技术实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
[0177]
本技术实施例提供一种计算机程序产品,该程序产品被存储在机器可读存储介质中,该程序产品被至少一个处理器执行以实现如上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0178]
需要明确的是,本技术并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本技术的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本技术的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0179]
以上所述的结构框图中所示的功能模块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本技术的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网格被下载。
[0180]
还需要说明的是,本技术中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本技术不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
[0181]
上面参考根据本公开的实施例的方法、装置(系统)和程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序或指令实现。这些程序或指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理
器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
[0182]
虽然已经参考优选实施例对本技术进行了描述,但在不脱离本技术的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件,尤其是,只要不存在结构冲突,各个实施例中所提到的各项技术特征均可以任意方式组合起来。本技术并不局限于文中公开的特定实施例,而是包括落入权利要求的范围内的所有技术方案。
技术特征:
1.一种任务调度方法,其特征在于,所述方法包括:获取n个任务中各任务的运行时间、运行周期和运行优先级,以及所述n个任务对应的中断触发周期,n为大于1的整数;根据所述中断触发周期和最大比例阈值,确定所述n个任务对应的执行周期,所述最大比例阈值指示所述中断触发周期中用于执行任务的时长所占的比例;按照时间片划分规则,对所述n个任务中各任务的所述运行时间进行划分,得到划分后的运行时间片,所述时间片划分规则基于所述执行周期确定;根据所述执行周期,以及所述n个任务中各任务的所述运行周期、所述运行优先级和所述运行时间片,确定所述n个任务的分发序列,以按照所述分发序列执行所述n个任务。2.根据权利要求1所述的方法,其特征在于,所述根据所述中断触发周期和最大比例阈值,确定所述n个任务对应的执行周期之前,所述方法还包括:根据所述n个任务中各任务的所述运行时间、所述运行周期,确定各任务在初选周期内对应的加权时间,所述初选周期为各任务的所述运行周期中的最大运行周期,所述加权时间为各任务在所述初选周期内运行的总时长;根据各任务对应的所述加权时间之和与所述初选周期的比值,确定所述最大比例阈值。3.根据权利要求1所述的方法,其特征在于,所述按照时间片划分规则,对所述n个任务中各任务的所述运行时间进行划分之前,所述方法还包括:从所述n个任务中确定目标任务,其中所述目标任务的运行时间大于所述执行周期;接收用户对所述目标任务的目标输入;响应于所述目标输入,生成时间片划分规则。4.根据权利要求1所述的方法,其特征在于,所述根据所述执行周期,以及所述n个任务中各任务的所述运行周期、所述运行优先级和所述运行时间片,确定所述n个任务的分发序列,包括:根据所述n个任务中各任务的所述运行优先级,确定第i优先级对应的第i任务,其中1≤i≤n;根据所述执行周期和所述第i任务的运行周期,确定一个所述执行周期对应的当前执行时间段内是否执行所述第i任务;在所述当前执行时间段内执行所述第i任务的情况下,将所述第i任务的运行时间片添加至所述当前执行时间段的执行计划中;在所述当前执行时间段内不执行所述第i任务的情况下,确定第i+1优先级对应的第i+1任务,其中所述第i优先级高于所述第i+1优先级;根据所述执行周期和所述第i+1任务的运行周期,确定所述当前执行时间段内是否执行所述第i+1任务;在所述当前执行时间段内执行所述第i+1任务的情况下,将所述第i+1任务的运行时间片添加至所述当前执行时间段的执行计划中;其中,所述n个任务的分发序列包括多个所述执行周期对应的执行时间段的执行计划。5.根据权利要求1所述的方法,其特征在于,所述确定所述n个任务的分发序列之后,所述方法还包括:
根据所述分发序列,通过链表形式按照顺序执行所述n个任务。6.根据权利要求1所述的方法,其特征在于,所述确定所述n个任务的分发序列之后,所述方法还包括:在执行所述n个任务的过程中,获取所述n个任务中各任务的开始执行时间和结束执行时间;根据所述开始执行时间和所述结束执行时间,确定所述n个任务中各任务的实际运行时间,并记录。7.一种任务调度装置,其特征在于,所述装置包括:第一获取模块,用于获取n个任务中各任务的运行时间、运行周期和运行优先级,以及所述n个任务对应的中断触发周期,n为大于1的整数;第一确定模块,用于根据所述中断触发周期和最大比例阈值,确定所述n个任务对应的执行周期,所述最大比例阈值指示所述中断触发周期中用于执行任务的时长所占的比例;划分模块,用于按照时间片划分规则,对所述n个任务中各任务的所述运行时间进行划分,得到划分后的运行时间片,所述时间片划分规则基于所述执行周期确定;第二确定模块,用于根据所述执行周期,以及所述n个任务中各任务的所述运行周期、所述运行优先级和所述运行时间片,确定所述n个任务的分发序列,以按照所述分发序列执行所述n个任务。8.根据权利要求7所述的装置,其特征在于,所述装置还包括:第三确定模块,用于根据所述n个任务中各任务的所述运行时间、所述运行周期,确定各任务在初选周期内对应的加权时间,所述初选周期为各任务的所述运行周期中的最大运行周期,所述加权时间为各任务在所述初选周期内运行的总时长;第四确定模块,用于根据各任务对应的所述加权时间之和与所述初选周期的比值,确定所述最大比例阈值。9.根据权利要求7所述的装置,其特征在于,所述装置还包括:第五确定模块,用于从所述n个任务中确定目标任务,其中所述目标任务的运行时间大于所述执行周期;接收模块,用于接收用户对所述目标任务的目标输入;生成模块,用于响应于所述目标输入,生成时间片划分规则。10.根据权利要求7所述的装置,其特征在于,所述第二确定模块,还用于:根据所述n个任务中各任务的所述运行优先级,确定第i优先级对应的第i任务,其中1≤i≤n;根据所述执行周期和所述第i任务的运行周期,确定一个所述执行周期对应的当前执行时间段内是否执行所述第i任务;在所述当前执行时间段内执行所述第i任务的情况下,将所述第i任务的运行时间片添加至所述当前执行时间段的执行计划中;在所述当前执行时间段内不执行所述第i任务的情况下,确定第i+1优先级对应的第i+1任务,其中所述第i优先级高于所述第i+1优先级;根据所述执行周期和所述第i+1任务的运行周期,确定所述当前执行时间段内是否执行所述第i+1任务;
在所述当前执行时间段内执行所述第i+1任务的情况下,将所述第i+1任务的运行时间片添加至所述当前执行时间段的执行计划中;其中,所述n个任务的分发序列包括多个所述执行周期对应的执行时间段的执行计划。11.根据权利要求7所述的装置,其特征在于,所述装置还包括:执行模块,用于根据所述分发序列,通过链表形式按照顺序执行所述n个任务。12.根据权利要求7所述的装置,其特征在于,所述装置还包括:第二获取模块,用于在执行所述n个任务的过程中,获取所述n个任务中各任务的开始执行时间和结束执行时间;记录模块,用于根据所述开始执行时间和所述结束执行时间,确定所述n个任务中各任务的实际运行时间,并记录。13.一种电子设备,其特征在于,所述设备包括:处理器以及存储有程序或指令的存储器;所述处理器执行所述程序或指令时实现如权利要求1-6任意一项所述的方法。14.一种机器可读存储介质,其特征在于,所述机器可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时实现如权利要求1-6任意一项所述的方法。15.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行如权利要求1-6任意一项所述的方法。
技术总结
本申请公开一种任务调度方法、装置、设备、存储介质及产品,方法包括获取N个任务中各任务的运行时间、运行周期和运行优先级,以及N个任务对应的中断触发周期;根据中断触发周期和最大比例阈值,确定N个任务对应的执行周期,最大比例阈值指示中断触发周期中用于执行任务的时长所占的比例;按照时间片划分规则,对N个任务中各任务的运行时间进行划分,得到划分后的运行时间片,时间片划分规则基于执行周期确定;根据执行周期,以及N个任务中各任务的运行周期、运行优先级和运行时间片,确定N个任务的分发序列,以按照分发序列执行N个任务。根据本申请实施例,降低了系统的整体复杂度,提高了智能配电系统的运行效率,且降低系统崩溃的风险。险。险。
技术研发人员:吴凯 张久松
受保护的技术使用者:宁德时代(上海)智能科技有限公司
技术研发日:2022.09.26
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
