基于令牌的任务调度方法与流程

文档序号:12662118阅读:249来源:国知局
基于令牌的任务调度方法与流程

本发明属于自动化控制领域,特别涉及基于令牌的任务调度方法。



背景技术:

流程工业优化控制过程中往往要求能够将装置的温度、液位、压力等指标控制在一定的范围内,这就需要在先控服务器上同时运行多个先进控制软件APC控制器(以下简称控制器)用以控制不同装置的不同指标。由于这些控制器每次运行时需要消耗大量的计算资源(如CPU、内存),因此若同时运行多个控制器的情况下会导致先控服务器(运行基于先进过程控制理论的控制器等优化类软件的高性能服务器)运行在高负荷状态,这将会导致其它控制器由于无法得到计算资源而无法进行优化计算,最终影响到装置的优化效果,更为严重的是由于先控服务器长期运行在高负荷状态,大大增加了其发生宕机等意外情况的概率,从而严重影响到控制系统的稳定性,带来生产上的安全隐患。

针对现有技术改进的实现方案是在控制器内部增加系统资源监控模块,通过实时监控先控服务器的系统资源使用情况用以确定是否需要延时执行。但是这种方案会发生需要延时的控制器在延时执行时刻系统依旧处于高负荷状态从而导致不断延时,继而发生不能及时运算从而导致无法稳定优化效果的情况。



技术实现要素:

为了解决现有技术中存在的缺点和不足,本发明提供了用于提高系统稳定性的基于令牌的任务调度方法。

为了达到上述技术目的,本发明提供了基于令牌的任务调度方法,该方法用于控制系统中的全局令牌协调器,所述任务调度方法,包括:

令全局令牌协调器获取控制系统资源,确定可用令牌数量;

建立令牌等待发送列表,在令牌等待发送列表中存有接收到的已发送令牌请求的控制器的序号、接收到令牌请求的时刻顺序以及与控制器对应的优先级顺序;

接收当前控制器发送的令牌请求,根据令牌等待发送列表中存储的控制器的顺序,结合可用令牌数量向当前控制器发送令牌回复指令;

其中,在令牌等待发送列表中,首先按照控制器优先级从高到底排列,其次在控制器优先级一致的情况按照接收到控制器令牌请求时刻的先后顺序排序。

可选的,所述令全局令牌协调器获取控制系统资源,确定可用令牌数量,包括:

在启动所述全局令牌协调器、或设置在所述全局令牌协调器内的定时检测系统检测到可用资源事件发生、或接收到控制器发送的令牌请求时,获取所述控制系统资源使用情况,从所述控制系统资源使用情况中提取处理器空闲使用率,对所述处理器空闲处理器使用率进行处理,获取可用令牌数量。

可选的,所述对所述处理器空闲使用率进行处理,获取可用令牌数量,包括:

将所述处理器空闲使用率×100×80%/10后的结果取整,将得到的数值定为可用令牌数量。

可选的,在所述接收到当前控制器发送的令牌请求后,所述任务调度方法,还包括:

将所述当前控制器的序号与所述令牌等待发送列表中的内容进行对比;

如果在所述令牌等待发送列表中已经存储有所述当前控制器的序号,则将所述当前控制器的优先级加一;

如果在所述令牌等待发送列表中未存储有所述当前控制器的序号,则将所述当前控制器的序号添加到所述令牌等待发送列表中。

可选的,所述接收当前控制器发送的令牌请求,根据令牌等待发送列表中存储的控制器的顺序,结合可用令牌数量向当前控制器发送令牌回复指令,包括:

在接收到当前控制器发送的令牌请求后,获取令牌等待发送列表中存储的控制器的顺序,获取排在最前的控制器的序号;

如果可用令牌数量大于零,则向所述序号对应的控制器发送内容为请求成功的令牌回复指令;

如果可用令牌数量小于或等于零,则向所述序号对应的控制器发送内容为请求失败的令牌回复指令。

可选的,在向所述序号对应的控制器发送内容为请求成功的令牌回复指令后,所述方法还包括:

向所述序号对应的控制器发放令牌,将所述可用令牌数量减一,将所述序号从所述令牌等待发送列表中移除。

可选的,所述任务调度方法,还包括:

在接收到令牌归还请求后,将所述可用令牌数量加一。

本发明还提出了基于令牌的任务调度方法,该方法用于控制系统中与全局令牌协调器进行数据传输的至少一个控制器,其特征在于,所述任务调度方法,包括:

控制器向全局令牌协调器发送令牌请求;

从全局令牌协调器处接收令牌回复指令,根据令牌回复指令执行后续步骤。

可选的,所述根据令牌回复指令执行后续步骤,包括:

当所述令牌回复指令中的内容为成功时,接收所述全局令牌协调器发出的令牌,执行计算任务,执行完成后向所述全局令牌协调器发送令牌归还请求;

当所述令牌回复指令中的内容为失败时,选取一个随机时间片段,等待随机时间片段对应的时刻。

可选的,所述任务调度方法,还包括:

在等待所述随机时间片段对应的时刻后,如果控制器已运行超时,则记录控制器因超时导致异常的次数,向所述全局令牌协调器发送令牌取消请求;如果控制器未超时则重新向所述全局令牌协调器发送令牌请求。

本发明提供的技术方案带来的有益效果是:

通过使用全局令牌协调器根据系统资源对令牌数量进行实时调整,保证先控服务器不会因多个控制器的运行导致系统负荷长时间处于高位,提高了控制系统的稳定性,令装置的优化效果能够得到持续改进;同时有效的利用了先控服务器的系统资源,防止因限定控制器数量导致系统资源的浪费。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的基于令牌的任务调度方法的流程示意图;

图2是本发明提供的根据令牌回复指令执行后续步骤的流程示意图;

图3是本发明提供的控制器引入令牌后的执行流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更为清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本发明实施例提供了基于令牌的任务调度方法,该方法应用于包含全局令牌协调器和至少一个控制器的控制系统中,全局令牌协调器与多个控制器进行通信,以令牌分配的方式实际运行的控制器进行控制,从而能够根据控制系统资源的情况对申请资源的控制器的数量进行限制。

如图1所示,该基于令牌的任务调度方法,包括:

101、令全局令牌协调器获取控制系统资源,确定可用令牌数量。

102、建立令牌等待发送列表,在令牌等待发送列表中存有接收到的已发送令牌请求的控制器的序号、接收到令牌请求的时刻顺序以及与控制器对应的优先级顺序。

103、控制器向全局令牌协调器发送令牌请求。

104、接收当前控制器发送的令牌请求,根据令牌等待发送列表中存储的控制器的顺序,结合可用令牌数量向当前控制器发送令牌回复指令。

105、从全局令牌协调器处接收令牌回复指令,根据令牌回复指令执行后续步骤。

其中,首先按照控制器优先级从高到底排列,其次在控制器优先级一致的情况按照接收到控制器令牌请求时刻的先后顺序排序。

在实施中,全局令牌协调器作为控制系统内令牌的管理单元,用于根据控制系统的系统资源定时更新令牌总数,防止在没有控制器发送令牌请求时因令牌数量太少导致的资源闲置。同时在全局令牌协调器被启动后定时或者在接收到控制器发送的令牌请求时获取系统资源的使用情况,从而确定可用令牌数量以便在向控制器分配令牌后对可用令牌数量进行实时更新。

在令牌等待发送列表中,接收到令牌请求的时刻顺序以及与控制器对应的优先级排序均按降序排列。从而使得全局令牌协调器在分配令牌时能够始终针对最靠前即对令牌需求最强烈的控制器。

通过使用全局令牌协调器根据系统资源对令牌数量进行实时调整,保证先控服务器不会因多个控制器的运行导致系统负荷长时间处于高位,提高了控制系统的稳定性,令装置的优化效果能够得到持续改进;同时有效的利用了先控服务器的系统资源,防止因限定控制器数量导致系统资源的浪费。

在步骤101中提出了根据控制系统资源确定可用令牌数量的步骤,具体包括:

在启动全局令牌协调器、或设置在所述全局令牌协调器内的定时检测系统检测到可用资源事件发生、或接收到控制器发送的令牌请求时,获取控制系统资源使用情况,从控制系统资源使用情况中提取处理器空闲使用率,对处理器空闲处理器使用率进行处理,获取可用令牌数量。

具体的,对处理器空闲使用率进行处理,获取可用令牌数量的具体实现方式有多种实现方式,具体的:

将处理器空闲使用率×100×80%/10后的结果取整,将得到的数值定为可用令牌数量。

例如,当前处理器空闲使用率为98%,按上述处理后结果为7.84,取整结果为7,表明此时可用令牌数量为7。

在步骤102中全局令牌协调器处建立令牌等待发送列表,用于记录接收到的从控制器发出的令牌请求的具体内容。该列表中至少包含三项内容,分别是发送令牌请求的控制器的序号、全局令牌协调控制器接收到令牌请求时的时刻顺序以及与发送令牌请求的控制器对应的优先级顺序。

由于事先在全局令牌协调器中建立该列表,使得在令牌分配过程中,全局令牌协调器能够根据列表中的时刻顺序、优先级顺序选取出下一个令牌应该分配到的控制器,由于在选取过程中参考了发送令牌请求时的时刻以及控制器的优先级顺序,而优先级顺序又能够根据控制器发送令牌请求的次数进行调整,从而可以令最需要进行运算的控制器优先获取到令牌进而获取到计算资源。

基于上述理论,步骤104中接收到当前控制器发送的令牌请求后,该任务调度方法还包括:

201、将当前控制器的序号与令牌等待发送列表中的内容进行对比;

202、如果在令牌等待发送列表中已经存储有当前控制器的序号,则将当前控制器的优先级加一;

203、如果在令牌等待发送列表中未存储有当前控制器的序号,则将当前控制器的序号添加到令牌等待发送列表中。

经过步骤201至步骤203所示的令牌等待发送列表调整过程,使得列表中的控制器顺序能够根据控制器优先级从高到低的顺序进行排序,如果出现控制器优先级一致的情况,则按照控制器发送令牌请求时间的先后顺序实时调整,使得位于列表最前方控制器能够尽快被分配到令牌,从而实现合理调度控制器,提高控制器系统的稳定性的目的。

根据控制器未成功获取令牌次数动态调整优先级,实现控制器的优先级调整。之所以设置控制器运行优先级是为了能够区分控制器的运行紧迫程度,消弭控制器优先级一致情况下不断延时执行所带来的控制器无法执行的隐患;另外通过控制器的优先级策略能够最小化控制系统一次优化完成的总体时间成本;实现在先控服务器高负荷状态下能够稳定控制器的优化效果。

步骤104中描述了全局令牌协调器在接收到令牌请求后的详细处理步骤,具体包括:

301、在接收到当前控制器发送的令牌请求后,获取令牌等待发送列表中存储的控制器的顺序,获取排在最前的控制器的序号;

302、如果可用令牌数量大于零,则向序号对应的控制器发送内容为请求成功的令牌回复指令;

303、如果可用令牌数量小于或等于零,则向序号对应的控制器发送内容为请求失败的令牌回复指令。

在实施中,全局令牌协调器从已经按步骤201-204调整后的令牌等待发送列表中提取排在最前的控制器的序号,根据当前可用令牌数量的具体情况向该序号对应的控制器发送不同内容的令牌回复指令。

如果可用令牌数量大于零,表明当前还有可以分配的令牌,因此向序号对应的控制器发送内容为请求成功的令牌回复指令,接着将令牌分配至序号对应的控制器。相反的,如果可用令牌数量小于或等于零,表明当前已经没有可以分配的令牌,因此向序号对应的控制器发送内容为请求失败的令牌回复指令,使得该序号对应的控制器在接收到该令牌回复指令后,能够进行后续处理。

针对前一种结果,即在向序号对应的控制器发送内容为请求成功的令牌回复指令后,该任务调度方法还包括:

304、向序号对应的控制器发放令牌,将可用令牌数量减一,将序号从令牌等待发送列表中移除。

之所以将已发送令牌的控制器及时从令牌等待发送列表中移除,是为了能够尽快的处理后续控制器发送的令牌请求,提高控制系统的响应效率。

从控制器的角度来看,步骤105提出了根据令牌回复指令执行后续步骤,如图2所示,包括:

401、当令牌回复指令中的内容为成功时,接收全局令牌协调器发出的令牌,执行计算任务,执行完成后向全局令牌协调器发送令牌归还请求;

402、当令牌回复指令中的内容为失败时,选取一个随机时间片段,等待随机时间片段对应的时刻。

针对步骤402所述的情况,如图3所示,若全局令牌协调器没有第一时间发放令牌给控制器,则控制器等待一个随机时间片段(一般在50-150ms之间,减少多控制器情况下的再次同时请求令牌概率)后再次尝试获取令牌,当全局令牌协调器再次接受控制器的令牌请求后,对控制器对应的优先级进行提高处理,实现在令牌可用时优先发放的处理。

控制器等待一个随机时间片段后首先判断下是否控制器已运行超时,若超时则记录控制器的异常次数,同时向全局令牌协调器发送令牌取消请求;若未超时则重新向所述全局令牌协调器发送令牌请求。

这里之所以在控制器接收到内容为失败的令牌回复指令后,额外添加超时检测的步骤,是为了防止控制器自身出现故障对整个令牌分配机制造成影响,避免出现全局令牌协调器始终处于处理出现异常的控制器发送的令牌请求的环路中,而无法对其它正常的控制器发送的令牌请求进行响应。

控制器在取得令牌获取到计算资源执行完任务后,向向全局令牌协调器发送令牌归还请求,全局令牌协调器在接收到令牌归还请求后,将可用令牌数量加一。

在本发明实施例中提出的基于令牌的任务调度方法,除了上述技术方案外,还提出了一个实现效果略差的替代方案:

1.设置控制器允许的最大延时

在控制器内部设置一个假定系统处于高负荷状态下的最大延时,当超出这个延时则直接执行控制器的计算任务。

2.控制器内部等待若干个随机时间片段

1)获取系统资源使用情况;

2)根据系统资源使用情况判断是否需要等待一个随机时间片段(随机时间片段能够减少由于多个控制器运行时刻重合而导致的系统负荷上升概率);

3)若需要等待一个时间片段则初始化一个随机时间片段并等待,若不需要等待则直接到步骤3控制器执行计算任务;

4)等待一个时间片段后判断是否已达到最大延时,若没有则重新回到步骤1),否则直接到步骤3控制器执行计算任务。

3.控制器执行计算任务

在步骤2中完成之后则直接运行控制器,此时控制器内部始终认为系统的资源使用情况是允许控制器运行的。

在该替代技术方案中,控制器根据设定的最大延时判定是否执行具体的计算任务,没有考虑系统资源是否足够真的具有满足控制器运行的资源,因此可能在一定程度上出现系统处于高负荷的运行状态,但也是一种可执行的方法。

本发明提出了基于令牌的任务调度方法,包括全局令牌协调器以及与之联系的至少一个控制器,令全局令牌协调器获取控制系统资源确定可用令牌数量。接收当前控制器发送的令牌请求,根据令牌等待发送列表中存储的控制器的顺序,结合可用令牌数量向当前控制器发送令牌回复指令。根据令牌回复指令执行后续步骤。通过使用全局令牌协调器根据系统资源对令牌数量进行实时调整,保证先控服务器不会因多个控制器的运行导致系统负荷长时间处于高位,提高了控制系统的稳定性,令装置的优化效果能够得到持续改进;同时有效的利用了先控服务器的系统资源,防止因限定控制器数量导致系统资源的浪费。

上述实施例中的各个序号仅仅为了描述,不代表各部件的组装或使用过程中的先后顺序。

以上所述仅为本发明的实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1