多任务控制方法、设备以及工业控制系统的制作方法

文档序号:6489034阅读:225来源:国知局
多任务控制方法、设备以及工业控制系统的制作方法
【专利摘要】本申请公开了一种多任务控制方法、设备以及工业控制系统。其中,所控制的多个任务中的至少部分任务各自包括多个子任务。其中,根据多个任务中的未开始任务对未完成任务的依赖关系确定未开始任务的优先级,并根据优先级选择要开始的任务。其中,将不依赖于未完成任务的未开始任务的优先级设置为高于依赖于未完成任务的未开始任务的优先级,将弱依赖于未完成任务的未开始任务的优先级设置为高于控制依赖于未完成任务的未开始任务的优先级。其中,弱依赖是指本任务的起始子任务不基于其他任务的结果而至少一个后续子任务基于所依赖的任务的结果,而控制依赖是指由所依赖的任务的结果确定是否需要执行本任务。
【专利说明】多任务控制方法、设备以及工业控制系统
【技术领域】
[0001]本申请涉及多任务控制。具体地,涉及一种多任务控制方法和多任务控制设备。本申请还涉及包括所述多任务控制设备的工业控制系统。
【背景技术】
[0002]在计算设备上执行的操作可能由多个任务组成,并且各任务间可能存在依赖关系,常用的多任务控制方式是相继执行各个任务。例如,假设一个操作包括四个任务T0、T1、T2和T3,并且任务间包含这样的依赖关系:根据TO和Tl的结果确定是执行T2还是执行T3。根据已有的多任务控制方式,按照以下步骤相继执行上述任务TO至T3:
[0003]步骤1:执行TO ;
[0004]步骤2:执行Tl ;
[0005]步骤3:检查来自TO和Tl的响应数据,如果满足预定条件则执行T2,否则执行T3。
[0006]然而,在相继执行多个任务的情况下,由于某些任务可能包含通信过程等需要等待的过程,因此可能存在资源在某些时间段处于空闲状态的情况。
[0007]因此,需要一种更高效的多任务管理方式。

【发明内容】

[0008]本申请的目的是提供一种能够控制多个任务并行执行的多任务控制方法、多任务控制设备以及包括该多任务管理设备的工业控制系统,从而充分利用资源、提高处理效率。
[0009]根据本申请的一个实施例,提供一种多任务控制方法,其中多个任务中的至少部分任务各自包括多个子任务,该方法包括:根据多个任务中的未开始任务对未完成任务的依赖关系确定未开始任务的优先级,以及根据优先级选择要开始的任务,其中,将不依赖于未完成任务的未开始任务的优先级设置为高于依赖于未完成任务的未开始任务的优先级,将弱依赖于未完成任务的未开始任务的优先级设置为高于控制依赖于未完成任务的未开始任务的优先级,其中弱依赖是指本任务的起始子任务不基于其他任务的结果而至少一个后续子任务基于所依赖的任务的结果,控制依赖是指由所依赖的任务的结果确定是否需要执行本任务。
[0010]根据本申请的另一个实施例,提供一种多任务控制设备,其中多个任务中的至少部分任务各自包括多个子任务,该设备包括:优先级确定装置,被配置为根据多个任务中的未开始任务对未完成任务的依赖关系确定未开始任务的优先级,以及任务选择装置,被配置为根据优先级选择要开始的任务,其中,优先级确定装置被配置为:将不依赖于未完成任务的未开始任务的优先级设置为高于依赖于未完成任务的未开始任务的优先级,将弱依赖于未完成任务的未开始任务的优先级设置为高于控制依赖于未完成任务的未开始任务的优先级,其中弱依赖是指本任务的起始子任务不基于其他任务的结果而至少一个后续子任务基于所依赖的任务的结果,控制依赖是指由所依赖的任务的结果确定是否需要执行本任务。[0011]根据本申请的又一个实施例,提供一种工业控制系统,包括:中央控制器,用于执行多个任务;工业设备,其与中央控制器通信耦合以作为关联设备对多个任务中的至少一部分任务作出响应,其中,中央控制器包括上述多任务控制设备以控制多个任务。
[0012]根据本申请的多任务控制方法、多任务控制设备以及工业控制系统,能够根据任务间的依赖关系合理地确定可并行执行的任务,从而充分利用空闲资源,提高多任务过程的效率。
【专利附图】

【附图说明】
[0013]参照以下结合附图对本申请实施例的说明,会更加容易地理解本申请的以上和其他目的、特点和优点。为了避免因不必要的细节而模糊了本申请,在附图中仅示出了与根据本申请的方案密切相关的装置结构和/或处理步骤,而省略了与本申请关系不大的其他细节。
[0014]图1是示出根据本申请实施例的多任务控制方法的示例过程的流程图;
[0015]图2是示出根据本申请一个实施例的多任务控制方法对弱依赖于其他任务的任务的处理示例的流程图;
[0016]图3是示出根据本申请一个实施例的多任务控制方法对弱依赖于其他任务且被其他任务依赖的任务的处理示例的流程图;
[0017]图4是示出根据本申请一个实施例的多任务控制方法对控制依赖于其他任务的任务的处理示例的流程图;
[0018]图5是示出根据本申请一个实施例的多任务控制方法对控制依赖于其他任务且被其他任务依赖的任务的处理示例的流程图;
[0019]图6是示出根据本申请实施例的多任务控制设备的配置示例的框图;
[0020]图7是示出根据本申请另一实施例的多任务控制设备的配置示例的框图;
[0021]图8是示出根据本申请又一实施例的多任务控制设备的配置示例的框图;
[0022]图9是示出根据本申请再一实施例的多任务控制设备的配置示例的框图;
[0023]图10是示出根据本申请另一实施例的多任务控制设备的配置示例的框图;
[0024]图11是示出根据本申请又一实施例的多任务控制设备的配置示例的框图;
[0025]图12是示出根据本申请再一实施例的多任务控制设备的配置示例的框图;
[0026]图13是示出根据本申请实施例的工业控制系统的配置示例的框图;以及
[0027]图14是示出实现本申请的方法和设备的计算机的示例性结构的框图。
【具体实施方式】
[0028]下面参照【专利附图】
附图
【附图说明】本申请的实施例。应注意,为了清楚的目的,附图和说明中省略了与本申请无关的、本领域普通技术人员已知的部件和处理的表示和描述。
[0029]为便于说明,首先如下定义依赖关系:
[0030]数据依赖:任务j数据依赖于任务i是指任务j的开始或执行过程中需要任务i的输出结果;
[0031]控制依赖:任务j控制依赖于任务i是指由任务i的结果确定是否需要执行任务j,具体来说,任务j的执行本身可以独立于任务i,即无论任务i是否执行以及执行结果如何,任务j的执行和执行结果都不受影响,然而在任务i的结果表明不需要执行任务j的情况下,任务j的执行和执行结果不再有意义。
[0032]另外,作为本申请实施例的多任务控制方法的控制对象的多个任务中的至少部分任务可以是复合任务,即包括多个子任务的任务。对于复合任务,数据依赖可以进一步分为以下依赖关系:
[0033]弱数据依赖(下文中简称“弱依赖”):任务j弱依赖与任务i是指任务j的起始子任务不基于任务i的结果,而任务j的至少一个后续子任务基于任务i的结果;以及
[0034]强数据依赖(下文中简称“强依赖”):任务j强依赖于任务i是指任务j的开始必须依赖于任务i的结束。
[0035]接下来,参照图1说明根据本申请实施例的多任务控制方法。
[0036]如图1所示,该多任务控制方法在步骤SllO开始。
[0037]然后,在步骤S120,根据多个任务中的未开始任务对未完成任务的依赖关系确定未开始任务的优先级,其中,将不依赖于未完成任务的未开始任务的优先级设置为高于依赖于未完成任务的未开始任务的优先级,将弱依赖于未完成任务的未开始任务的优先级设置为高于控制依赖于未完成任务的未开始任务的优先级。其中,未完成任务既可以包括已开始但未执行完的任务,也可以包括尚未开始的任务。
[0038]接下来,在步骤S130,根据步骤S120中确定的优先级选择要开始的任务。
[0039]本文中提到的任务的开始默认地是在计算资源允许的情况下进行的。计算资源情况例如包括用于执行多个任务的计算设备的处理能力,其决定了可并行执行的任务的数量
以及计算量等。
[0040]另外,“并行执行”可以根据计算资源的情况而具有不同的形式。例如,在由多个处理器执行多个任务的情况下,可以同时开始并同时执行多个任务,即,可以同时进行多个工作流。而在由单个处理器执行多个任务的情况下,多个任务在严格的意义上不能被同时处理,其整体上仍然是一个工作流。对于以单个工作流处理多个已开始的任务的情况,与前面提到的相继执行多个任务的情况相比,由于只要资源存在空闲(该空闲可以包括没有任务要处理的情况下的空闲以及其他已开始而未完成任务的等待期间的空闲)就可以进行任务的处理,因此可能同时存在多个任务已开始而未完成的情况,从而相当于实现了某种程度的并行处理,从而可以提高运行效率。在多个工作流的情况下,在某一个工作流涉及多个任务的情况下,与前述单个工作流的情形是类似的。在本文中,“并行”既可以指上述多工作流的情况,也可以指以单个工作流“同时”处理多个任务的情况。
[0041]利用上述方法,能够根据所确定的优先级尽可能多地并行开始多个任务,换句话说,可以根据优先级尽早地开始任务。因此,例如处理器的计算资源只要存在空闲就可以开始新的任务或者对悬置后又重新满足继续执行条件的任务进行处理。因此,与上一任务完成之后才开始下一任务的常规方式相比,能够充分利用资源的空闲时间,从而提高运行效率。
[0042]另一方面,由于上述方法根据优先级来选择要开始的任务,从而避免了不必要的过度占用资源。例如,在未开始的本任务依赖于未完成的其他任务的情况下,有可能需要等待其他任务结束之后才能完成本任务,因此,与提早开始不依赖于其他任务的任务相比,提早开始本任务的潜在效果较小。通过将不依赖于未完成任务的任务的优先级设置为高于依赖于未完成任务的任务的优先级,并根据优先级选择要开始的任务,能够进一步提高处理效率。
[0043]具体地,根据一个实施例,即使被依赖的任务尚未完成,仍能开始执行弱依赖于或控制依赖于该被依赖的任务的任务。另外,可以在被弱依赖的任务已经完成时继续执行弱依赖于该任务的任务的后续子任务。通过提前进行弱依赖于其他任务的复合任务的部分子任务或者提前进行控制依赖于其他任务的任务,可以充分利用资源、提高运行效率。
[0044]总之,对于强依赖于未完成任务的任务,需要等待其所强依赖的任务的结束才可以开始本任务。对于不依赖和控制依赖于未完成任务的任务,可以在任意时间开始,其结束时间除了受资源的约束之外,不受其他任务的直接影响。而对于弱依赖于未完成任务的任务来说,可以在任意时间开始,但是其后续子任务的执行也就是整个任务的结束依赖于其所弱依赖的任务。
[0045]如前所述,虽然弱依赖任务的完成需要依赖于其他任务,但弱依赖任务的结果通常是有用的,而控制依赖任务的结果是否有用还有待确定,因此将控制依赖任务的优先级设置为低于弱依赖任务的优先级有利于提高整体运行效率。
[0046]另外,作为控制对象的多个任务中可能存在这样的任务,其分别以不同的依赖方式依赖于不同的未完成任务,下文中将此类任务称为复合依赖任务。复合依赖任务可以具有以下依赖关系中的至少两个:不依赖于未完成任务中的第一部分任务;弱依赖于未完成任务中的第二部分任务;控制依赖于未完成任务中的第三部分任务;以及强依赖于未完成任务中的第四部分任务。在这种情况下,根据本申请一个实施例的多任务管理方法可以基于上述各种依赖关系以及在各依赖关系中复合依赖任务所依赖的未完成任务的数量来确定优先级。
[0047]具体地,可以首先根据依赖关系的类型确定总体优先级,对于具有相同依赖类型的复合依赖任务,可以进一步根据其所依赖的未完成任务的数量进一步区分优先级。
[0048]例如,在一个复合依赖任务所具有的依赖关系中包含强依赖关系的情况下,其只能在其所强依赖的任务完成之后开始,因此可以将其优先级设置为低于不包含强依赖关系的任务。
[0049]又例如,当复合依赖任务既弱依赖于一部分未完成任务、又控制依赖于另一部分未完成任务的情况下,可以进而根据其依赖的任务的数量确定优先级。例如,对于两个既弱依赖于一部分未完成任务、又控制依赖于另一部分未完成任务的复合依赖任务:可以将包含控制依赖关系较多的那个复合依赖任务设置为优先级较低,也就是说,首先考虑控制依赖关系的数量;在控制依赖关系的数量相同时,可以通过比较弱依赖关系的数量来确定优先级,其中弱依赖关系的数量越多优先级越低。
[0050]此外,也可以对各类依赖关系确定权重,并且例如根据如下等式(I)针对每个复合
依赖任务确定加权和作为其依赖性因数:
【权利要求】
1.一种多任务控制方法,其中所述多个任务中的至少部分任务各自包括多个子任务,所述方法包括:
根据所述多个任务中的未开始任务对未完成任务的依赖关系确定未开始任务的优先级,以及 根据所述优先级选择要开始的任务, 其中,将不依赖于所述未完成任务的未开始任务的优先级设置为高于依赖于所述未完成任务的未开始任务的优先级,将弱依赖于所述未完成任务的未开始任务的优先级设置为高于控制依赖于所述未完成任务的未开始任务的优先级,其中所述弱依赖是指本任务的起始子任务不基于其他任务的结果而至少一个后续子任务基于所依赖的任务的结果,所述控制依赖是指由所依赖的任务的结果确定是否需要执行本任务。
2.根据权利要求1所述的方法,其中,即使被依赖的任务尚未完成,仍能开始执行弱依赖于或控制依赖于所述被依赖的任务的任务。
3.根据权利要求2所述的方法,其中,在被弱依赖的任务已经完成时继续执行弱依赖于所述已完成的任务的任务的后续子任务。
4.根据权利要求1所述的方法,其中,所述多个任务中的至少一个任务具有以下依赖关系中的至少两个: 不依赖于所述未完成任务中的第一部分任务; 弱依赖于所述未完成任务中的第二部分任务; 控制依赖于所述未完成任务中的第三部分任务;以及 强依赖于所述未完成任务中的第四部分任务, 其中,所述强依赖是指本任务的开始必须依赖于其他任务的结束, 其中,基于所述各种依赖关系以及在各依赖关系中该至少一个任务所依赖的所述未完成任务的数量来确定所述优先级。
5.根据权利要求1至4中任一项所述的方法,其中,所述至少部分任务需要相应的关联设备的响应,并且所述至少部分任务各自包括下述子任务:准备及发送对相应的关联设备的请求的请求子任务,获取所述关联设备的响应的响应获取子任务,以及处理所述响应的响应处理子任务,并且 其中所述弱依赖是指本任务的响应处理子任务依赖于其他任务的结果。
6.根据权利要求5所述的方法,还包括: 在弱依赖于未完成任务的本任务的响应获取子任务已经从其相应的关联设备接收到响应的情况下,确定所述本任务是否接收到其所弱依赖的任务的结果; 在所述确定为否的情况下,保存所述响应,等待其所弱依赖的任务的完成;以及 在所述确定为是的情况下,在优先级允许的情况下开始该本任务的响应处理子任务。
7.根据权利要求5所述的方法,还包括: 在本任务接收到其所弱依赖的任务的结果的情况下,确定所述本任务是否已从其相应的关联设备接收到响应; 在所述确定为是的情况下,在优先级允许的情况下开始该本任务的响应处理子任务; 在所述确定为否的情况下,保存所述结果,等待该本任务的响应获取子任务的完成。
8.根据权利要求1至4中任一项所述的方法,还包括:在本任务已完成的情况下,确定所述本任务是否被其他任务依赖; 在所述确定为是的情况下,将所述本任务的结果提供给依赖于所述本任务的任务。
9.根据权利要求1至4中任一项所述的方法,还包括: 在要开始的本任务控制依赖于其他任务的情况下,确定该其他任务是否已经完成; 如果尚未完成,则在优先级允许的情况下开始本任务; 如果已经完成,则根据该其他任务的结果以及优先级,确定是否开始本任务。
10.根据权利要求1至4中任一项所述的方法,还包括: 在已完成的本任务控制依赖于其他任务的情况下,确定该其他任务是否已经完成; 如果尚未完成,则保存所述本任务的结果,等待该其他任务的完成; 如果已经完成,则根据该其他任务的结果,确定是丢弃还是使用所述本任务的结果。
11.根据权利要求1至4中任一项所述的方法,还包括: 在本任务已完成的情况下,对于控制依赖于所述本任务的任务: 如果尚未执行,则根据所述本任务的结果确定是否需要执行; 如果已经执行,则根据所述本任务的结果,确定是丢弃还是使用所述控制依赖于所述本任务的任务的结果。
12.根据权利要求1至4中任一项所述的方法,还包括: 在本任务完成时重新确定未开始任务对未完成任务的依赖关系,进而确定未开始任务的优先级并选择要开始的任务。
13.一种多任务控制设备,其中所述多个任务中的至少部分任务各自包括多个子任务,所述设备包括: 优先级确定装置,被配置为根据所述多个任务中的未开始任务对未完成任务的依赖关系确定未开始任务的优先级,以及 任务选择装置,被配置为根据所述优先级选择要开始的任务, 其中,所述优先级确定装置被配置为:将不依赖于所述未完成任务的未开始任务的优先级设置为高于依赖于所述未完成任务的未开始任务的优先级,将弱依赖于所述未完成任务的未开始任务的优先级设置为高于控制依赖于所述未完成任务的未开始任务的优先级,其中所述弱依赖是指本任务的起始子任务不基于其他任务的结果而至少一个后续子任务基于所依赖的任务的结果,所述控制依赖是指由所依赖的任务的结果确定是否需要执行本任务。
14.根据权利要求13所述的设备,其中,所述任务选择装置被配置为:即使被依赖的任务尚未完成,仍能开始执行弱依赖于或控制依赖于所述被依赖的任务的任务。
15.根据权利要求14所述的设备,其中,所述任务选择装置被配置为:在被弱依赖的任务已经完成时继续执行弱依赖于所述已完成的任务的任务的后续子任务。
16.根据权利要求13所述的设备,其中,所述多个任务中的至少一个任务具有以下依赖关系中的至少两个: 不依赖于所述未完成任务中的第一部分任务; 弱依赖于所述未完成任务中的第二部分任务; 控制依赖于所述未完成任务中的第三部分任务;以及 强依赖于所述未完成任务中的第四部分任务,其中,所述强依赖是指本任务的开始必须依赖于其他任务的结束, 其中,所述优先级确定装置被配置为基于所述各种依赖关系以及在各依赖关系中该至少一个任务所依赖的所述未完成任务的数量来确定所述优先级。
17.根据权利要求13至16中任一项所述的设备,其中,所述至少部分任务需要相应的关联设备的响应,并且所述至少部分任务各自包括下述子任务:准备及发送对相应的关联设备的请求的请求子任务,获取所述关联设备的响应的响应获取子任务,以及处理所述响应的响应处理子任务,并且 其中所述弱依赖是指本任务的响应处理子任务依赖于其他任务的结果。
18.根据权利要求17所述的设备,其中,所述关联设备为远程设备。
19.根据权利要求17所述的设备,还包括: 结果确定装置,被配置为在弱依赖于未完成任务的本任务的响应获取子任务已经从其相应的关联设备接收到响应的情况下,确定所述本任务是否接收到其所弱依赖的任务的结果; 第一存储装置,被配置为在所述结果确定装置的所述确定为否的情况下,保存所述响应;以及 第一子任务启动装置,被配置为在所述结果确定装置的所述确定为是的情况下,在优先级允许的情况下开始该本任务的响应处理子任务。
20.根据权利要求17所述的设备,还包括: 响应确定装置,被配置为在本任务接收到其所弱依赖的任务的结果的情况下,确定所述本任务是否已从其相应的关联设备接收到响应; 第二子任务启动装置,被配置为在所述响应确定装置的所述确定为是的情况下,在优先级允许的情况下开始该本任务的响应处理子任务; 第二存储装置,被配置为在所述响应确定装置的所述确定为否的情况下,保存所述结果,以等待该本任务的响应获取子任务的完成。
21.根据权利要求13至16中任一项所述的设备,还包括: 依赖确定装置,被配置为在本任务已完成的情况下,确定所述本任务是否被其他任务依赖; 结果提供装置,被配置为在所述依赖确定装置的所述确定为是的情况下,将所述本任务的结果提供给依赖于所述本任务的任务。
22.根据权利要求13至16中任一项所述的设备,还包括: 第一控制依赖确定装置,被配置为在要开始的本任务控制依赖于其他任务的情况下,确定该其他任务是否已经完成; 任务启动装置,被配置为在所述第一控制依赖确定装置确定该其他任务尚未完成的情况下,在优先级允许的情况下开始本任务; 第一执行判断装置,被配置为在所述第一控制依赖确定装置确定该其他任务已经完成的情况下,根据该其他任务的结果以及优先级确定是否开始本任务。
23.根据权利要求13至16中任一项所述的设备,还包括: 第二控制依赖确定装置,被配置为在已完成的本任务控制依赖于其他任务的情况下,确定该其他任务是否已经完成;第三存储装置,被配置为在所述第二控制依赖确定装置确定该其他任务尚未完成的情况下,保存所述本任务的结果,以等待该其他任务的完成; 第一结果处置装置,被配置为在所述第二控制依赖确定装置确定该其他任务已经完成的情况下,根据该其他任务的结果,确定是丢弃还是使用所述本任务的结果。
24.根据权利要求13至16中任一项所述的设备,还包括: 第三控制依赖确定装置,被配置为在本任务已完成的情况下,确定控制依赖于所述本任务的任务; 第二执行判断装置,被配置为根据所述本任务的结果确定是否需要执行尚未执行的控制依赖于所述本任务的任务;以及 第二结果处置装置,被配置为根据所述本任务的结果确定是丢弃还是使用已执行的控制依赖于所述本任务的任务的结果。
25.根据权利要求13至16中任一项所述的设备,还包括: 依赖关系更新装置,被配置为在本任务完成时重新确定未开始任务对未完成任务的依赖关系, 其中,所述优先级确定装置根据最新确定的依赖关系确定未开始任务的优先级,并且 所述任务选择装置根据最新确定的优先级选择要开始的任务。
26.—种工业控制系统,包括: 中央控制器,用于执行多个任务; 工业设备,其与所述中央控制器通`信耦合以作为关联设备对所述多个任务中的至少一部分任务作出响应, 其中,所述中央控制器包括如权利要求13至25中任一项所述的多任务控制设备,以控制所述多个任务。
【文档编号】G06F9/38GK103677753SQ201210352581
【公开日】2014年3月26日 申请日期:2012年9月20日 优先权日:2012年9月20日
【发明者】宋向明 申请人:艾默生零售解决方案公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1