一种基于冗余架构的确定性任务调度方法与流程

摘要: 本发明属于城市轨道交通信号控制,具体为一种基于冗余架构的确定性任务调度方法。背景技术:1、在航天,航空,航海和陆路等交通控制领域,随着电子控制系统逐渐替代机械控...
一种基于冗余架构的确定性任务调度方法与流程

本发明属于城市轨道交通信号控制,具体为一种基于冗余架构的确定性任务调度方法。

背景技术:

1、在航天,航空,航海和陆路等交通控制领域,随着电子控制系统逐渐替代机械控制结构,电子控制系统的输入输出越来越多和运算逻辑日益复杂,这会导致电子控制系统的整体可靠性的下降。为了弥补电子控制系统的可靠性下降,通常会使用冗余架构,通过对冗余单元的投票表决来提高控制系统的整体可靠性。这需要调度器确保复杂控制逻辑中各个控制任务的调度顺序在各个冗余单元中的保持一致性,才会在投票时使得各个冗余单元产生出一样的数据。

2、在实际的产品开发中,标准化商业操作系统可以提供完备成熟的工具链、库和中间件等,支持多任务、虚拟内存、复杂文件系统、网络协议等高级功能。在硬件上支持多种处理器架构和大量通用外设,硬件厂商也会对市场上主流的标准化商业操作系提供板级支持包。使用开源的操作系统还可以减少商业授权费用。标准化商业操作系统可以使开发者专注于业务功能开发,快速实现产品。

3、但在标准化商业操作系统中,任务的调度顺序是由多种复杂因素影响着。除了调度策略和任务优先级,任务的调度顺序通常还受任务运行时长,调度周期,最小调度粒度,负载均衡等一系列因素的影响。这就使得任何io接口输入的抖动或延迟,都可能导致冗余单元之间任务调度顺序的出现差异。每次在控制相关i/o(输入/输出)输入数据顺序确定的情况下,因为i/o输入时延的不同和操作系统中其他i/o和中断发生时机的不确定性,也会导致每次操作系统调度顺序也可能出现不同。即,复杂操作系统的调度没有可重复性。即使是实时操作系统,由于内核和中断也不是完全可抢占的,其调度也不是百分之百可重复。任务调度顺序的不同,会造成冗余单元中复杂控制系统的内部状态和逻辑的不一致,导致投票表决失败。

4、由于上述原因,冗余控制系统无法直接在标准化商业操作系统上运行,往往需要修改操作系统内核逻辑来满足冗余控制系统确定性调度需求。但标准化商业操作系统是庞大而复杂的,在操作系统上运行的操作系统组件,驱动和第三方库是根据原系统的调度模式来设计和实现的,修改操作系统内核又会影响它们的稳定性和正确性。

5、因此,针对冗余控制系统对确定性调度的需求,提供一种基于冗余架构的确定性任务调度方法。

技术实现思路

1、为解决现有技术中存在的上述问题,本发明提供了一种基于冗余架构的确定性任务调度方法,通过对可阻塞posix(可移植操作系统接口)接口的劫持,可以运行在标准化商业操作系统基础上,实现对关键控制任务间的非抢占式的确定顺序的调度,从而为冗余单元间的投票表决提供运行时序上的同步基础,保证了冗余单元间内部状态和逻辑的一致性。

2、实现上述目的的技术方案是:

3、一种基于冗余架构的确定性任务调度方法,包括:

4、步骤s1,任务分类:将控制系统中的任务划分为i/o型任务和逻辑型任务;

5、步骤s2,劫持接口任务调度:通过被劫持的阻塞式posix接口,根据控制任务的类型将其分配至对应的调度器;

6、步骤s3,逻辑型任务阻塞与排队:逻辑型任务在完成当前周期工作后阻塞于确定性调度器接口,当解阻塞条件满足时,确定性调度器将其放入等待运行队列;

7、步骤s4,确定性调度执行:确定性调度器解阻塞等待运行队列队首任务使其运行,待该任务重新阻塞于确定性调度器接口后,再解阻塞队列当前队首任务,持续执行直至等待运行队列为空。

8、优选的,所述步骤s1中,任务分类的具体方式为:

9、i/o型任务:指提交或等待i/o请求的任务,需快速响应调度以避免i/o驱动缓存溢出或数据丢失,其调度由操作系统根据运行时长、调度周期及负载均衡策略负责;

10、逻辑型任务:指处理数据、判断控制逻辑及计算控制量值的任务,需在控制周期内完成复杂运算,且要求调度顺序确定、运行期间不被其他逻辑型任务抢占。

11、优选的,所述步骤s2中,调度分配的具体过程为:

12、在被劫持的可阻塞式posix接口中,对控制任务类型进行判断:

13、若为i/o型任务,直接调用操作系统或c库原生posix接口,由操作系统负责该任务调度;

14、若为逻辑型任务,调用确定性调度器接口,将该任务阻塞在确定性调度器接口上。

15、优选的,所述步骤s3中,逻辑型任务阻塞与排队的具体过程为:

16、逻辑型任务逻辑型任务遵循“循环阻塞工作模型”,即完成当前周期工作后,必须阻塞在被劫持的阻塞式posix接口上,等待下一次工作资源触发解阻塞;

17、当解阻塞条件满足时,确定性调度器将阻塞的逻辑型任务按触发顺序加入等待运行队列;

18、其中,解阻塞条件包括但不限于资源可用、外部事件触发。

19、优选的,所述步骤s4中,确定性调度执行的具体机制为:

20、通过操作系统或c库提供的可阻塞接口实现对逻辑型任务的阻塞,不修改操作系统内核;

21、确定性调度器按“先进先出”原则从等待运行队列中解阻塞队首任务,使其由操作系统调度运行;

22、确定性调度器解阻塞等待运行队列队首任务使其运行,待该任务重新阻塞于确定性调度器接口后,再解阻塞队列当前队首任务,持续执行直至等待运行队列为空。

23、与现有技术相比,本发明的有益效果是:

24、本发明通过对阻塞式posix接口的劫持,在可抢占的标准化商业操作系统基础上,实现对关键任务间的非抢占式的确定顺序的调度,从而为冗余单元间的投票表决提供运行时序上的同步基础,保证了冗余单元间内部状态和逻辑的一致性。

1.一种基于冗余架构的确定性任务调度方法,其特征在于,包括:

2.根据权利要求1所述一种基于冗余架构的确定性任务调度方法,其特征在于,所述步骤s1中,任务分类的具体方式为:

3.根据权利要求1所述一种基于冗余架构的确定性任务调度方法,其特征在于,所述步骤s2中,调度分配的具体过程为:

4.根据权利要求1所述一种基于冗余架构的确定性任务调度方法,其特征在于,所述步骤s3中,逻辑型任务阻塞与排队的具体过程为:

5.根据权利要求1所述一种基于冗余架构的确定性任务调度方法,其特征在于,所述步骤s4中,确定性调度执行的具体机制为: