多任务调度方法、装置及电子设备与流程

文档序号:32126224发布日期:2022-11-09 08:16阅读:95来源:国知局
多任务调度方法、装置及电子设备与流程

1.本技术涉及工业控制领域,具体而言,涉及一种多任务调度方法、装置及电子设备。


背景技术:

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.获取模块,用于获取待调度的各任务的总执行时长和各任务的执行周期,所述执行周期用于指示所述任务执行完成所需要经过的控制周期的数量,且所述执行周期与所述任务的重要程度成反比;
41.确定模块,用于根据多个控制周期中实际用于任务执行的时长,确定每个控制周期中用于任务执行的平均时长,所述平均时长用于指示控制系统在每个控制周期内可以用于任务调度和执行的时长;
42.确定模块,用于根据待调度的各任务的总执行时长、各任务的执行周期以及所述平均时长,确定各控制周期中各任务的目标执行时长;
43.调度模块,用于行时长以及预设的执行顺序,在每个控制周期内依次调度并执行各任务。
44.可选的,所述确定模块具体用于:
45.获取各任务的执行时长余量比例,所述执行时长余量比例用于指示为所述任务分配的余量时长占所述平均时长的比例;
46.根据待调度的各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及所述平均时长,确定各控制周期中各任务的目标执行时长。
47.可选的,所述确定模块具体用于:
48.根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及所述平均时长,确定各控制周期内是否可以完成所有任务的执行;
49.若是,则按照目标分配策略,根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及所述平均时长,确定各控制周期中各任务的目标执行时长。
50.可选的,所述确定模块具体用于:
51.根据各任务的总执行时长和执行周期,确定各任务在一个控制周期内的执行时长;
52.根据各任务在一个控制周期内的执行时长,确定所有任务在一个控制周期内的第一总执行时长;
53.计算所述第一总执行时长与所述平均时长的比值,得到第一任务时长比例;
54.根据各任务的执行时长余量比例,确定所有任务的总执行时长余量比例;
55.计算所述第一任务时长比例与所述执行时长余量比例的和;
56.若所述第一任务时长比例与所述总执行时长余量比例的和小于或等于预设阈值,则确定各控制周期内可以完成所有任务的执行。
57.可选的,所述确定模块具体用于:
58.若所述目标分配策略为按需分配策略,则根据各任务的总执行时长、执行周期以及所述平均时长,确定各任务的第二任务时长比例,并计算所述第二任务时长比例与所述任务的执行时长余量比例的和,根据所述第二任务时长比例与所述任务的执行时长余量比例的和得到所述任务的目标执行时长。
59.可选的,所述确定模块具体用于:
60.根据第一任务的总执行时长和执行周期,确定所述第一任务在一个控制周期内的执行时长,所述第一任务为待调度的任务中的任意一个任务;
61.计算所述第一任务在一个控制周期内的执行时长与所述平均时长的比值,得到所述第一任务的第二任务时长比例。
62.可选的,所述确定模块具体用于:
63.若所述目标分配策略为按最大化比例分配策略,则根据各任务的总执行时长、执行周期以及所述平均时长,确定各任务的第二任务时长比例;计算所述第二任务时长比例与所述任务的执行时长余量比例的和,得到第一参数值,所述第一参数值用于表征各任务在各控制周期内的按需执行时长比例;
64.根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及所述平均时长,得到第二参数值,所述第二参数值用于表征各任务的可放大系数;
65.根据所述第一参数值和所述第二参数值,确定各控制周期中各任务的目标执行时长。
66.可选的,所述确定模块还具体用于:
67.在第一控制周期内,确定第二任务是否执行完成,所述第一控制周期为控制系统中的任意一个控制周期,所述第二任务为待调度的任务中的任意一个任务;
68.若是,则确定所述第一控制周期是否为所述第二任务的最后一个执行周期,并确定所述第一控制周期内是否存在剩余时段,所述剩余时段为分配给所述第二任务且所述第二任务未执行的时段;
69.若所述第一控制周期不为所述第二任务的最后一个执行周期,则将所述第一控制周期之后的各控制周期中为所述第二任务分配的执行时段分配给系统程序;
70.若所述第一控制周期内存在剩余时段,则将所述剩余时段分配给系统程序。
71.第三方面,本技术实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当应用程序运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以执行上述第一方面所述的多任务调度方法的步骤。
72.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被读取并执行上述第一方面所述的多任务调度方法的步骤。
73.本技术的有益效果是:
74.本技术提供的一种多任务调度方法、装置及电子设备,通过根据待调度的各任务的总执行时长、各任务的执行周期以及平均时长来确定各控制周期中各任务的目标执行时长,其中,各任务的总执行时长不同,平均时长指示的是在每个控制周期内可以用于任务调度和执行的时长,各任务的执行周期指示任务完成需要经过的控制周期的数量,根据上述数据确定的各任务在每个控制周期中的目标执行时长,可以保证各任务能够完成或者提前完成,使得各任务的目标执行时长分配合理并且实现各任务之间的时间隔离;并且通过将各任务在被调度并执行之前可以预先配置各任务的目标执行时长,根据配置的目标执行时长以及预设的执行顺序来调度并执行各任务,可以实现根据各任务的执行时长来调度并执行各任务,避免根据任务的优先级来调度各任务从而出现各任务之间的相互影响的问题。
附图说明
75.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
76.图1为本技术实施例提供的一种多任务调度方法的流程示意图;
77.图2为本技术实施例提供的一种自适应配置的完整流程示意图;
78.图3为本技术实施例提供的一种手动配置方法的流程示意图;
79.图4为本技术实施例提供的一种多任务调度方法的装置示意图;
80.图5为本技术实施例提供的一种电子设备的结构框图。
具体实施方式
81.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解,本技术中附图仅起到说明和描述的目的,并不用于限定本技术的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本技术中使用的流程图示出了根据本技术的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本技术内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
82.另外,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
83.需要说明的是,本技术实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
84.现有技术中,多任务调度的方式一般包括基于优先级的时长片轮询调度或者基于优先级的抢占式调度。在这两种调度方式中,各个任务执行时长具有不确定性,通过这两种调度方式调度时,任务容易受其他任务影响,例如当某个任务长期占用系统运行资源时,其
他任务无法正常执行。
85.本技术中的各任务之间不存在任务的优先级,各任务可以按照任务序号依次执行,在每一个控制周期都会调度所有的用户程序任务,用户程序用于实现对多个用户任务的调度和执行。其中,每一个控制周期指的是控制系统自身运行的一个基础循环时长,控制系统存在多个控制周期,在一个控制周期内不一定完成所有的任务,且一个任务可以分别通过多个控制周期执行,也就是说,一个任务并不是在一段连续的时间内执行完成,可以将该任务分解成多份在多个控制周期内完成,则各任务的执行周期可以为控制周期的任意倍数。
86.每个任务在每个控制周期的执行时间是可配置的,本技术通过配置的各任务执行时间来执行各任务,并在任务的执行时间到达时,切换到下一个任务并执行下一个任务,按任务的顺序依次执行各任务,当所有的任务执行结束,退出任务调度,其中,当一个任务提前执行完成时,控制系统会切换到下一个任务并执行下一个任务,并且下一个任务的执行时间不受影响。
87.图1为本技术实施例提供的一种多任务调度方法的流程示意图,如图1所示,该方法包括:
88.s101、获取待调度的各任务的总执行时长和各任务的执行周期。
89.可选的,待调度的各任务的总执行时长为待调度的各任务实际执行的总执行时长,其中,该总执行时长可以包括各任务实际执行的最大时间。其中,各任务的执行周期可以用于指示各任务执行完成所需要经过的控制周期的数量,且执行周期与任务的重要程度成反比,也就是说,任务越重要,该任务的执行周期可以设置的较短,对于不重要的任务,任务的执行周期可以设置的较长。
90.可选的,在获取待调度的各任务的总执行时长和各任务的执行周期之前,由于各个任务在每个控制周期的执行时间是未知的,因此,可以预先通过预设的方法将各任务实际执行一遍,例如可以在控制系统中的多任务环境中将各任务执行,并获取各任务的实际执行时长,如上述的各任务的总执行时长和各任务的执行周期。
91.可选的,在多任务环境中执行各任务之前,可以预先在控制系统中设置各任务的执行周期、各任务的执行顺序以及对各任务进行编程并设置各任务执行时长的自适应配置信息,对完成设置的各任务进行编译并下载至控制系统中的控制器,通过控制器执行各任务同时将各任务的实际执行时长返回至控制系统,控制系统可以统计各任务的实际执行时长,其中,各任务的实际执行时长为各任务的总执行时长,各任务的执行周期为预先在控制系统中设置的各任务的执行周期。
92.s102、根据多个控制周期中实际用于任务执行的时长,确定每个控制周期中用于任务执行的平均时长。
93.其中,该平均时长可以用于指示控制系统在每个控制周期内可以用于任务调度和执行的时长,也可以为每个控制周期内可以供用户程序执行的时长,则该用户程序用于实现对多个用户任务的调度和执行;每个控制周期中实际用于任务执行的时长可以相同也可以不同,控制系统获取到各控制周期中实际用于任务执行的时长,将各控制周期中实际用于任务执行的时长进行求和,并除以多个控制周期的总数量,得到每个控制周期中用于任务执行的平均时长。
94.s103、根据待调度的各任务的总执行时长、各任务的执行周期以及平均时长,确定各控制周期中各任务的目标执行时长。
95.可选的,根据待调度的各任务的总执行时长、各任务的执行周期以及平均时长使用预设的方法确定各控制周期中各任务的目标执行时长。
96.可选的,当确定各控制周期中各任务的目标执行时长后,控制系统可以将各任务的目标执行时长在任务配置中分别对各任务进行配置。
97.s104、按照目标执行时长以及预设的执行顺序,在每个控制周期内依次调度并执行各任务。
98.其中,预设的执行顺序可以为上述s101中在多任务环境中执行各任务之前,预先在控制系统中设置各任务的执行顺序。
99.可选的,控制系统根据上述s103中配置的各任务的目标执行时长以及预先设置的各任务的执行顺序,在每个控制周期内依次调度并执行各任务。
100.本实施例中,通过根据待调度的各任务的总执行时长、各任务的执行周期以及平均时长来确定各控制周期中各任务的目标执行时长,其中,各任务的总执行时长不同,平均时长指示的是在每个控制周期内可以用于任务调度和执行的时长,各任务的执行周期指示任务完成需要经过的控制周期的数量,根据上述数据确定的各任务在每个控制周期中的目标执行时长,可以保证各任务能够完成或者提前完成,使得各任务的目标执行时长分配合理并且实现各任务之间的时间隔离;并且通过将各任务在被调度并执行之前可以预先配置各任务的目标执行时长,根据配置的目标执行时长以及预设的执行顺序来调度并执行各任务,可以实现根据各任务的执行时长来调度并执行各任务,避免根据任务的优先级来调度各任务从而出现各任务之间的相互影响的问题。
101.可选的,上述步骤s103中根据待调度的各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及所述平均时长,确定各控制周期中各任务的目标执行时长,可以包括:
102.可选的,获取各任务的执行时长余量比例,其中,该执行时长余量比例用于指示各任务分配的余量时长占平均时长的比例。
103.可选的,各任务分配的余量时间可以为上述s101中在多任务环境中执行各任务之前,可以预先在控制系统中对各任务分配余量时长,该余量时长可以用于指示各任务在各控制周期内完成执行时长后分配的余量时长,例如,若一个任务执行完成需要的执行时长为3小时,可以为该任务再分配10分钟的余量时长,可以保证该任务能够在充足的时长内完成该任务,避免出现突发状况使得该任务无法正常完成。
104.可选的,该平均时长为控制系统在每个控制周期内可以用于任务调度和执行的时长,则,各任务的执行时长余量比例为各任务分配的余量时长占各控制周期内可以用于任务调度和执行的时长的比例。
105.可选的,根据待调度的各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及平均时长,使用预设的方法可以确定各控制周期中各任务的目标执行时长。
106.本实施例中,通过向各任务分配余量时长并获取各任务的执行时长余量比例,可以使得根据待调度的各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比
例以及平均时长,确定的各控制周期中各任务的目标执行时长更充足,保证各任务可以在目标时长中能够完成执行。
107.可选的,上述根据待调度的各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及平均时长,确定各控制周期中各任务的目标执行时长,可以包括:
108.可选的,根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及平均时长,确定各控制周期内是否可以完成所有任务的执行。
109.可选的,根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及平均时长,可以使用预设的方法确定各控制周期内是否可以完成所有任务的执行,由于在多任务环境中执行各任务时,各任务的执行时间是未知的,是使用多任务环境对各任务进行实际的执行,因此,需要确定各控制周期内是否可以完成所有的任务执行。
110.可选的,若在各控制周期内可以完成所有任务的执行,则可以按照目标分配策略,根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及平均时长,确定各控制周期中各任务的目标执行时长。
111.可选的,若在各控制周期内无法完成所有任务的执行,则控制系统可以显示运行失败等信息,且需要对各任务的执行周期等进行重新配置,将重新配置的各任务使用多任务环境重新执行,直至确定各控制周期内可以完成所有的任务的执行。
112.本实施例中,通过确定各控制周期内是否可以完成所有任务的执行可以保证确定的各控制周期中各任务的目标执行时长更严格。
113.可选的,上述根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及平均时长,确定各控制周期内是否可以完成所有任务的执行,可以包括:
114.可选的,根据各任务在一个控制周期内的执行时长,确定各任务在一个控制周期内的执行时长,具体地,各任务的总执行时长可以使用t
excx
来表示,各任务的执行周期可以使用n来表示,则各任务在一个控制周期内的执行时长为各任务的总执行时长与各任务的执行周期的比值,如t
excs
/n。
115.可选的,根据各任务在一个控制周期内的执行时长,确定所有任务在一个控制周期内的第一总执行时长,具体地,各任务在一个控制周期内的执行时长的总和为所有任务在一个控制周期内的第一执行时长,如其中x为各任务的序号,m为所有任务的数量。
116.可选的,计算第一总执行时长与平均时长的比值,得到第一任务时长比例,具体地,该平均时长指示的是控制系统在每个控制周期内可以用于任务调度和执行的时长,若该平均时长使用p
avg
来表示,则第一总执行时长与平均时长的比值为如得到第一任务时长比例。
117.可选的,根据各任务的执行时长余量比例,确定所有任务的总执行时长余量比例,其中,各任务的执行时长余量为在多任务环境中预先设置的各任务在各任务的执行周期的时长余量,计算各任务的执行时长余量与平均时长的比值,得到各任务的执行时长余量比例,各任务的执行时长余量比例可以使用q
x
来表示,其中,q
x
的单位为%,x为各任务的序号。
118.可选的,各任务的执行时长余量比例的总和为所有任务的总执行时长余量比例,
如其中x为各任务的序号,m为所有任务的数量。
119.可选的,计算第一任务时长比例与总执行时长余量比例的和,如若第一任务时长比例与总执行时长余量比例的和小于或等于预设阈值时,则确定各控制周期内可以完成所有任务的执行;若第一任务时长比例与总执行时长余量比例的和大于预设阈值时,则各控制周期内无法完成所有任务的执行。
120.示例性的,该预设阈值可以为100%,也可以为其他数值。
121.可选的,上述按照目标分配策略,根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及平均时长,确定各控制周期中各任务的目标执行时长,可以包括:
122.可选的,若目标分配策略为按需分配策略,则根据各任务的总执行时长、执行周期以及平均时长,确定各任务的第二时长比例,并计算各任务的第二任务时长比例与各任务的执行时长余量比例的和,根据各任务的第二任务时长比例与各任务的执行时长余量比例的和得到各任务的目标执行时长。
123.可选的,根据各任务的第二任务时长比例与各任务的执行时长余量比例的和得到的是各任务的目标执行时长比例,将各任务的目标执行时长比例与控制周期的时长的乘积作为各任务目标执行时长。
124.可选的,上述根据各任务的总执行时长、执行周期以及平均时长,确定各任务的第二时长比例,可以包括:
125.可选的,根据第一任务的总执行时长和执行周期,确定第一任务在一个控制周期内的执行时长,其中,该第一任务为待调度的任务中的任意一个任务,具体地,第一任务的总执行时长可以使用t
excx
来表示,第一任务的执行周期可以使用n来表示,则第一任务在一个控制周期内的执行时长为t
excs
/n。
126.可选的,计算第一任务在一个控制周期内的执行时长与平均时长的比值,得到第一任务的第二任务时长比例,具体地,该平均时长使用p
avg
来表示,则第一任务的第二任务时长比例为t
excx
/n/p
avg

127.可选的,根据各任务的第二任务时长比例与各任务的执行时长余量比例的和得到各任务的目标执行时长,其中,各任务的执行时长余量比例可以使用q
x
来表示,则各任务的目标执行时长比例为cx=t
excx
/n/p
avg
+q
x
,将各任务的目标执行时长比例与控制周期的时长的乘积作为各任务目标执行时长。本实施例中,通过根据各任务的总执行时长、执行周期以及平均时长可以确定各任务在各控制周期中的目标执行时长比例,根据目标执行时长比例以及执行时长余量比例确定各任务在各控制周期中的目标时长可以保证各任务在各控制周期中能够按照需要的时间完成任务执行。
128.可选的,上述按照目标分配策略,根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及平均时长,确定各控制周期中各任务的目标执行时长,包括:
129.可选的,若目标分配策略为按最大化比例分配策略,则根据各任务的总执行时长、执行周期以及平均时长,确定各任务的第二任务时长比例;计算第二任务时长比例与各任
务的执行时长余量比例的和,得到第一参数值,该第一参数值用于表征各任务在各控制周期内按需执行时长比例,具体的计算步骤如上述按需分配策略中得到的各任务的目标执行时长比例的方法,此处不作赘述,则第一参数值为sx=t
excx
/n/p
avg
+q
x

130.可选的,根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及平均时长,得到第二参数值,该第二参数值用于表征各任务的可放大系数,该可放大系数如前述确定第一任务时长比例与总执行时长余量比例的和的方法,此处不作赘述,则第二参数值为
131.可选的,根据第一参数值和第二参数值,确定各控制周期中各任务的目标执行时长。
132.可选的,根据第一参数值和第二参数值的比值,可以确定各控制周期中各任务的目标执行时长比例,将各任务的目标执行时长比例与控制周期的时长的乘积作为各任务目标执行时长。
133.具体地,若目标执行时长比例可以使用o
x
来表示,则
134.本实施例中,通过将各任务在各控制周期内的按需执行时长比例进行相应的放大,使得确定的各任务的目标执行时长能够最大化,可以确保在每个控制周期内可以更充足的完成任务的执行。
135.可选的,该方法还包括:
136.可选的,在第一控制周期内,确定第二任务是否执行完成,其中该第一控制周期为控制系统中的任意一个控制周期,第二任务为待调度的任务中的任意一个任务。
137.可选的,若确定第二任务执行完成,则确定第一控制周期是否为第二任务的最后一个执行周期,并确定第一控制周期内是否存在剩余时段,其中,该剩余时段为分配给第二任务的时段且第二任务执行完剩余的时段。
138.若第一控制周期不为第二任务的最后一个执行周期,则第二任务提前控制周期完成执行任务,将该第一控制周期之后的各控制周期中的为第二任务分配的执行时段分配给系统程序,该系统程序为控制系统中除用户程序的其他程序,其中,用户程序用于实现对多个用户任务的调度和执行,系统程序用于其他程序工作。
139.可选的,若第一控制周期内存在剩余时段,也就是说第二任务在该第一控制周期内提前时间完成任务执行,则将第一控制周期内为第二任务分配的剩余执行时段分配给系统程序。
140.本实施例中,通过将各任务的剩余执行时段分配给系统程序,可以使各任务的执行时长在任何时候都不可被用户程序占用,保证了各任务之间不会相互影响,使得各任务之间的时间隔离。
141.以上实施例说明了各任务目标执行时长的自适应配置的过程,为了便于更好的理解本技术的技术方案,以下通过图2对上述的自适应配置的过程进行完整说明,具体地,图2为本技术实施例提供的一种自适应配置的完整流程示意图,如图2所示,该方法包括:
142.s201、控制系统创建多个任务;
143.s202、设置各任务的执行周期、各任务执行顺序以及对各任务进行编程;
144.s203、设置执行时间自适应配置信息;
145.s204、对完成设置的各任务进行编译并下载至控制系统中的控制器。
146.s205、在控制器中的多任务环境中运行各任务,获取各任务的总执行时长和各任务的执行周期;
147.s206、根据待调度的各任务的总执行时长、各任务的执行周期以及平均时长,确定各控制周期中各任务的目标执行时长;
148.s207、将各控制周期中的各任务的目标执行时长写入任务配置;
149.s208、在控制系统中的控制器中执行各任务并将各任务的实际执行时长返回至控制系统中;
150.s209、控制系统判断各任务的实际执行时长是否合理,若合理,根据各任务的执行周期继续执行各任务,若不合理,则可以判断是否使用自适应调整方法对各任务进行重新调整,若是,则返回上述步骤s206,若否,则可以手动的重新设置各任务的目标执行时长,并根据各任务的执行周期继续执行各任务。
151.上述各步骤的具体实施过程已在前述实施例中详细解释,可以参照前述具体实施例,此处不作赘述。
152.图3为本技术实施例提供的一种手动配置方法的流程示意图,如图3所示,该方法还可以包括:
153.s301、控制系统创建多个任务;
154.可选的,若各任务在每一个控制周期的执行时长已知,可以进行手工配置目标执行时长。具体地,可以平均分配也可以自定义分配。
155.s302、设置各任务的执行周期、各任务执行顺序以及对各任务进行编程;
156.s303、判断各任务的目标执行时长是否需要平均分配,若是,则根据平均分配的方法对各任务的目标执行时长进行平均分配,若否,则执行s304,自定义分配各任务的目标执行时长。
157.可选的,平均分配可以根据各控制周期内用于任务调度并执行的时长以及所有任务的数量,计算一个控制周期内用于任务调度并执行的时长与所有的任务数量的比值,得到各任务在各控制周期内的目标执行时间。例如,控制周期内用于任务调度并执行的时长为p,所有任务的数量为m,则,各任务在各控制周期内的目标执行时间为p/m。
158.可选的,自定义分配可以将各任务按照时间比例进行分配,若一个任务设置的目标执行时长比例为t%,控制周期内用于任务调度并执行的时长为p,则该任务的目标执行时长为t%
×
p。
159.s305、根据各任务的目标执行时长对各任务进行设置,并对完成设置的各任务进行编译并下载至控制系统中的控制器;
160.s306、在控制器中根据设置的各任务的目标执行时长运行各任务并将各任务的实际执行时长返回至控制系统中;
161.s307、控制系统判断各任务的实际执行时长是否合理,若合理,根据各任务的执行周期继续执行各任务,若不合理,则返回上述步骤s303,对各任务的目标执行时长进行重新
设置。
162.可选的,判断各任务的实际执行时长是否合理,可以判断各任务的执行时长是否有剩余时段,若有剩余时段,可以返回使用平均分配或者自定义分配的方法对各任务进行重新分配;若无剩余时段,则继续执行各任务的执行周期。
163.上述各步骤的具体实施过程已在前述实施例中详细解释,可以参照前述具体实施例,此处不作赘述。
164.图4为本技术实施例提供的一种多任务调度方法的装置示意图,如图4所示,该装置包括:
165.获取模块401,用于获取待调度的各任务的总执行时长和各任务的执行周期,所述执行周期用于指示所述任务执行完成所需要经过的控制周期的数量,且所述执行周期与所述任务的重要程度成反比;
166.确定模块402,用于根据多个控制周期中实际用于任务执行的时长,确定每个控制周期中用于任务执行的平均时长,所述平均时长用于指示控制系统在每个控制周期内可以用于任务调度和执行的时长;
167.确定模块402,用于根据待调度的各任务的总执行时长、各任务的执行周期以及所述平均时长,确定各控制周期中各任务的目标执行时长;
168.调度模块403,用于行时长以及预设的执行顺序,在每个控制周期内依次调度并执行各任务。
169.可选的,确定模块401具体用于:
170.获取各任务的执行时长余量比例,所述执行时长余量比例用于指示为所述任务分配的余量时长占所述平均时长的比例;
171.根据待调度的各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及所述平均时长,确定各控制周期中各任务的目标执行时长。
172.可选的,确定模块401具体用于:
173.根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及所述平均时长,确定各控制周期内是否可以完成所有任务的执行;
174.若是,则按照目标分配策略,根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及所述平均时长,确定各控制周期中各任务的目标执行时长。
175.可选的,确定模块401具体用于:
176.根据各任务的总执行时长和执行周期,确定各任务在一个控制周期内的执行时长;
177.根据各任务在一个控制周期内的执行时长,确定所有任务在一个控制周期内的第一总执行时长;
178.计算所述第一总执行时长与所述平均时长的比值,得到第一任务时长比例;
179.根据各任务的执行时长余量比例,确定所有任务的总执行时长余量比例;
180.计算所述第一任务时长比例与所述执行时长余量比例的和;
181.若所述第一任务时长比例与所述总执行时长余量比例的和小于或等于预设阈值,则确定各控制周期内可以完成所有任务的执行。
182.可选的,确定模块401具体用于:
183.若所述目标分配策略为按需分配策略,则根据各任务的总执行时长、执行周期以及所述平均时长,确定各任务的第二任务时长比例,并计算所述第二任务时长比例与所述任务的执行时长余量比例的和,根据所述第二任务时长比例与所述任务的执行时长余量比例的和得到所述任务的目标执行时长。
184.可选的,确定模块401具体用于:
185.根据第一任务的总执行时长和执行周期,确定所述第一任务在一个控制周期内的执行时长,所述第一任务为待调度的任务中的任意一个任务;
186.计算所述第一任务在一个控制周期内的执行时长与所述平均时长的比值,得到所述第一任务的第二任务时长比例。
187.可选的,确定模块401具体用于:
188.若所述目标分配策略为按最大化比例分配策略,则根据各任务的总执行时长、执行周期以及所述平均时长,确定各任务的第二任务时长比例;计算所述第二任务时长比例与所述任务的执行时长余量比例的和,得到第一参数值,所述第一参数值用于表征各任务在各控制周期内的按需执行时长比例;
189.根据各任务的总执行时长、各任务的执行周期、各任务的执行时长余量比例以及所述平均时长,得到第二参数值,所述第二参数值用于表征各任务的可放大系数;
190.根据所述第一参数值和所述第二参数值,确定各控制周期中各任务的目标执行时长。
191.可选的,确定模块401还具体用于:
192.在第一控制周期内,确定第二任务是否执行完成,所述第一控制周期为控制系统中的任意一个控制周期,所述第二任务为待调度的任务中的任意一个任务;
193.若是,则确定所述第一控制周期是否为所述第二任务的最后一个执行周期,并确定所述第一控制周期内是否存在剩余时段,所述剩余时段为分配给所述第二任务且所述第二任务未执行的时段;
194.若所述第一控制周期不为所述第二任务的最后一个执行周期,则将所述第一控制周期之后的各控制周期中为所述第二任务分配的执行时段分配给系统程序;
195.若所述第一控制周期内存在剩余时段,则将所述剩余时段分配给系统程序。
196.图5为本技术实施例提供的一种电子设备500的结构框图。如图5所示,该电子设备可包括:处理器501、存储器502。
197.可选的,还可以包括总线503,其中,所述存储器502用于存储有所述处理器501可执行的机器可读指令,当电子设备500运行时,所述处理器501与所述存储器502存储之间通过总线503通信,所述机器可读指令被所述处理器501执行时执行上述方法实施例中的方法步骤。
198.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述多任务调度方法实施例中的方法步骤。
199.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本技术中不再赘述。在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实
现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
200.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
201.以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1