CN115794350A - 一种任务同步方法、装置和计算机可读介质 - Google Patents
一种任务同步方法、装置和计算机可读介质 Download PDFInfo
- Publication number
- CN115794350A CN115794350A CN202211638973.9A CN202211638973A CN115794350A CN 115794350 A CN115794350 A CN 115794350A CN 202211638973 A CN202211638973 A CN 202211638973A CN 115794350 A CN115794350 A CN 115794350A
- Authority
- CN
- China
- Prior art keywords
- task
- tasks
- overtime
- control period
- current control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004590 computer program Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 239000003086 colorant Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开一种任务同步方法、装置和计算机可读介质,获取当前控制周期内所有任务的调度结果,根据调度结果判断当前控制周期内超时任务个数是否小于任务总数,如果当前控制周期内的超时任务个数小于任务总数,确定当前控制周期中所有任务调度后的剩余时间,按照当前控制周期内超时任务的优先级依次执行超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所有任务调度后的剩余时间为零。本申请通过利用控制周期任务调度后的剩余时间处理该目标通道中的超时任务,从而提升执行任务程序的健壮性以及可用性。
Description
技术领域
本申请属于工业控制领域,尤其涉及一种任务同步方法、装置和计算机可读介质。
背景技术
目前系统程序中的任务在执行的过程中,会出现任务超时的情况,已知的解决办法有发出警告并停止超时任务,或者增加程序的执行时间处理超时任务,这两种解决办法降低了程序的健壮性以及可用性。
在工业控制领域,采用多重化冗余技术,屏蔽故障,利用系统的并联模型提高系统的可靠性以及安全性。在多重化冗余系统中,为保证系统的响应速度,在执行任务期间各个通道间的任务需要同步进行,然后I/O(Input/Output,输入/出)数据、变量在任务执行完之后才能进行表决。
具体的,在多重化技术中,每个通道都有其独立的控制器,独立的时钟在运行,每个通道的时间一般通过UTC(Universal Time Coordinated,协调世界时)时间进行时间同步,通过控制周期同步策略确保所有通道的控制周期同步,在单任务系统中保证每个通道内的任务的开始时间在相同的周期号,完成时间也一致,在多任务系统中,通过从控制周期达到任务周期的整数倍时开始执行任务,其中任务是由多个控制周期完成的,从而确保每个通道时间是一致的。
在任务执行的过程中,当用户逻辑执行的分支不同或者用户程序执行过程中出现异常时,就可能出现任务超时的情况,为了保证不让用户程序超负荷执行同时要保证系统的响应速度,这是就需要通过执行超时调整策略同步任务。已知技术中的超时调整有两种办法,第一种是系统直接发出警告并停止任务,等待系统复位之后保证任务同步。第二种是切换至备用资源完成超时任务从而达到任务同步的目的。但是这两种方法都有其弊端,第一种解决办法执行之后会导致程序的健壮性变差,对于之后再出现规范以外的情况的处理能力变差,这就可能会影响到程序的后续执行。第二种解决办法,需要预留时间片,在出现超时任务时启用这些时间片完成超时任务,但是如果任务正常调度就用不到这些预留的时间片可能会造成资源浪费。
因此急需一种既可以处理超时任务又不降低程序可用性的任务同步方法。
发明内容
有鉴于此,本申请提供一种任务同步方法、装置和计算机可读介质,以用于解决已知技术中的解决任务超时的方法中出现的降低程序健壮性以及可用性的问题。
为解决上述问题,本申请提供如下方案:
一种任务同步方法,包括:
获取当前控制周期内所有任务的调度结果;
根据所述调度结果判断所述当前控制周期内超时任务个数是否小于任务总数;
如果所述当前控制周期内的所述超时任务个数小于任务总数,确定所述当前控制周期中所有任务调度后的剩余时间;
按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。
可选的,在获取当前控制周期内所有任务的调度结果之前,还包括:
配置当前控制周期内所有任务各自对应的负荷比例;
根据所述各个任务分别对应的负荷比例,确定所述各个任务在其对应的控制周期中的执行时间;
根据任务在其对应的各个控制周期中的执行时间确定所述任务执行的控制周期数。
可选的,所述目标通道中的各个任务都有其对应的任务周期,还包括:
如果所述目标通道内的所述超时任务中存在超出设定任务周期阈值的任务,停止该任务并报警。
可选的,所述按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零,包括:
按照所述当前控制周期内内各个超时任务的优先级确定所述各个超时任务的执行顺序;
按照所述各个超时任务的执行顺序依次执行超时任务,循环上述步骤直至所述目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。
可选的,所述按照所述当前控制周期内各个超时任务的优先级确定所述各个超时任务的执行顺序,包括:
通过所述超时任务各自设定的控制周期数与超时控制周期数的差值确定所述超时任务下一任务到来前的控制周期数,所述下一任务到来前的控制周期数为用于进行超时任务调整的控制周期的个数;
通过所述超时任务下一任务到来前的控制周期数与所述超时任务设定的控制周期数的比值确定所述超时任务的优先级,其中,所述比值与所述超时任务的优先级呈反相关关系。
可选的,还包括:
响应任务启动命令,通过所述目标通道中的当前控制周期号与各个任务各自设定的控制周期数确定所述目标通道中各个任务的执行时间;其中,所述当前控制周期号为接收任务启动命令时所述目标通道中对应的控制周期号。
可选的,所述通过所述目标通道中的当前控制周期号与各个任务各自设定的控制周期数确定所述目标通道中各个任务的执行时间,包括:
通过所述目标通道中的当前控制周期号与所述各个任务各自设定的控制周期数比值的余数,判断所述目标通道中的各个任务的执行时间;
当所述目标通道中的当前控制周期号与任务设定的控制周期数比值的余数低于所述任务设定的控制周期数的一半时,则在所述当前控制周期号执行该任务;
当所述目标通道中的当前控制周期号与任务设定的控制周期数比值的余数高于所述任务设定的控制周期数的一半时,则在所述当前控制周期号的下一控制周期号执行该任务。
可选的,还包括:
响应任务停止命令,计算目标通道内所有控制周期中所有任务调度后的剩余时间;
按照各个剩余任务所需的控制周期数由大到小进行排序得到剩余任务执行顺序;
将所述剩余时间按照所述剩余任务执行顺序依次分配给所述剩余任务直至所有剩余任务执行完毕。
一种任务同步装置,包括:
调度结果获取单元,用于获取当前控制周期内所有任务的调度结果;
判断单元,用于根据所述调度结果判断所述当前控制周期内超时任务个数是否小于任务总数;
确定单元,用于如果所述当前控制周期内的所述超时任务个数小于任务总数,确定所述当前控制周期中所述所有任务调度后的剩余时间;
任务执行单元,用于按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。
一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时,能用于实现如上文任一项所述的任务同步方法。
由以上方案可知,本申请公开的任务同步方法、装置和计算机可读介质,获取当前控制周期内所有任务的调度结果,根据所述调度结果判断所述当前控制周期内超时任务个数是否小于任务总数,如果所述当前控制周期内的所述超时任务个数小于任务总数,确定所述当前控制周期中所有任务调度后的剩余时间,按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。本申请通过利用目标通道中当前控制周期中所有任务调度后的剩余时间处理当前控制周期中的超时任务,从而提升任务程序的健壮性以及可用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请提供的任务同步方法的一种流程示意图;
图2是本申请提供的任务同步方法的一示例性应用流程示意图;
图3是本申请提供的任务同步方法的一种单个任务超时时序图;
图4是本申请提供的任务同步方法的一种多个任务超时时序图;
图5是本申请提供的任务同步方法的另一种流程示意图;
图6是本申请提供的任务同步方法的另一种流程示意图;
图7是本申请提供的任务同步方法的一示例性应用流程图;
图8是本申请提供的任务同步方法的一种任务启动时序图;
图9是本申请提供的任务同步方法的一种任务停止流程示意图;
图10是本申请提供的任务同步方法的一示例性应用流程图;
图11是本申请提供的任务同步方法的一种任务停止时序图;
图12是本申请提供的任务同步方法的组成结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
现如今,在系统程序任务的执行过程中,会出现任务超时的情况,已知的解决办法有发出警告并停止超时任务,或者增加程序的执行时间处理超时任务。
已知技术中的这两种解决任务超时问题的办法降低了程序的健壮性以及可用性。为了解决上述问题,本申请提出了一种任务同步方法、装置和计算机可读介质,通过利用目标通道中所有控制周期中所有任务调度后的剩余时间处理该目标通道中的超时任务,从而提升任务程序的健壮性以及可用性。
参见图1所示,本申请提供的任务同步方法的实现流程,包括:
步骤101、获取当前控制周期内所有任务的调度结果。
需要说明的是,本申请的应用场景为,在不同的通道中执行同样的任务,其中一个通道发生故障,则需要应用基于多任务时间片轮询调度策略进行任务同步,从而保证各个通道内的任务开始时间和任务结束时间继续保持一致。
通道内有多个任务执行,每个任务都有其所需的任务周期,任务周期是控制周期的整数倍,每个任务都会进行预配置,决定在每个控制周期内的执行时间,这样,每个控制周期内可以同时执行多个任务,同样,每个任务由一个或多个控制周期完成,同时,每个控制周期内执行的任务不会占用全部的控制周期,每个控制周期内都会有剩余时间,这样,就可以利用所有控制周期的剩余时间执行通道内的超时任务从而完成超时任务调整。
这里,在经过任务调度之后就可以确定每个控制周期中是否有超时任务以及超时任务的个数。
步骤102、根据所述调度结果判断所述当前控制周期内超时任务个数是否小于任务总数。
进行任务调度之后就可以知道当前控制周期内的超时任务以及超时任务的数量,这决定着能否进行超时任务调整,比如,用户程序的任务总数为m,超时任务数为n,当任务数量与超时任务数相等时,即m=n时,在超时任务的控制周期内无法进行调整,就得结束本控制周期的任务调度,进入下一控制周期。
也就是当超时任务数n小于任务总数m且大于0的时候,是可以进行超时任务调整的。
步骤103、如果所述当前控制周期内的所述超时任务个数小于任务总数,确定所述当前控制周期中所有任务调度后的剩余时间。
具体的,因为每个控制周期中配置的每个任务的执行时间的总时长一般不会超过控制周期,且有的任务会提前完成,所以任务调度结束之后会有多余的时间片。这里,需要确定出现超时任务的通道中所有控制周期中的剩余时间片。
步骤104、按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。
由于每个通道中的超时任务不只有一个,各个超时任务的调整顺序可以通过各个超时任务的优先级进行确定,超时任务的优先级首先通过其自身设定的控制周期数与超时控制周期数的差值确定出该超时任务下一任务到来前的控制周期数,这个下一任务到来前的控制周期数是用来进行该超时任务调整以及其他任务执行的控制周期数。然后通过该超时任务下一任务到来前的控制周期数与该超时任务设定的控制周期数的比值的大小,与其他超时任务的比值的大小进行对比,得到该超时任务的超时调整顺序。比值与超时任务的优先级呈反相关关系,比值大的优先级低,比值小的优先级高。例如,超时任务a与超时任务b两个超时任务的设定的控制周期数都是20个,超时任务a的下一任务到来前的控制周期数为5,超时任务b下一任务到来前的控制周期数为10,超时任务a下一任务到来前的控制周期数与设定的控制周期数的比值小于超时任务b下一任务到来前的控制周期数与设定的控制周期数的比值,相应的,超时任务a的优先级高于超时任务b,可以理解是,超时任务a只有5个控制周期进行超时任务调整,而超时任务b有10个控制周期进行调整,所以,超时任务a进行超时任务调整的情况更加的紧急。
根据超时任务的优先级从高到底确定超时任务的超时调整顺序,按照该顺序将所有控制周期中的所有任务调度后的剩余时间片依次进行超时任务的调整,直到当前控制周期中的剩余时间片为零,进入下一具有超时任务的控制周期中进行超时调整。
综上所述,本申请公开的任务同步方法,获取当前控制周期内所有任务的调度结果,根据所述调度结果判断所述当前控制周期内超时任务个数是否小于任务总数,如果所述当前控制周期内的所述超时任务个数小于任务总数,确定所述当前控制周期中所有任务调度后的剩余时间,按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。本申请通过利用目标通道中当前控制周期中所有任务调度后的剩余时间处理当前控制周期中的超时任务,从而提升任务程序的健壮性以及可用性。
可选的,在一实施例中,参见图2,提供了本申请任务同步方法的一示例性应用流程示意图。
首先将通道中的控制周期内的所有任务按照调度策略调度一遍,从而能判断出是否有超时任务,如果没有超时任务,则不需要进行超时任务调整,结束本周期任务调度,下一周期开始,如果存在超时任务,就需要判断是否所有任务都超时,如果所有任务都超时,如果所有任务都超时,本周期的超时任务无法进行调整,也是结束本周期任务调度,下一周期开始,如果超时任务小于该控制周期内执行任务的总数,则进行超时任务调整。每个任务都有其设定的任务周期,如果超时的任务中存在超时其对应的任务周期的k个,首先需要停止该任务,然后进行剩下其余超时任务的调整。如果不存在上述的超时任务,进行所有超时任务的超时调整,先计算本周期所有任务调度之后的时间片,然后通过公式cycle_adjust/cycle_set计算每个超时任务的优先级,其中,cycle_adjust为下一任务周期到来前的控制周期数,cycle_set为任务组态设定的周期数,首先通过cycle_adjust=cycle_set-cycle_timeout计算出每个超时任务下一任务周期到来前的控制周期数,cycle_timeout为任务实际超时的周期数,然后通过公式cycle_adjust/cycle_set计算每个超时任务的优先级,优先级最高的超时任务先进行超时任务的调整,直到剩余时间片为零。
可选的,如图3所示,进一步提供了本申请任务同步方法的一单个任务超时调整时序图。
图中分别有用户程序创建的三个任务,任务1、任务2、任务3,每个任务代表的颜色不同,颜色最深的部分代表剩余时间,颜色最浅的部分是每个控制周期中的剩余时间,颜色最深的部分与颜色最浅的部分的功能相同,都可以用于系统程序执行。
这里,假设任务1设置为1周期任务,任务2设置为2周期任务,任务3设置为4周期任务。任务1和任务2都在正常调度,任务3在第4个周期,也就是控制周期号为3的周期调度完之后任务还没有完成,在第5个周期才完成,超时了1个周期,需要启动超时调整策略。通过cycle_adjust=cycle_set-cycle_timeout计算出任务3的下一任务周期到来前的控制周期数为cycle_adjust=4-1=3,在接下来的三个周期,需要将剩余的时间片也就是颜色最深的部分借给任务3这个超时任务。在第8个周期结束之前,完成了任务3,这样就完成了单个超时任务的调整。
可选的,如图4所示,进一步提供了本申请任务同步方法的一多个任务超时调整时序图。
图中分别有用户程序创建的三个任务,任务1、任务2、任务3,每个任务代表的颜色不同,颜色最深的部分代表剩余时间,颜色最浅的部分是每个控制周期中的剩余时间,颜色最深的部分与颜色最浅的部分的功能相同,都可以用于系统程序执行。
设定任务1为1周期任务,任务2为2周期任务,任务3为4周期任务,任务1在执行过程中没有超时,任务2在周期号为3的时候应该完成,但是在周期号为4的时候才完成,任务3在周期号为3的时候应该完成,但在周期号为4的时候才完成,这时在周期号为4的时候,出现了两个超时任务,先计算优先级,任务2的优先级为:1/2=50%,任务3的优先级:3/4=75%,百分比低的优先级高,任务2用周期号为4的剩余时间片进行调整,在周期号为5的时候,任务2调整完毕,然后将剩余时间片给任务3进行调整,在周期号为6和7时,只有任务3超时,将所有剩余时间都给任务3,任务3在周期号为7的时候完成。
可选的,在一实施例中,参见图5,本申请提供的任务同步方法的另一种流程示意图。
在获取目标通道内所有任务的调度结果之前,还包括以下步骤。
步骤201、配置目标通道内所有任务各自对应的负荷比例。
每个人任务在每个控制周期内都有一定的符合比例,提前进行配置能够保证每个任务的负荷在50%以下,可以保证有的任务能够提前完成,并且能出现剩余的时间片供超时任务进行调整。
步骤202、根据所述各个任务分别对应的负荷比例,确定所述各个任务在其对应的控制周期中的执行时间。
每个任务都有其对应的任务周期,按照设置的符负荷比例在每个控制周期内分配一定的时间,任务周期是控制周期的整数倍。示例性的,一个控制周期可能是100ms,一个任务的任务周期可能是1s,该任务在控制周期中的负荷比例为10%,那么这个任务可以在每个控制周期中执行10ms。
步骤203、根据任务在其对应的各个控制周期中的执行时间确定所述任务执行的控制周期数。
具体的,按照上文提到的例子,这时,这个任务需要10个控制周期,才能执行完成。
完成上述配置之后继续执行步骤101及以下步骤完成超时任务调整。
可选的,在一实施例中,参见图6,本申请提供的任务同步方法的另一种流程示意图。
结合图7所示的任务同步方法的一示例性应用流程图。
在任务开始之前,需要用户发出任务启动命令,但有时收到任务启动命令的控制周期可能不是任务周期的整数倍,这样会导致不同通道的任务不能同步执行。已知技术中,对于单个通道内的多个任务采用的是同步启动的方法,单个通道内的每个任务都在任务周期整数倍时启动,这样可以做到在多个通道内的相同任务的启动时间一致,但是,任务命令的发出时间是随机的,所有任务不会立即启动,这就会导致启动时间过长,为解决上述问题,本申请提出,利用通道中每个任务的多余时间,进行任务启动调整,从而能使通道内的任务快速的启动。
步骤301、响应任务启动命令,通过所述目标通道中的当前控制周期号与各个任务各自设定的控制周期数确定所述目标通道中各个任务的执行时间;其中,所述当前控制周期号为接收任务启动命令时所述目标通道中对应的控制周期号。
具体的,在使用任务启动策略的时候,需要提前设置超时旁路,来屏蔽在这个过程中出现超时任务时系统可能会发出的警报,这样在调整的过程中就不会受到干扰。
在任务启动调整的策略如下:收到任务启动命令之后,通过通道中的当前控制周期号,也就是接受到任务启动命令的控制周期号,和通道中各个任务设定的控制周期数的比值的余数决定要不要立即启动该任务。
当通道中的当前控制周期号与任务设定的控制周期数比值的余数低于任务设定的控制周期数的一半时,则在当前控制周期号执行该任务,当目标通道中的当前控制周期号与任务设定的控制周期数比值的余数高于任务设定的控制周期数的一半时,则在当前控制周期号的下一任务周期的起始点执行该任务。
可选的,如图8所示,进一步提供了本申请任务同步方法的一种任务启动时序图。
图中分别有用户程序创建的三个任务,任务1、任务2、任务3,每个任务代表的颜色不同,颜色最深的部分代表剩余时间,颜色最浅的部分是每个控制周期中的剩余时间,颜色最深的部分与颜色最浅的部分的功能相同,都可以用于系统程序执行。
任务1为3周期任务,任务2为8周期任务,任务3为4周期任务。假设在控制周期号为3时接收到任务启动命令,任务1位周期任务,计算当前控制周期号与任务3设定的控制周期数比值的余数为0,小于任务3设定的控制周期数的一半,任务1会被调度。任务2按照任务启动策略,计算当前控制周期号与任务2设定的控制周期数比值的余数为3=3%8,小于8的50%,任务2也在当前控制周期号被调度,任务3,按照任务启动策略,3%4=3,余数为3,大于4的50%,所以,任务3不会在当前控制周期号被调度,而是在下一控制周期号,也就是周期号为4的时候开始调度。
可选的,在一实施例中,参见图9,本申请提供的任务同步方法的一种任务停止流程示意图。
在已知技术中,接收到任务停止命令后,采用的是逐步停止的方式,这样的方式会耗费一定的时间,导致系统响应任务停止命令的时间过长。本申请提出,利用任务停止策略,解决上述问题。
结合图10所示的任务同步方法的一示例性应用流程图。
步骤401、响应任务停止命令,计算目标通道内所有控制周期中所有任务调度后的剩余时间。
具体的,接收到任务停止命令之后,计算当前控制周期内的剩余的时间片。
步骤402、按照各个剩余任务所需的控制周期数由大到小进行排序得到剩余任务执行顺序。
按照剩余任务的任务周期数进行排序,任务周期最大的也就是所需控制周期数多的任务可以优先得到剩余的时间片的使用权。也就是任务周期大的优先级高。
步骤403、将所述剩余时间按照所述剩余任务执行顺序依次分配给所述剩余任务直至所有剩余任务执行完毕。
按照任务的优先级,执行剩余的任务直到所有任务执行完毕。
可选的,如图11所示,进一步提供了本申请任务同步方法的一种任务停止时序图。
图中分别有用户程序创建的三个任务,任务1、任务2、任务3,每个任务代表的颜色不同,颜色最深的部分代表剩余时间,颜色最浅的部分是每个控制周期中的剩余时间,颜色最深的部分与颜色最浅的部分的功能相同,都可以用于系统程序执行。
任务1为3周期任务,任务2为8周期任务,任务3为4周期任务。假设在控制周期号为3的时候接收到任务停止命令,任务1刚好调度完,停止任务,任务2为8周期任务,还没有执行完,任务3为4周期任务,也没有执行完,相比较来说,任务2比任务3的任务周期数大,所以,将剩余的时间片优先分给任务2,执行完毕后执行任务3。从图中可以看出,任务周期号为5的时候,只剩下任务2,所有的时间都给任务2。控制周期号为5的时候任务执行完毕并结束任务。
对于上述任务同步方法,本申请还提供了一种任务同步装装置,该装置的组成如图12所示,包括:
调度结果获取单元10,获取当前控制周期内所有任务的调度结果;
判断单元20,用于根据所述调度结果判断所述当前控制周期内超时任务个数是否小于任务总数;
确定单元30,用于如果所述当前控制周期内的所述超时任务个数小于任务总数,确定所述当前控制周期中所有任务调度后的剩余时间;
任务执行单元40,用于按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。
在一实施方式中,在获取当前控制周期内所有任务的调度结果之前,上述装置还包括:
预配置单元,用于配置当前控制周期内所有任务各自对应的负荷比例;根据所述各个任务分别对应的负荷比例,确定所述各个任务在其对应的控制周期中的执行时间;根据任务在其对应的各个控制周期中的执行时间确定所述任务执行的控制周期数。
在一实施方式中,所述目标通道中的各个任务都有其对应的任务周期,上述装置还包括:
兼容处理单元,用于如果所述目标通道内的所述超时任务中存在超出设定任务周期阈值的任务,停止该任务并报警。
在一实施方式中,任务执行单元40,具体用于:
按照所述当前控制周期内各个超时任务的优先级确定所述各个超时任务的执行顺序;按照所述各个超时任务的执行顺序依次执行超时任务,循环上述步骤直至所述目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。
在一实施方式中,任务执行单元40,具体用于:
通过所述超时任务各自设定的控制周期数与超时控制周期数的差值确定所述超时任务下一任务到来前的控制周期数,所述下一任务到来前的控制周期数为用于进行超时任务调整的控制周期的个数;通过所述超时任务下一任务到来前的控制周期数与所述超时任务设定的控制周期数的比值确定所述超时任务的优先级,其中,所述比值与所述超时任务的优先级呈反相关关系。
在一实施方式中,上述装置还包括:
任务启动单元,用于响应任务启动命令,通过所述目标通道中的当前控制周期号与各个任务各自设定的控制周期数确定所述目标通道中各个任务的执行时间;其中,所述当前控制周期号为接收任务启动命令时所述目标通道中对应的控制周期号。
在一实施方式中,任务启动单元,具体用于:
通过所述目标通道中的当前控制周期号与所述各个任务各自设定的控制周期数比值的余数,判断所述目标通道中的各个任务的执行时间;当所述目标通道中的当前控制周期号与任务设定的控制周期数比值的余数低于所述任务设定的控制周期数的一半时,则在所述当前控制周期号执行该任务;当所述目标通道中的当前控制周期号与任务设定的控制周期数比值的余数高于所述任务设定的控制周期数的一半时,则在所述当前控制周期号的下一控制周期号执行该任务。
在一实施方式中,上述装置还包括:
任务停止单元,用于响应任务停止命令,计算目标通道内所有控制周期中所有任务调度后的剩余时间;按照各个剩余任务所需的控制周期数由大到小进行排序得到剩余任务执行顺序;将所述剩余时间按照所述剩余任务执行顺序依次分配给所述剩余任务直至所有剩余任务执行完毕。
另外,本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时,能用于实现任务同步方法的各个处理步骤。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种任务同步方法,其特征在于,包括:
获取当前控制周期内所有任务的调度结果;
根据所述调度结果判断所述当前控制周期内超时任务个数是否小于任务总数;
如果所述当前控制周期内的所述超时任务个数小于任务总数,确定所述当前控制周期中所有任务调度后的剩余时间;
按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。
2.根据权利要求1所述的方法,其特征在于,在获取当前控制周期内所有任务的调度结果之前,还包括:
配置当前控制周期内所有任务各自对应的负荷比例;
根据所述各个任务分别对应的负荷比例,确定所述各个任务在其对应的控制周期中的执行时间;
根据任务在其对应的各个控制周期中的执行时间确定所述任务执行的控制周期数。
3.根据权利要求1所述的方法,其特征在于,所述目标通道中的各个任务都有其对应的任务周期,还包括:
如果所述目标通道内的所述超时任务中存在超出设定任务周期阈值的任务,停止该任务并报警。
4.根据权利要求1所述的方法,其特征在于,所述按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零,包括:
按照所述当前控制周期内各个超时任务的优先级确定所述各个超时任务的执行顺序;
按照所述各个超时任务的执行顺序依次执行超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所有任务调度后的剩余时间为零。
5.根据权利要求4所述的方法,其特征在于,所述按照所述当前控制周期内各个超时任务的优先级确定所述各个超时任务的执行顺序,包括:
通过所述超时任务各自设定的控制周期数与超时控制周期数的差值确定所述超时任务下一任务到来前的控制周期数,所述下一任务到来前的控制周期数为用于进行超时任务调整的控制周期的个数;
通过所述超时任务下一任务到来前的控制周期数与所述超时任务设定的控制周期数的比值确定所述超时任务的优先级,其中,所述比值与所述超时任务的优先级呈反相关关系。
6.根据权利要求1所述的方法,其特征在于,还包括:
响应任务启动命令,通过所述目标通道中的当前控制周期号与各个任务各自设定的控制周期数确定所述目标通道中各个任务的执行时间;其中,所述当前控制周期号为接收任务启动命令时所述目标通道中对应的控制周期号。
7.根据权利要求6所述的方法,其特征在于,所述通过所述目标通道中的当前控制周期号与各个任务各自设定的控制周期数确定所述目标通道中各个任务的执行时间,包括:
通过所述目标通道中的当前控制周期号与所述各个任务各自设定的控制周期数比值的余数,判断所述目标通道中的各个任务的执行时间;
当所述目标通道中的当前控制周期号与任务设定的控制周期数比值的余数低于所述任务设定的控制周期数的一半时,则在所述当前控制周期号执行该任务;
当所述目标通道中的当前控制周期号与任务设定的控制周期数比值的余数高于所述任务设定的控制周期数的一半时,则在所述当前控制周期号的下一控制周期号执行该任务。
8.根据权利要求1所述的方法,其特征在于,还包括:
响应任务停止命令,计算目标通道内所有控制周期中所有任务调度后的剩余时间;
按照各个剩余任务所需的控制周期数由大到小进行排序得到剩余任务执行顺序;
将所述剩余时间按照所述剩余任务执行顺序依次分配给所述剩余任务直至所有剩余任务执行完毕。
9.一种任务同步装置,其特征在于,包括:
调度结果获取单元,用于获取当前控制周期内所有任务的调度结果;
判断单元,用于根据所述调度结果判断所述当前控制周期内超时任务个数是否小于任务总数;
确定单元,用于如果所述当前控制周期内的所述超时任务个数小于任务总数,确定所述当前控制周期中所述所有任务调度后的剩余时间;
任务执行单元,用于按照所述当前控制周期内超时任务的优先级依次执行所述超时任务,循环上述步骤直至目标通道内存在超时任务的控制周期中所述所有任务调度后的剩余时间为零。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,能用于实现如权利要求1-8任一项所述的任务同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211638973.9A CN115794350A (zh) | 2022-12-20 | 2022-12-20 | 一种任务同步方法、装置和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211638973.9A CN115794350A (zh) | 2022-12-20 | 2022-12-20 | 一种任务同步方法、装置和计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794350A true CN115794350A (zh) | 2023-03-14 |
Family
ID=85426613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211638973.9A Pending CN115794350A (zh) | 2022-12-20 | 2022-12-20 | 一种任务同步方法、装置和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794350A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112508449A (zh) * | 2020-12-21 | 2021-03-16 | 北京元心科技有限公司 | 任务执行方法、装置、电子设备及计算机可读存储介质 |
-
2022
- 2022-12-20 CN CN202211638973.9A patent/CN115794350A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112508449A (zh) * | 2020-12-21 | 2021-03-16 | 北京元心科技有限公司 | 任务执行方法、装置、电子设备及计算机可读存储介质 |
CN112508449B (zh) * | 2020-12-21 | 2023-06-30 | 北京元心科技有限公司 | 任务执行方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110855536B (zh) | 运行控制方法、装置、家电设备以及存储介质 | |
CN115794350A (zh) | 一种任务同步方法、装置和计算机可读介质 | |
CN108024292B (zh) | 一种资源排除方法及装置 | |
JP7354114B2 (ja) | 帯域幅パートのメンテナンスのための方法および装置 | |
CN107977302B (zh) | 一种cpu使用率输出方法及装置 | |
JP3444146B2 (ja) | 通信制御装置 | |
US10803004B2 (en) | Modular UPS system and data transmission method for power device | |
CN112925631B (zh) | 一种任务调度方法、装置、电子设备和存储介质 | |
CN114244642B (zh) | 设备的控制方法及其装置、计算机可读存储介质、处理器 | |
US11018506B2 (en) | Smart grid timing synchronization method, system, device and computer readable storage medium | |
CN110266054A (zh) | 一种光储发电系统离网启动方法、光储发电设备及系统 | |
WO2012092762A1 (zh) | 一种终端物理层资源分配方法及系统 | |
CN111245071A (zh) | 一种模块化充电器的参数管理方法、系统及装置 | |
CN106982156B (zh) | 优先级设置方法、装置、通信系统、设备及可读存储介质 | |
CN112261512B (zh) | 非平衡轮询协议的主站遥控方法、装置、存储介质和设备 | |
CN113032128B (zh) | 一种多任务的控制方法、装置、电子设备及存储介质 | |
CN113973127B (zh) | 一种网络部署方法、装置及存储介质 | |
CN114609892A (zh) | 一种多任务控制系统快速冗余方法 | |
CN104427577B (zh) | 网络信号的搜索方法及装置 | |
CN109586978B (zh) | 总线拓扑网络自组网方法 | |
CN113507387B (zh) | 基于主从站协议控制系统及方法 | |
JP5078857B2 (ja) | リアルタイム制御ネットワークシステム | |
CN109947548B (zh) | 分配时间片的方法和装置及控制任务执行的方法和装置 | |
CN114779881B (zh) | 余度计算机的同步检测方法、装置、设备及存储介质 | |
CN114328002B (zh) | 一种编码器内数据采样方法、单片机及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: No. 309 Liuhe Road, Binjiang District, Hangzhou City, Zhejiang Province (High tech Zone) Applicant after: Zhongkong Technology Co.,Ltd. Address before: No. six, No. 309, Binjiang District Road, Hangzhou, Zhejiang Applicant before: ZHEJIANG SUPCON TECHNOLOGY Co.,Ltd. Country or region before: China |