CN103713959A - 任务同步方法 - Google Patents
任务同步方法 Download PDFInfo
- Publication number
- CN103713959A CN103713959A CN201310753316.3A CN201310753316A CN103713959A CN 103713959 A CN103713959 A CN 103713959A CN 201310753316 A CN201310753316 A CN 201310753316A CN 103713959 A CN103713959 A CN 103713959A
- Authority
- CN
- China
- Prior art keywords
- principal series
- standby
- data
- synchronous
- cpu
- 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 70
- 230000001360 synchronised effect Effects 0.000 claims description 53
- 230000008901 benefit Effects 0.000 claims description 32
- 230000004044 response Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 230000005856 abnormality Effects 0.000 claims description 3
- 230000000630 rising effect Effects 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 20
- 238000013461 design Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000012360 testing method Methods 0.000 description 9
- 230000006854 communication Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000005094 computer simulation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000003745 diagnosis Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000004092 self-diagnosis Methods 0.000 description 2
- WSZPRLKJOJINEP-UHFFFAOYSA-N 1-fluoro-2-[(2-fluoro-2,2-dinitroethoxy)methoxy]-1,1-dinitroethane Chemical compound [O-][N+](=O)C(F)([N+]([O-])=O)COCOCC(F)([N+]([O-])=O)[N+]([O-])=O WSZPRLKJOJINEP-UHFFFAOYSA-N 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000012729 immediate-release (IR) formulation Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种任务同步方法。涉及计算机技术领域;解决了二乘二取二结构中系间同步的问题。该方法包括:联锁的若干个CPU对运行于该若干个CPU中的任务运行结果进行周期性的同步表决;根据所述若干个CPU同步表决的结果,进行一致性检查。本发明提供的技术方案适用于计算机联锁系统,实现了联锁的多个CPU间的同步。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务同步方法。
背景技术
计算机联锁系统是保证列车行车安全的基础信号设备,主要完成进路建立、锁闭和解锁的过程,控制道岔定位和反位转动、控制信号机开放和关闭等功能,实现城市轨道交通系统的联锁功能,确保列车进路正确以及列车运行的安全。我国近几年城市轨道交通的建设,对于计算机联锁系统的可靠性、可用性、可维护性和安全性提出了更高的要求;计算机联锁系统采用了各种容错冗余系统来提高系统的可靠性和安全性,常见的容错冗余系统如双机热备系统、三取二系统和二乘二取二系统。
目前基于时钟同步方式的二乘二取二计算机联锁系统已经得到了应用,在国内外均已有了较为成熟的设备,但是随着科技的进步和对联锁系统要求的提高,基于时钟同步方式的二乘二取二计算机联锁系统暴露出一些缺点,这些缺点是无法改变的,例如:受目前工艺水平的限制,用于同步的时钟频率不能太快,否则系统处理性能达不到相应的级别,这对计算机联锁系统处理能力的影响是相当大的;而基于任务同步方式的二乘二取二计算机联锁系统可以采用两套不同的联锁逻辑算法进行联锁运算,极大程度上降低了因共模原因导致安全问题的风险,同时,基于通用计算机的任务同步系统可以充分利用现有通用计算机的高性能和可扩展能力。
发明内容
本发明提供了一种任务同步方法,解决了二乘二取二结构中系间同步的问题。
一种同步方法,包括;
联锁的若干个CPU对运行于该若干个CPU中的任务运行结果进行周期性的同步表决;
根据所述若干个CPU同步表决的结果,进行一致性检查。
优选的,根据所述若干个CPU同步表决的结果,进行一致性检查包括:
在多次所述若干个CPU同步表决的结果中,同步成功的结果占比例较高时,判定同步成功;
在多次所述若干个CPU同步表决的结果中,同步失败的结果占比例较高时,判定同步失败。
优选的,该方法还包括:
在运行任务前,在该任务的相应位置设置数据表决功能。
优选的,所述联锁的若干个CPU对运行于该若干个CPU中的任务运行结果进行周期性的同步表决包括:
在每周期开始时,创建定时器,设置任务同步周期为最大时间限制;
接收来自本系邻CPU或邻系相应CPU的同步表决数据;
在数据接收完全或所述定时器到时后,进行数据表决。
优选的,该方法还包括:
在未接收到数据时判定任务同步异常,标记任务同步异常状态。
优选的,该方法还包括:
在系统初始化时,选择主系。
优选的,在同时存在两系,每系包括两个CPU,所述两系构成二乘二取二结构,在系统初始化时,选择主系包括:
在初始化过程处理完成后,各系根据优先级依序要求升为主系;
在当前要求升为主系的系无故障时,将当前要求升为主系的系设置为主系;
在当前要求升为主系的系存在故障时,由优先级次于该系的另一系继续要求升为主系。
优选的,该方法还包括:
主系和备系进行主备切换。
优选的,所述主系和备系进行主备切换包括:
当前主系向当前备系发送降备请求;
所述当前备系在接收到所述降备请求后判断自身是否满足升主条件,并在满足升主条件时向所述当前主系发送升主应答,表明可以升为主系;
所述当前主系接收到所述升主应答后向所述当前备系发送降备应答,并降为备系;
所述当前备系接收到所述降备应答后升为主系。
优选的,所述当前主系向当前备系发送降备请求具体为:
所述当前主系在发生故障时向所述当前备系发送降备请求。
本发明提供了一种任务同步方法,联锁的若干个CPU对运行于该若干个CPU中的任务运行结果进行周期性的同步表决,根据所述若干个CPU同步表决的结果,进行一致性检查。实现了联锁的多个CPU间的同步,解决了解决了二乘二取二结构中系间同步的问题。
附图说明
图1是本发明的实施例一中表决流程图;
图2是本发明的实施例一中大数判决原理示意图;
图3是多线程方式下平台仿真软件结构图;
图4是同步流程示意图;
图5是联锁应用算法原理示意图;
图6是双系抢主及双主情况的处理过程示意图;
图7是主备系切换流程图;
图8是系统调度方式原理示意图;
图9是运算线程示意图。
具体实施方式
目前基于时钟同步方式的二乘二取二计算机联锁系统已经得到了应用,在国内外均已有了较为成熟的设备,但是随着科技的进步和对联锁系统要求的提高,基于时钟同步方式的二乘二取二计算机联锁系统暴露出一些缺点,这些缺点是无法改变的,例如:受目前工艺水平的限制,用于同步的时钟频率不能太快,否则系统处理性能达不到相应的级别,这对计算机联锁系统处理能力的影响是相当大的;而基于任务同步方式的二乘二取二计算机联锁系统可以采用两套不同的联锁逻辑算法进行联锁运算,极大程度上降低了因共模原因导致安全问题的风险,同时,基于通用计算机的任务同步系统可以充分利用现有通用计算机的高性能和可扩展能力。
为了解决上述问题,本发明的实施例提供了一种任务同步方法。下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
下面结合附图,对本发明的实施例一进行说明。
对于计算机联锁系统,需要对联锁系统技术方案的合理性、系统的功能和接口等进行测试和验证,及早地发现站场数据配置和联锁软件设计方面的缺陷,并对不足和错误的地方加以修正,降低投入运营后的安全风险,保证系统的正确运行,最后还需要对整个联锁系统的各个部分进行验证和确认,从而保证联锁系统能够满足运营的要求。
在整个联锁系统的评估过程中,实验室的系统仿真测试和验证是一个重要环节,一方面可以加深联锁研发人员和测试验证人员对欧洲技术标准的理解,另一方面,可以及早的发现联锁软件设计及软件开发中出现的问题并及时改正,从而缩短试验周期,提高试验效率。
计算机联锁仿真系统也可以作为培训和演示系统来使用。用于联锁仿真系统的站场数据是通过组态软件根据实际站场的实际情况组态生成的,与实际站场应用时的数据一样,因此可以模拟出计算机联锁系统的基本功能,并且能够进行交互式操作,为联锁系统的学习和演示提供一个很好的平台。
随着计算机技术的发展,计算机仿真的应用领域不断拓宽,计算机仿真系统的数据交换效率、模块化设计和系统重用性等有了很大的提高,充分利用先进的仿真技术,建立二乘二取二仿真平台的各个功能模块,搭建仿真平台,可以为联锁系统的研发人员提供方便的调试环境、参考信息和调试方法,从而针对联锁系统各个组成部分的设计和实现做出决断,为可能存在的问题提供分析工具和运行载体,为测试人员提供联锁功能测试的平台,为客户提供计算机联锁系统运行情况的展示等。整个平台仿真系统具有无破坏性、可控性、经济性和可重复性等特点。建立二乘二取二仿真平台,其目的是利用计算机仿真技术,将联锁逻辑算法与计算机仿真技术相结合,服务于计算机联锁系统的系统研究、方案比较、测试评估等,可以为计算机联锁系统的设计研究及设备集成提供良好的研发平台和验证测试平台。
基于通用计算机的任务同步二乘二取二仿真平台能够使计算机联锁算法摆脱专用硬件的制约,能够运行至少两套不同的联锁算法以避免共模故障,并且可以验证这两套联锁算法的正确性,另外,由于仿真软件运行于通用计算机,从而有充足的工具和集成开发环境等资源进行联锁算法的调试,极大的简化了使用嵌入式系统进行调试所遇到的麻烦。
本系统采用了基于通用计算机多线程技术的二乘二取二平台的基本构架,实现了双套相异算法的并行计算流程,使用了多线程技术,优化了程序结构,提高了处理效率和系统响应速度,并已应用到计算机联锁系统仿真测试平台中。
二乘二取二系统通过容错冗余技术提高了系统的可靠性,但如何使各个联锁机之间能够协调的工作是系统需要解决的关键问题。要协调完成容错冗余系统的表决、切换等控制过程,多机之间的同步是容错冗余管理的关键,同步的好坏直接影响到容错冗余系统的功能及运行操作的正确性,同步技术是整个容错冗余系统的核心。系统同步是保证各冗余模块间的工作能够保持步调基本一致,在某一时刻几乎同时完成某一相同任务。只有整个系统内部的各个模块达到同步,容错冗余系统的表决过程才有意义,才能使容错冗余系统持续、可靠地运行。如果各个冗余模块之间失步,那么表决机制将紊乱,系统将无法保证持续、正常、可靠的工作。
二乘二取二容错冗余系统具有高可靠性和高安全性。为了实现系内、系间的输入数据、联锁逻辑运算结果和输出数据的表决,必须保证系内、系间同步工作,以到达简化表决器设计的目的。要实现系统两系之间的动态切换,备系要与主系保持同步,以保证切换时间能够控制在允许范围内,实现无扰切换。
任务同步的实现方法是两台联锁机的两个CPU单独工作,通过CPU间的以太网或高速总线,对运行于两个CPU中的任务运行结果进行周期性的同步表决,完成两个CPU的工作一致性检查。
任务同步以一个任务的一次运行作为同步的基础,每个任务的相应位置都设置数据表决功能,以便对输入数据、逻辑运算的中间结果和输出数据进行一致性表决。由于两台联锁机的运行速率存在差异,因此,即使是相同的任务在两台联锁机上的执行也不可能完全相同,特别是当该任务的运行时间较长时,这种差异更加严重。以二取二一系为例,若CPU1先结束第i个任务,则将结果输出给比较器,同时向CPU2发送一帧同步数据,然后设置最大允许等待时间,等待接收CPU2发来的同步信息。该同步过程有如下三种情况:
1、当本任务首先完成时,等待另一CPU的同步数据,在收到另一CPU发来的同步数据后,可立即返回。
2、当本任务在接收到另一CPU的同步数据后才完成时,则在该任务完成后立即返回。
3、若本任务完成后,在给定的最大允许等待时间内仍未收到另一CPU的同步信号,则返回一个超时错误的异常码。
双CPU任务同步以一个独立运行的、具有一定逻辑的任务的一次运行作为同步基础,在任务同步方式下,两个CPU独立工作,系统设立表决点,通过CPU间的以太网或高速总线对其输入数据、逻辑运算的中间结果和输出数据进行一致性表决,完成两个CPU的工作一致性检查。
任务同步是通过任务同步算法控制实现的,任务同步算法使计算机执行相同的联锁逻辑运算,运算完成后进行同步和表决,其优点是各个联锁机的时钟可以独立开并且设计较为简单。
任务同步方式是在软件中设置同步检查点,在同步检查点处进行同步处理和数据表决。
任务同步算法描述如下:
(l)每周期开始,创建定时器,设置任务同步周期为最大时间限制;
(2)本地CPU将自身的数据放入本地缓冲区,并等待来自本系邻CPU或邻系相应CPU的同步表决数据,接收到后放入本地的另一片数据缓冲区;
(3)在各个同步表决检测点检查所需要的相应数据是否接收到,如果数据接收完全,则进行数据表决,否则继续等待所需数据;
(4)当等待时间超过允许的最大时间限制时,如果此时所等待的相应数据已经接收完全,则进行正常的表决;如果数据未接收到,则认为未同步上,标记任务同步异常状态。如图1所示。
每周期开始,CPU将自身的系内同步数据放入本地存储区,并向本系邻CPU发送一包同样的同步数据,之后等待对方发送的同步数据,循环检查是否对方向自身发送了同步数据;如果接收到数据,则先检查该数据是否是发送给自己的,从数据帧中的源地址和目的地址字段可以很容易的区分数据的发送方和数据的发送对象,若检查出该数据不是发给自己的,则丢弃该数据,继续等待本系邻CPU的同步数据;若检查目的地址和源地址后判断认为正确,再检查数据是否合法,是否与自己能够同步上,若此时能够同步上,则标记同步成功;若数据不合法,无法同步,则继续等待新数据,直到等待超时,同步异常。
为了提高系统的可用性和安全性,设计系间同步时采用“大数判决”原则来判定两系间的同步是否成功,这样既能保证系统具有较高的可靠性,又可以容忍因瞬间故障而导致的两系失步。在二乘二取二仿真平台的设计中采用了图2所示的“五取三”的策略,在五次系间同步中,如果连续三次同步成功,则认定系间同步成功,否则认为系间同步失败。
多线程方式下平台仿真软件结构图如图3所示。在上位机、联锁逻辑算法和I/O模块之间主要有四类信息,包括:操作员站向联锁逻辑算法发送的操作命令,并从联锁逻辑算法接收运算后的的表示数据;联锁逻辑算法接收I/O模块采集到的的现场设备状态信息,经过联锁运算后向现场设备发出控制信息。
对于二乘二取二仿真平台系统,系内同步是为了保证一个系内的两个线程运算步调一致而进行的数据交换过程。同步过程传递的数据称为同步数据,对于系内同步,在多线程的二乘二取二仿真平台系统中,同步数据的内容包括本线程采集的输入数据、联锁运算的中间结果和输出数据。如图4所示:
在每个周期开始,A1(B1)和A2(B2)交换同步数据,然后对同步数据进行二取二表决。设计上区分为两个部分,一是输入数据表决,二是联锁数据表决。由线程A1(B1)先发出请求,线程A2(B2)接收到请求后应答,无超时重发机制。在每个周期开始,线程A1(B1)和A2(B2)交换同步数据,然后对同步数据进行二取二表决,若表决不一致,则本周期不进行联锁运算。
每个周期都执行系间数据交换,系间数据交换是一个异步通信过程,不保证本周期内必须有应答数据。
系间数据交换在系内数据同步后执行,系间传递的数据包括本系工作状态和上周期已经表决的本系的输出数据和联锁运算中间结果。为检查两个系输入不一致的情况,设计同时传递本系输入数据的CRC校验和。
系间数据用于判断两个系的输入是否一致,两个系的联锁运算是否一致。两个系输入不一致定义为两个系都工作正常条件下,主系和从系采集的输入数据不相同。两个系输入不一致不视为本系故障,仅上报该状态,由人工判断处理。两个系输入不一致,从系不申请重构。系间联锁运算不一致,在无系间输入不一致的条件下,申请重构,连续3次以上要对从系输出数据进行安全处理。
系间同步采用大数判决原则来判定两系同步是否成功,在二乘二取二仿真平台的系间同步设计中采用“五取三”的策略,即五次同步中,如果连续三次两系同步成功,则认为系间同步成功,否则认为系间未同步,将当前系统状态记录下来,由故障诊断和处理模块进行相应的处理。
目前,国内外大部分二乘二取二系统的各个联锁机均采用相同的联锁逻辑算法,原因是当采用相同联锁算法时,系统的同步和表决较为容易实现,如果不同的联锁机采用不同的联锁逻辑算法进行逻辑运算,则系统的相异性将得到提高,另一方面,采用由完全不同的开发人员开发具有相同功能的程序,系统出现共模故障的可能性将大大降低,因此进一步提高二乘二取二系统安全性的关键在于如何在二乘二取二系统上实现两套相异的联锁逻辑算法。基于通用计算机的多线程二乘二取二仿真系统为相异算法的同步提供了一种实现方法。
目前主流操作系统大多支持多线程技术,多线程对改进程序结构、提高计算机性能具有重要作用,另外,多线程并行执行可以提高程序的响应速度,以目前通用双核CPU甚至四核CPU而言,多线程可以使多核CPU系统更加有效,占用更少的系统资源[3]。在多核CPU系统上,将每个线程均分配到各个CPU,可以使系统进入并行运算状态。采用多线程技术进行二乘二取二仿真平台的设计,可以使程序设计更直观,逻辑更清晰,程序执行更高效,并且由于在系统设计时能够严格控制任务的时序,因而可以通过这种方式实现基于任务同步的二乘二取二系统。
在操作系统之上,利用系统提供的标准API,二乘二取二平台仿真系统主要包括以下几部分:
①网络通信模块:可靠的通信是系统安全的根本,一切信息需经由通信模块实现交换。
②数据表决模块:对输入数据进行一致性表决,若表决不一致则认为输入有误。由各个线程独立进行相同的逻辑运算并对运算结果进行表决,若表决结果一致则认为结果正确,允许输出,否则认为系统出现故障,系统倒向安全侧,并切换到另一系工作。
③同步控制模块:二乘二取二仿真平台采用任务同步方式实现多线程之间的松散耦合容错冗余结构。
④平台自诊断模块:自诊断模块包括平台仿真软件本身的错误诊断和应用程序运算产生的的错误诊断。一旦系统检测到出现问题,立即进行相应的故障处理。
⑤联锁算法的API接口:负责向联锁逻辑算法提供二乘二取二仿真平台的通用接口,由联锁算法通过调用该类接口进行应用算法与平台之间的数据交换,是二乘二取二平台与具体应用算法的结合点。
系统中以四个线程分别运行联锁应用算法,通过PV操作,实现四个线程之间的二乘二取二,再用一个线程进行输入数据和输出数据的处理。如图5所示。
二乘二取二安全冗余结构由相同的A、B两系构成,两系内部为二取二结构,双系互为热备,每一系必须系内的两个线程进行同步并且数据表决结果一致才能对外输出,实现系统的高安全性;任一单系检查出故障均可立即降级,并通知备系升为主系工作,实现系统的高可靠性。每一系均采用二取二同步和数据表决,双系并用,互为主备,从而提高系统的可用性,确保系统的可靠性和安全性。
系统中每个系都有两个线程分别运行,均独立进行联锁逻辑运算,两个线程将所读取到的现场设备输入数据、联锁运算的中间结果及输出数据分别传给对方进行数据表决,当表决结果一致时认为输入数据有效,并且允许联锁运算结果输出。
下面结合附图,对本发明的实施例二进行说明。
本发明实施例提供了一种任务同步方法,该方法中,不同系间需要在系统初始化时进行抢主操作以确定主系与备系统,具体流程如下:
当系统初始化时,由于A、B两系同时启动,必然要使一个系升为主系,另一个系为备系。由于启动时两系处于同等的状态,则需要两系进行一个竞争升为主系的过程,从而确定哪个系最终升为主系。
另一方面,从二乘二取二系统结构来讲,是不允许有两系均为主系这种情况发生的,一旦发生两系均为主系的情况,必须要立即处理,将一个降为备系。尽管这种情况基本上很少发生,但在联锁系统上是绝对不允许的,因此需要做双主情况下的防护处理。
图6描述了双系抢主及双主情况的处理过程。
进入抢主模块后,首先获取本线程的当前状态,如故障情况、同步表决情况、主备情况等,由于在系间同步的时候已经存储了邻系对应线程的运行状态,则很容易比较本线程所在的系与邻系对应线程所在的系的主备情况,一旦发现为双主情况,则立即进入双主处理流程,将一系降为主系。默认此时以A系为主系,B系为备系。
A、B两系的处理流程基本一样,区别在于:当系统启动时,由于A、B两系所处地位一样,正处启动时运行情况也一致,所以人为设定,由A系获得优先权,如果A系符合升主条件则让A系先升主。实现的方法是,系统启动后,先运行4个周期待各种初始化过程处理完成后,A系先进入抢主流程,B系运行8个周期后才进入抢主流程。这样,如果启动4个周期后A系具备的升主条件,则A系在B系抢主之前已经升为主系。假如A系由于故障等原因没有升主成功,则B系在运行8个周期之后也会升为主系。
上文提到抢主时要判断当前状态是否为故障状态,判断是否故障的一个重要条件就是本系系内的两个线程之间的系内通信是否正常,如果系内通信故障则必然导致系内数据表决错误,这时候是不允许当前系升为主系的。
此外,还可以在系统运行过程中进行主系和备系的切换,具体流程如下:
二乘二取二平台双系运行时,要求系统能够自动根据当前状态进行主备系切换。例如当主系运行出现故障时,主系要降为备系,备系如果符合条件则要升为主系。
双系间的自动切换是系统运行时根据运行状态自动进行主备系切换的,不需要人工介入。
主备系之间的自动切换是一个请求应答的过程,首先由主系向备系发送降备请求,备系接收到主系的降备请求后判断自身是否满足升主条件,如果满足则向主系发送可以升主的应答,主系接收到备系的升主应答后再发送降备应答,然后降为备系,备系接收到之前主系发送的降备应答后升为主系。具体流程如图7所示,系统运行的每个周期都要进入系间自动切系的流程,以便随时根据当前系统状态进行主备系切换。如果不需要系间切换则自动退出切系流程。
每个周期主备系的两个线程都要进行判断是否需要自动切系,并且需要严格的请求应答机制,防止两系双主的情况发生。
下面结合附图,对本发明的实施例三进行说明。
本发明实施例提供了一种任务同步方法。
计算机联锁是周期循环的运算系统,数据的输入、计算和输出具有周期性的特点,因而仿真平台的控制方式同样采取周期循环方式。尽管是周期控制,但联锁系统是一个实时应用处理系统,所允许的处理时间在毫秒级,因此针对联锁的这种应用策略,对仿真平台采用基于时间触发结构的静态调度策略。
在程序运行之前将所需要的程序执行次序设计好,并设计各个线程上运行哪些任务及这些任务的执行顺序。静态调度策略的优点是系统开销小,任务运行时间的分析相对容易,稳定性和可预测性好,而且实现简单。
静态调度策略适合于使用周期运算型任务的控制系统,因为这些系统的任务资源利用和执行情况都是可以预知的,另外,由于静态调度机制的处理速度一般比较快,要达到调度的独立性较为容易,CPU的占用时间也很小。
由于静态调度算法具有以上优点,结合时间确定性的原则。设计了如图8所示的系统调度方式。
当系统启动时,进行所有功能模块和数据的初始化过程,包括读取站场数据文件,初始化数据缓冲区,初始化网络,根据站场情况配置各种参数等。初始化过程完成之后系统进入周期循环运算过程。
每周期的运算大体分为几个部分:同步、输入采集到的设备数据、表决输入数据、将输入数据提交联锁应用算法进行联锁运算、表决联锁运算的运算结果和输出数据、最后进行有效数据的输出。
如图9所示,每一个周期开始时,系内的主线程获取到信号量,之后根据联锁逻辑运算上周期的运算结果,加上本周期的输入数据等,填充系内、系间数据,并向系内线程及邻系对应线程发送数据包。系内数据有两个作用,一是用来进行系内两个线程的同步,二是进行系内表决。系内主线程发送系内数据和系间数据之后,释放信号量,此时一直在等待信号量的系内从线程获取到信号量从而进入自身的填充和发送系内、系间数据的流程。待系内从线程发送完系内、系间数据后释放信号量供系内主线程下周期获取。
单系内主线程的处理流程为:
1)等待线程同步的信号量,获取信号量。
2)获取到用于线程同步的信号量之后,根据联锁运算的中间结果和输入数据等填充系内、系间同步数据,并将填充的系内、系间同步数据发送给系内线程和邻系对应线程。
3)等待系内线程和邻系对应线程发送过来的系内、系间数据,在最大允许等待时间内获取到数据则进入数据表决流程。
4)当系内、系间表决完成之后,线程首先诊断当前本身的状态,包括表决状态和当前的运行状态。
5)系统诊断过程结束之后,进入本周期的联锁逻辑运算,将表决后的正确的输入数据传给联锁算法,供联锁算法计算使用。
6)调用联锁算法运算完成之后进入故障处理流程,如果在诊断过程中发现本线程出现故障则进入相应的错误处理,如果没有故障,则直接进入空闲等待,直到本周期运行时间结束,进入下一周期。
系内从线程的处理流程与系内主线程的处理流程大体一致,只是在信号量的处理方便略有不同。由于系内同步是以系内主线程为主,因此每一个周期开始时,系内从线程处于等待信号量的状态,直到系内主线程完成互斥动作之后才允许系内从线程开始动作。而在从线程完成向系内、系间发送同步数据之后,立即释放信号量,供主线程下周期开始时使用。
本发明的实施例提供了一种任务同步方法,联锁的若干个CPU对运行于该若干个CPU中的任务运行结果进行周期性的同步表决,根据所述若干个CPU同步表决的结果,进行一致性检查。实现了联锁的多个CPU间的同步,解决了解决了二乘二取二结构中系间同步的问题。保证系内、系间同步工作,达到了简化表决器设计的效果。
本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
Claims (10)
1.一种任务同步方法,其特征在于,包括:
联锁的若干个CPU对运行于该若干个CPU中的任务运行结果进行周期性的同步表决;
根据所述若干个CPU同步表决的结果,进行一致性检查。
2.根据权利要求1所述的任务同步方法,其特征在于,根据所述若干个CPU同步表决的结果,进行一致性检查包括:
在多次所述若干个CPU同步表决的结果中,同步成功的结果占比例较高时,判定同步成功;
在多次所述若干个CPU同步表决的结果中,同步失败的结果占比例较高时,判定同步失败。
3.根据权利要求1所述任务同步方法,其特征在于,该方法还包括:
在运行任务前,在该任务的相应位置设置数据表决功能。
4.根据权利要求1所述的任务同步方法,其特征在于,所述联锁的若干个CPU对运行于该若干个CPU中的任务运行结果进行周期性的同步表决包括:
在每周期开始时,创建定时器,设置任务同步周期为最大时间限制;
接收来自本系邻CPU或邻系相应CPU的同步表决数据;
在数据接收完全或所述定时器到时后,进行数据表决。
5.根据权利要求4所述的任务同步方法,其特征在于,该方法还包括:
在未接收到数据时判定任务同步异常,标记任务同步异常状态。
6.根据权利要求1所述的任务同步方法,其特征在于,该方法还包括:
在系统初始化时,选择主系。
7.根据权利要求6所述的任务同步方法,其特征在于,在同时存在两系,每系包括两个CPU,所述两系构成二乘二取二结构,在系统初始化时,选择主系包括:
在初始化过程处理完成后,各系根据优先级依序要求升为主系;
在当前要求升为主系的系无故障时,将当前要求升为主系的系设置为主系;
在当前要求升为主系的系存在故障时,由优先级次于该系的另一系继续要求升为主系。
8.根据权利要求6所述的任务同步方法,其特征在于,该方法还包括:
主系和备系进行主备切换。
9.根据权利要求8所述的任务同步方法,其特征在于,所述主系和备系进行主备切换包括:
当前主系向当前备系发送降备请求;
所述当前备系在接收到所述降备请求后判断自身是否满足升主条件,并在满足升主条件时向所述当前主系发送升主应答,表明可以升为主系;
所述当前主系接收到所述升主应答后向所述当前备系发送降备应答,并降为备系;
所述当前备系接收到所述降备应答后升为主系。
10.根据权利要求9所述的任务同步方法,其特征在于,所述当前主系向当前备系发送降备请求具体为:
所述当前主系在发生故障时向所述当前备系发送降备请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310753316.3A CN103713959A (zh) | 2013-12-31 | 2013-12-31 | 任务同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310753316.3A CN103713959A (zh) | 2013-12-31 | 2013-12-31 | 任务同步方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103713959A true CN103713959A (zh) | 2014-04-09 |
Family
ID=50406960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310753316.3A Pending CN103713959A (zh) | 2013-12-31 | 2013-12-31 | 任务同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103713959A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503247A (zh) * | 2014-11-20 | 2015-04-08 | 上海富欣智能交通控制有限公司 | 应用于二乘二取二计算机系统的双系同步方法 |
WO2017107665A1 (zh) * | 2015-12-21 | 2017-06-29 | 湖南中车时代通信信号有限公司 | 一种用于列车控制的安全计算机系统 |
CN108082219A (zh) * | 2017-11-10 | 2018-05-29 | 北京全路通信信号研究设计院集团有限公司 | 一种2乘2取2冗余结构数据处理方法 |
CN108279597A (zh) * | 2018-01-23 | 2018-07-13 | 上海亨钧科技股份有限公司 | 一种基于有限状态机的计算机联锁平台控制方法 |
WO2019076035A1 (zh) * | 2017-10-18 | 2019-04-25 | 北京全路通信信号研究设计院集团有限公司 | 一种数据处理方法、装置及计算机设备 |
CN111274068A (zh) * | 2020-01-19 | 2020-06-12 | 合肥工大高科信息科技股份有限公司 | 一种热备计算机联锁系统的通信机双cpu数据同步方法 |
CN111459544A (zh) * | 2020-03-03 | 2020-07-28 | 北京和利时系统工程有限公司 | 安全计算机板卡中多对线程数据表决方法、介质和装置 |
CN113093592A (zh) * | 2021-03-16 | 2021-07-09 | 中车大连机车研究所有限公司 | 具有数据同步和决策判断的冗余控制系统及方法 |
CN114090272A (zh) * | 2020-08-24 | 2022-02-25 | 达明机器人股份有限公司 | 进程同步的方法 |
CN116257389A (zh) * | 2023-05-16 | 2023-06-13 | 北京城建智控科技股份有限公司 | 基于全电子联锁系统的二乘二取二平台的同步方法 |
-
2013
- 2013-12-31 CN CN201310753316.3A patent/CN103713959A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104503247A (zh) * | 2014-11-20 | 2015-04-08 | 上海富欣智能交通控制有限公司 | 应用于二乘二取二计算机系统的双系同步方法 |
WO2017107665A1 (zh) * | 2015-12-21 | 2017-06-29 | 湖南中车时代通信信号有限公司 | 一种用于列车控制的安全计算机系统 |
WO2019076035A1 (zh) * | 2017-10-18 | 2019-04-25 | 北京全路通信信号研究设计院集团有限公司 | 一种数据处理方法、装置及计算机设备 |
CN108082219A (zh) * | 2017-11-10 | 2018-05-29 | 北京全路通信信号研究设计院集团有限公司 | 一种2乘2取2冗余结构数据处理方法 |
CN108082219B (zh) * | 2017-11-10 | 2021-01-22 | 北京全路通信信号研究设计院集团有限公司 | 一种2乘2取2冗余结构数据处理方法 |
CN108279597A (zh) * | 2018-01-23 | 2018-07-13 | 上海亨钧科技股份有限公司 | 一种基于有限状态机的计算机联锁平台控制方法 |
CN111274068B (zh) * | 2020-01-19 | 2022-07-12 | 合肥工大高科信息科技股份有限公司 | 一种热备计算机联锁系统的通信机双cpu数据同步方法 |
CN111274068A (zh) * | 2020-01-19 | 2020-06-12 | 合肥工大高科信息科技股份有限公司 | 一种热备计算机联锁系统的通信机双cpu数据同步方法 |
CN111459544A (zh) * | 2020-03-03 | 2020-07-28 | 北京和利时系统工程有限公司 | 安全计算机板卡中多对线程数据表决方法、介质和装置 |
CN111459544B (zh) * | 2020-03-03 | 2022-10-28 | 北京和利时系统工程有限公司 | 安全计算机板卡中多对线程数据表决方法、介质和装置 |
CN114090272A (zh) * | 2020-08-24 | 2022-02-25 | 达明机器人股份有限公司 | 进程同步的方法 |
CN113093592B (zh) * | 2021-03-16 | 2022-03-25 | 中车大连机车研究所有限公司 | 具有数据同步和决策判断的冗余控制系统及方法 |
CN113093592A (zh) * | 2021-03-16 | 2021-07-09 | 中车大连机车研究所有限公司 | 具有数据同步和决策判断的冗余控制系统及方法 |
CN116257389A (zh) * | 2023-05-16 | 2023-06-13 | 北京城建智控科技股份有限公司 | 基于全电子联锁系统的二乘二取二平台的同步方法 |
CN116257389B (zh) * | 2023-05-16 | 2023-08-22 | 北京城建智控科技股份有限公司 | 基于全电子联锁系统的二乘二取二平台的同步方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103713959A (zh) | 任务同步方法 | |
EP3690657B1 (en) | Computer-based interlocking system and redundancy switching method thereof | |
CN107634855A (zh) | 一种嵌入式系统的双机热备方法 | |
US20140082413A1 (en) | System and method for using redundancy of controller operation | |
CN110361979A (zh) | 一种铁路信号领域的安全计算机平台 | |
CN109507866A (zh) | 一种基于网络地址漂移技术的双机冗余系统及方法 | |
CN103678031B (zh) | 二乘二取二冗余系统及方法 | |
CN102402220B (zh) | 基于负荷分担式的容错飞行控制系统的故障检测方法 | |
CN105974879A (zh) | 数字仪控系统中的冗余控制设备、系统及控制方法 | |
CN112948063B (zh) | 云平台的创建方法、装置、云平台以及云平台实现系统 | |
CN110376876A (zh) | 一种双系同步的安全计算机平台 | |
CN109634171B (zh) | 双核双锁步二取二架构及其安全平台 | |
Jiang et al. | Safety-assured model-driven design of the multifunction vehicle bus controller | |
CN108183836A (zh) | 一种分布式同步总线网络测试系统及其测试方法 | |
CN108279597A (zh) | 一种基于有限状态机的计算机联锁平台控制方法 | |
CN101916068B (zh) | 基于2取2结构的计算机控制系统及其实现方法 | |
CN117573609B (zh) | 一种具有冗余功能的片上系统及其控制方法 | |
CN101441586B (zh) | 基于微包协议的三模冗余容错计算机无缝重构方法 | |
CN110716543A (zh) | 一种舰船多余度控制技术方案 | |
CN108259227A (zh) | 一种双机热备联锁系统的数据同步方法 | |
CN110413456A (zh) | 三冗余数据逐级表决系统及方法 | |
CN113791937A (zh) | 一种数据同步冗余系统及其控制方法 | |
CN103246585A (zh) | 一种存储控制器故障检测方法 | |
CN102508745B (zh) | 一种基于两级松散同步的三模冗余系统及其实现方法 | |
CN109379130A (zh) | 一种基于光纤通道节点卡的网络重构方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140409 |