本技术涉及电数字数据处理,具体涉及一种多任务调度方法、装置及处理芯片。
背景技术:
1、在配用电领域,配用电智能装置用于实现电力配送、分配电能和调节电压等功能,其应用的芯片通常分为高端芯片和低端芯片(如低端芯片为中央处理器(centralprocessing unit,cpu))。其中,高端芯片的性能更好,但其成本也较高;低端芯片的性能较差,通常成本也较低。
2、相关技术中为节省成本,在配用电智能装置中使用低端芯片,低端芯片的操作系统在进行多任务调度时,由于调度性能较差,通常在各任务之间会产生空闲时间,也就是cpu会出现空档期,导致cpu的执行效率低,浪费资源。
技术实现思路
1、有鉴于此,本技术实施例提供了一种多任务调度方法、装置及处理芯片,以解决相关技术中低端芯片的操作系统在进行多任务调度时,由于调度性能较差,通常在各任务之间会产生空闲时间,导致cpu的执行效率低,浪费资源的技术问题。
2、第一方面,本技术实施例提供了一种多任务调度方法,包括:
3、根据基础任务的预期执行时长和循环时间间隔,确定多任务调度的时间间隙的时长和基础任务的时间片;其中,基础任务为多任务中循环时间间隔最小的循环任务;
4、基于时间间隙的时长,对多任务中除基础任务之外的各循环任务进行拆分,得到各循环任务对应的子任务,并确定各循环任务对应的子任务的时间片;
5、根据各循环任务的循环时间间隔,对基础任务和各循环任务对应的子任务进行排序,基于排序结果,对多任务中的各非循环任务进行拆分,得到各非循环任务对应的子任务,并确定各非循环任务对应的子任务的时间片;
6、在排序结果中插入各非循环任务对应的子任务,得到调度队列,并根据调度队列中基础任务和各子任务的顺序,以及对应的时间片,执行任务。
7、在第一方面的一种可能的实施方式中,基于时间间隙的时长,对多任务中除基础任务之外的各循环任务进行拆分,得到各循环任务对应的子任务,并确定各循环任务对应的子任务的时间片,包括:
8、根据时间间隙的时长和各循环任务的多个第一拆分节点,将各循环任务拆分为至少一个子任务;
9、根据各循环任务对应的子任务的预期执行时长,确定各循环任务对应的子任务的时间片;
10、其中,循环任务的相邻两个第一拆分节点之间的部分为不可拆分部分。
11、在第一方面的一种可能的实施方式中,根据各循环任务的循环时间间隔,对基础任务和各循环任务对应的子任务进行排序,包括:
12、以基础任务的循环时间间隔为间隔,将基础任务插入空的调度队列中,得到初始调度队列;
13、根据各循环任务的循环时间间隔,将各循环任务对应的子任务插入初始调度队列的时间间隙中,得到排序结果。
14、在第一方面的一种可能的实施方式中,基于排序结果,对多任务中的各非循环任务进行拆分,得到各非循环任务对应的子任务,并确定各非循环任务对应的子任务的时间片,包括:
15、根据排序结果中多任务调度的新的时间间隙的时长和各非循环任务的多个第二拆分节点,将各非循环任务拆分为至少一个子任务;其中,新的时间间隙为相邻两个任务之间的间隔;
16、根据各非循环任务对应的子任务的预期执行时长,确定各非循环任务对应的子任务的时间片;
17、其中,非循环任务的相邻两个第二拆分节点之间的部分为不可拆分部分。
18、在第一方面的一种可能的实施方式中,在排序结果中插入各非循环任务对应的子任务,得到调度队列,包括:
19、将各非循环任务对应的子任务插入排序结果中相应的新的时间间隙中,得到调度队列。
20、在第一方面的一种可能的实施方式中,根据基础任务的预期执行时长和循环时间间隔,确定多任务调度的时间间隙的时长和基础任务的时间片,包括:
21、计算基础任务的循环时间间隔和预期执行时长之间的第一差值,将第一差值作为时间间隙的时长;
22、将基础任务的预期执行时长作为基础任务的时间片。
23、在第一方面的一种可能的实施方式中,在根据调度队列中基础任务和各子任务的顺序,以及对应的时间片,执行任务之后,还包括:
24、针对每一子任务,获取该子任务的实际执行时长,并判断该子任务的实际执行时长是否大于该子任务的时间片;
25、若该子任务的实际执行时长大于该子任务的时间片,则将该子任务的时间片增加预设时长,作为该子任务的时间片,并得到调整后的调度队列;
26、根据调整后的调度队列中基础任务和各子任务的顺序,以及对应的时间片,执行任务。
27、在第一方面的一种可能的实施方式中,在根据调度队列中基础任务和各子任务的顺序,以及对应的时间片,执行任务之后,还包括:
28、针对每一子任务,获取该子任务对应的实际执行时长,判断该子任务的实际执行时长是否小于该子任务的时间片,并判断该子任务的时间片与该子任务的实际执行时长之间的第二差值是否小于预设阈值;
29、若该子任务的实际执行时长小于该子任务的时间片,且该子任务的时间片与该子任务的实际执行时长之间的第二差值小于预设阈值,则将该子任务的时间片减小第二差值,作为该子任务的时间片,并得到调整后的调度队列;
30、根据调整后的调度队列中基础任务和各子任务的顺序,以及对应的时间片,执行任务。
31、第二方面,本技术实施例提供了一种多任务调度装置,包括:
32、确定模块,用于根据基础任务的预期执行时长和循环时间间隔,确定多任务调度的时间间隙的时长和基础任务的时间片;其中,基础任务为多任务中循环时间间隔最小的循环任务;
33、拆分模块,用于基于时间间隙的时长,对多任务中除基础任务之外的各循环任务进行拆分,得到各循环任务对应的子任务,并确定各循环任务对应的子任务的时间片;
34、排序模块,用于根据各循环任务的循环时间间隔,对基础任务和各循环任务对应的子任务进行排序,基于排序结果,对多任务中的各非循环任务进行拆分,得到各非循环任务对应的子任务,并确定各非循环任务对应的子任务的时间片;
35、执行模块,用于在排序结果中插入各非循环任务对应的子任务,得到调度队列,并根据调度队列中基础任务和各子任务的顺序,以及对应的时间片,执行任务。
36、第三方面,本技术实施例提供了一种处理芯片,包括存储器和处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现如第一方面任一项所述的多任务调度方法。
37、第四方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如第一方面任一项所述的多任务调度方法。
38、第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在处理芯片上运行时,使得处理芯片执行上述第一方面中任一项所述的多任务调度方法。
39、可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
40、本技术实施例提供的多任务调度方法、装置及处理芯片,根据基础任务的预期执行时长和循环时间间隔,确定多任务调度的时间间隙的时长和基础任务的时间片,之后,基于时间间隙的时长,对各循环任务进行拆分,得到各循环任务对应的子任务以及子任务的时间片,进而,根据各循环任务的循环时间间隔,对基础任务和各循环任务对应的子任务进行排序,并基于排序结果,对各非循环任务进行拆分,得到各非循环任务对应的子任务以及子任务的时间片,从而,在排序结果中插入各非循环任务对应的子任务,得到调度队列,根据调度队列执行任务。本技术实施例通过对各循环任务和非循环任务进行拆分、排序等,得到多任务调度队列,基于该队列执行任务可以减少各任务之间的空闲时间,有效进行多任务调度,提高低端芯片,如cpu的执行效率,减少cpu的资源浪费,使低端芯片实现高性能。
41、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
1.一种多任务调度方法,其特征在于,包括:
2.根据权利要求1所述的多任务调度方法,其特征在于,所述基于所述时间间隙的时长,对所述多任务中除所述基础任务之外的各循环任务进行拆分,得到所述各循环任务对应的子任务,并确定所述各循环任务对应的子任务的时间片,包括:
3.根据权利要求1所述的多任务调度方法,其特征在于,所述根据所述各循环任务的循环时间间隔,对所述基础任务和所述各循环任务对应的子任务进行排序,包括:
4.根据权利要求3所述的多任务调度方法,其特征在于,所述基于排序结果,对所述多任务中的各非循环任务进行拆分,得到所述各非循环任务对应的子任务,并确定所述各非循环任务对应的子任务的时间片,包括:
5.根据权利要求4所述的多任务调度方法,其特征在于,所述在所述排序结果中插入所述各非循环任务对应的子任务,得到调度队列,包括:
6.根据权利要求1至5任一项所述的多任务调度方法,其特征在于,所述根据基础任务的预期执行时长和循环时间间隔,确定多任务调度的时间间隙的时长和所述基础任务的时间片,包括:
7.根据权利要求1至5任一项所述的多任务调度方法,其特征在于,在所述根据所述调度队列中所述基础任务和各子任务的顺序,以及对应的时间片,执行任务之后,还包括:
8.根据权利要求1至5任一项所述的多任务调度方法,其特征在于,在所述根据所述调度队列中所述基础任务和各子任务的顺序,以及对应的时间片,执行任务之后,还包括:
9.一种多任务调度装置,其特征在于,包括:
10.一种处理芯片,包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的多任务调度方法。
