CN102521104A - 高安全性系统运行进度的监控方法 - Google Patents
高安全性系统运行进度的监控方法 Download PDFInfo
- Publication number
- CN102521104A CN102521104A CN2011104139749A CN201110413974A CN102521104A CN 102521104 A CN102521104 A CN 102521104A CN 2011104139749 A CN2011104139749 A CN 2011104139749A CN 201110413974 A CN201110413974 A CN 201110413974A CN 102521104 A CN102521104 A CN 102521104A
- Authority
- CN
- China
- Prior art keywords
- monitoring
- message
- function
- data
- timer
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
一种高安全性系统运行进度的监控方法,其特征是:1)采用计算机外部的专用时钟中断作为定时器计数,在故障-安全计算机中设置一个专用时钟,向多个CPU发送同步信号;CPU上的软件采用该同步信号作为定时器计数,就能保证多个CPU的定时器到期时间的一致性;2)在接收通信数据时采用消息队列方式;3)在系统运行流程中增加监控代码;4)使用监控到期处理函数;5)对所有监控进行统一管理。本发明的方法既能对系统的“运行滞后”故障做到及时准确地识别,又能对“系统停滞”故障进行及时修复,解决了轨道交通中对进度监控的安全性和可用性要求。
Description
技术领域
本发明涉及一种轨道交通技术,尤其是一种轨道交通中的安全监控技术,具体地说是一种轨道交通中使用的中高安全性系统运行进度的监控方法。
背景技术
目前,在一些涉及重大人身安全的自动控制系统领域,要求系统具有极高的安全性,为此,对系统中出现的故障要采取防护措施。在这些故障中,有部分故障是跟系统的运行进度相关的。如某种逻辑运算的运行时间过长,导致该有的输出延迟了,这里称之为“运行滞后”故障;如在通信过程中(包括系统内部通信和外部通信)因为干扰没有收到特定的数据,导致系统流程停留在某个位置,这里称之为“系统停滞”故障。出现这两类故障会使系统无法满足实时性,导致严重的后果。因此,要对系统的运行进度进行监控,一旦出现故障,一方面需要及时准确地检测出来,另一方面要尽快修复故障,如果是不可修复的,则要采取安全措施(如输出安全信号),防止产生危险。这样系统才能满足安全性和可用性的要求。
目前,越来越多的高安全性系统的核心逻辑已经由故障-安全计算机来完成。故障-安全计算机中有多块进行逻辑运算的CPU,它们运算的结果会经过表决后再对外输出。为检测系统的某个操作是否在规定时间内完成,运行在CPU上的软件需要启动定时器进行倒计时。通常定时器是由操作系统提供,采用计算机内自带的时钟源。但在故障-安全计算机中,因为无法保证多个CPU上的时钟精度一致,可能会导致定时器到期的时间不一致。如果时钟误差达到一定值,可能会造成多个CPU之间产生不同的行为,从而影响表决结果。因此,为满足安全性指标,需要有可靠的定时器方式来实现计时准确且多个CPU一致。
在系统的运行流程中如果有等待接收通信数据的行为,那么就有可能产生“系统停滞”故障。传统的等待通信数据的方法是采用recv函数,当数据收到时,该函数返回。但问题时,如果在规定时间内没有收到数据,即产生了“系统停滞”故障,该流程无法被中断,因为它被“卡”在recv函数中。此时,如果要想修复该故障,唯一能做的就是杀死该流程所处的线程。但这种做法通常是很“粗鲁”的,并且可能会有安全风险。因此,为满足可用性和安全性指标,需要有一种设计方法保证在发生“系统停滞”故障时,系统能安全地运行下去。
发明内容
本发明的目的是针对现有的高安全性系统运行中易出现运行滞后和系统滞后两种严重影响安全运行的问题,发明一种既能对系统的“运行滞后”故障做到及时准确地识别,又能对“系统停滞”故障进行及时修复的高安全性系统运行进度的监控方法,以满足轨道交通高安全性系统对进度监控的安全性和可用性要求。
本发明的技术方案是:
一种高安全性系统运行进度的监控方法,其特征是:
1)采用计算机外部的专用时钟中断作为定时器计数,在故障-安全计算机中设置一个专用时钟,向多个CPU发送同步信号;CPU上的软件采用该同步信号作为定时器计数,就能保证多个CPU的定时器到期时间的一致性;
2)在接收通信数据时采用消息队列方式,在系统的某个处理流程中,如果存在等待接收通信数据的行为,则定义一个消息队列作为该流程所处的线程接收外界事件通知的唯一方式;
3)在系统运行流程中增加监控代码,对不包含接收通信数据的流程,只需在流程的头尾加上监控代码,分别是启动监控函数和取消监控函数;对包含接收通信数据的流程,在流程的头部加上启动监控函数,在流程中间收到数据接收完毕消息时,加上取消监控函数;在收到数据接收超时消息时,加上检查监控是否有效函数;
4)使用监控到期处理函数,对不包含接收通信数据的流程,监控到期时,即检测出“运行滞后”故障,对包含接收通信数据的流程,监控到期时,即检测出“系统停滞”故障,处理的措施就是发送监控到期消息,通知主线程进行故障处理;
5)对所有监控进行统一管理,不管是对“运行滞后”的监控,还是对“系统停滞”的监控,都采用统一的方式进行监控,这样,可以定义一个通用的监控方案,当某个程序过程需要监控时,只需调用相应的监控方案进行监控即可,所述的监控方案中应包含的信息有:监控ID、监控初始化函数、监控到期处理函数、监控取消函数和监控的定时器时延。
所述的处理流程只会在消息队列收到新消息时中断,将等待外界传入数据的过程函数放到专门的接收线程中,该接收线程收到数据后会给主线程发数据接收完毕消息,主线程在while循环中使用msgQReceive等待所有外界事件通知;当收到数据接收完毕消息时,取消该监控,退出循环,去获取相应的数据;当收到数据接收到由定时器触发的超时消息时,退出循环,采取发送重发请求的故障处理措施,如果三次重发后还是没收到,则跳过该数据处理新的数据。
所述的检查监控是否有效的作用是:当某个流程的运行时间非常接近定时器的计数时,可能存在这样的情况,消息队列先收到数据接收完毕消息,紧接着又收到定时器触发的监控到期消息,然后msgQReceive取出了数据接收完毕消息,取消了监控,并退出了循环,但此时消息队列中还残留着已失效的监控到期消息,当启动下一次监控时,如果不对其有效性进行判断,则会导致监控刚启动就到期,该函数就是用来防止出现该情况的。
本发明的有益效果:
本发明的方法既能对系统的“运行滞后”故障做到及时准确地识别,又能对“系统停滞”故障进行及时修复,解决了轨道交通中对进度监控的安全性和可用性要求。
附图说明
图1是本发明的采用消息队列方式接收通信数据示意图。
图2是本发明的出现失效的监控到期消息的场景示意图。
图3是本发明的故障-安全计算机从二取二变为三取二的示意图。
图4是本发明的故障-安全计算机学习过程监控的示意图。
图5是本发明的故障-安全计算机逻辑运算监控的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
如图1-5所示。
一种高安全性系统运行进度的监控方法,它采用了以下措施:
1)采用计算机外部的专用时钟中断作为定时器计数
在故障-安全计算机中设置一个专用时钟,向多个CPU发送同步信号。CPU上的软件采用该同步信号作为定时器计数,就能保证多个CPU的定时器到期时间的一致性。
2)在接收通信数据时采用消息队列方式
在系统的某个处理流程中,如果存在等待接收通信数据的行为,则定义一个消息队列作为该流程所处的线程(假设为主线程)接收外界事件通知的唯一方式。这样,该处理流程只会在该消息队列收到新消息时中断。将等待外界传入数据的过程函数(如recv)放到专门的接收线程中,该接收线程收到数据后会给主线程发数据接收完毕消息。主线程在while循环中使用msgQReceive等待所有外界事件通知。当收到数据接收完毕消息时,取消该监控,退出循环,去获取相应的数据;当收到数据接收超时消息(由定时器触发)时,退出循环,采取相应的故障处理措施,如发送重发请求。如果三次重发后还是没收到,则跳过该数据处理新的数据等。采用消息队列方式接收通信数据的流程如图1所示。
3)在系统运行流程中增加监控代码
对不包含接收通信数据的流程,只需在流程的头尾加上监控代码,分别是启动监控函数和取消监控函数。
对包含接收通信数据的流程,在流程的头部加上启动监控函数,在流程中间收到数据接收完毕消息时,加上取消监控函数;在收到数据接收超时消息(即监控到期消息)时,加上检查监控是否有效函数。
监控的各种函数的作用如下:
启动监控:启动该监控预先定制的定时器。
取消监控:取消该监控已经启动的定时器。
检查监控是否有效:当某个流程的运行时间非常接近定时器的计数时,可能存在这样的情况,消息队列先收到数据接收完毕消息,紧接着又收到定时器触发的监控到期消息,然后msgQReceive取出了数据接收完毕消息,取消了监控,并退出了循环。但此时消息队列中还残留着已失效的监控到期消息,当启动下一次监控时,如果不对其有效性进行判断,则会导致监控刚启动就到期。该函数就是用来防止出现该情况的。出现失效的监控到期消息的场景如图2所示。
4)使用监控到期处理函数
对不包含接收通信数据的流程,监控到期时,即检测出“运行滞后”故障,至于具体的措施,取决于系统的策略。因为“运行滞后”故障通常是设计错误导致的,如对CPU运算性能和系统负载的估计不正确等,所以该故障发生后,比较安全的做法是关闭CPU,同时,由于整个系统是故障-安全的,当所有CPU关闭后,系统就会对外输出安全的信号。
对包含接收通信数据的流程,监控到期时,即检测出“系统停滞”故障,处理的措施就是发送监控到期消息,通知主线程进行故障处理。
5)对所有监控进行统一管理
不管是对“运行滞后”的监控,还是对“系统停滞”的监控,都采用统一的方式进行监控。这样,可以定义一个通用的监控方案,当某个程序过程需要监控时,只需调用相应的监控方案进行监控即可。监控方案中包含的信息有:监控ID(用来唯一标识该监控),监控初始化函数,监控到期处理函数,监控取消函数,监控的定时器时延。
下面以三取二故障-安全计算机为例作进一步说明。
1)“系统停滞”故障的监控
正常情况下,该计算机有3个CPU进行三取二工作,当其中有一块CPU损坏取走后,剩下两块CPU进行二取二工作。当再插入一块新的CPU时,会与原有的两块CPU进行协商,重新进行三取二工作。该过程的流程如图3所示。在协商过程中,新的CPU需要学习原有CPU的数据,此时系统处于“非工作”状态。但是,系统停留在该状态的时间必须很短,因为如果停留的时间超过规定时间,就会产生“系统停滞”故障,就有可能产生危险。因此,需要对该学习过程进行监控。如果在规定时间内没能完成学习过程,原有的两块CPU需要强制回到二取二状态继续工作。
在学习过程中,原有CPU需要发送数据给新CPU,发送完后,等待新CPU反馈学习结果。在等待新CPU反馈学习结果前,启动监控M1,监控的时延为t1。在while循环中使用msgQReceive等待所有外界事件通知。当收到学习结果且为成功时,取消监控M1,退出循环,在规定的时间点转为三取二状态;当收到学习结果且为失败时,取消监控M1,退出循环,在规定的时间点转为二取二状态;当收到监控到期消息时,退出循环,直接转为二取二状态。学习过程监控的流程如图4所示。
M1的监控方案配置如下:
{
MONITOR_ID_STUDY, //监控ID
&study_monitor_init, //监控初始化函数
&study_monitor_expire, //监控到期函数
&study_monitor_cancel, //监控取消函数
20 //监控时延(以专用时钟节拍计数)
}
当监控M1启动时,首先会调用study_monitor_init,增加相应的定时器,定时器的计数值为20。CPU中的软件会有一个线程维护定时器,该线程由外部专用时钟中断驱动。每次时钟中断过来,则检查所有的定时器,看是否有到期的。若M1定时器的计数值减为0,则调用study_monitor_expire。若主线程在到期前调用study_monitor_cancel,则会提前取消该定时器。
在study_monitor_expire中,会往主线程发送监控到期消息。主线程都到该消息后,会检查监控是否有效,如果有效,则退出循环,转为二取二状态。
2)“运行滞后”故障的监控
该计算机中的3个CPU进入三取二工作状态后,开始进行逻辑处理。通常,逻辑处理是周期性运行的。周期的大小(如300ms)是根据应用的特点决定的,例如应用会有要求每隔一个周期必须往外输出指令。如果一个周期内的逻辑运算超过了规定时间,导致应用完成输出的时间超过了一个周期,就会产生“运行滞后”故障,就有可能产生危险。因此,需要对逻辑运算进行监控。如果在规定时间内没能完成特定的逻辑运算,系统就要关闭相应的CPU。如果只有1个CPU运算超期,则剩下的2个CPU仍能进行二取二工作。如果有2个CPU运算超期,则先是2个CPU被关闭,紧接着因为系统不允许单个CPU工作,最后所有CPU都会关闭,系统对外输出安全的信号。
在特定逻辑运算的开头,启动监控M2,监控的时延为t2。在该逻辑运算的结尾,取消监控M2。如果在运算期间监控到期,则说明产生了“运行滞后”故障,会进行相应的故障处理。逻辑运算监控的流程如图5所示。
M2的监控方案配置如下:
{
MONITOR_ID_LOGIC, //监控ID
&logic_monitor_init, //监控初始化函数
&logic_monitor_expire, //监控到期函数
&logic_monitor_cancel, //监控取消函数
5 //监控时延(以专用时钟节拍计数)
}
当监控M2启动时,首先会调用logic_monitor_init,增加相应的定时器,定时器的计数值为5。若M2定时器的计数值减为0,则调用logic_monitor_expire。
在logic_monitor_expire中,会通知系统进行自身CPU的关闭操作。
本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
Claims (3)
1.一种高安全性系统运行进度的监控方法,其特征是:
1)采用计算机外部的专用时钟中断作为定时器计数,在故障-安全计算机中设置一个专用时钟,向多个CPU发送同步信号;CPU上的软件采用该同步信号作为定时器计数,就能保证多个CPU的定时器到期时间的一致性;
2)在接收通信数据时采用消息队列方式,在系统的某个处理流程中,如果存在等待接收通信数据的行为,则定义一个消息队列作为该流程所处的线程接收外界事件通知的唯一方式;
3)在系统运行流程中增加监控代码,对不包含接收通信数据的流程,只需在流程的头尾加上监控代码,分别是启动监控函数和取消监控函数;对包含接收通信数据的流程,在流程的头部加上启动监控函数,在流程中间收到数据接收完毕消息时,加上取消监控函数;在收到数据接收超时消息时,加上检查监控是否有效函数;
4)使用监控到期处理函数,对不包含接收通信数据的流程,监控到期时,即检测出“运行滞后”故障,对包含接收通信数据的流程,监控到期时,即检测出“系统停滞”故障,处理的措施就是发送监控到期消息,通知主线程进行故障处理;
5)对所有监控进行统一管理,不管是对“运行滞后”的监控,还是对“系统停滞”的监控,都采用统一的方式进行监控,这样,可以定义一个通用的监控方案,当某个程序过程需要监控时,只需调用相应的监控方案进行监控即可,所述的监控方案中应包含的信息有:监控ID、监控初始化函数、监控到期处理函数、监控取消函数和监控的定时器时延。
2.根据权利要求1所述的方法,其特征是所述的处理流程只会在消息队列收到新消息时中断,将等待外界传入数据的过程函数放到专门的接收线程中,该接收线程收到数据后会给主线程发数据接收完毕消息,主线程在while循环中使用msgQReceive等待所有外界事件通知;当收到数据接收完毕消息时,取消该监控,退出循环,去获取相应的数据;当收到数据接收到由定时器触发的超时消息时,退出循环,采取发送重发请求的故障处理措施,如果三次重发后还是没收到,则跳过该数据处理新的数据。
3.根据权利要求1所述的方法,其特征是所述的检查监控是否有效的作用是:当某个流程的运行时间非常接近定时器的计数时,可能存在这样的情况,消息队列先收到数据接收完毕消息,紧接着又收到定时器触发的监控到期消息,然后msgQReceive取出了数据接收完毕消息,取消了监控,并退出了循环,但此时消息队列中还残留着已失效的监控到期消息,当启动下一次监控时,如果不对其有效性进行判断,则会导致监控刚启动就到期,该函数就是用来防止出现该情况的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104139749A CN102521104A (zh) | 2011-12-13 | 2011-12-13 | 高安全性系统运行进度的监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104139749A CN102521104A (zh) | 2011-12-13 | 2011-12-13 | 高安全性系统运行进度的监控方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102521104A true CN102521104A (zh) | 2012-06-27 |
Family
ID=46292036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104139749A Pending CN102521104A (zh) | 2011-12-13 | 2011-12-13 | 高安全性系统运行进度的监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102521104A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740326A (zh) * | 2016-01-21 | 2016-07-06 | 腾讯科技(深圳)有限公司 | 浏览器的线程状态监测方法及装置 |
CN106933687A (zh) * | 2017-03-13 | 2017-07-07 | 武汉斗鱼网络科技有限公司 | 定时方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020152446A1 (en) * | 2001-04-13 | 2002-10-17 | Fleming Roger A. | Adaptive heartbeats |
CN101268447A (zh) * | 2005-05-26 | 2008-09-17 | 美国联合包裹服务公司 | 软件进程监控 |
CN101847107A (zh) * | 2010-03-30 | 2010-09-29 | 南京恩瑞特实业有限公司 | 基于消息队列的外界数据接收方法 |
CN102129393A (zh) * | 2011-03-09 | 2011-07-20 | 南京恩瑞特实业有限公司 | 通用定时任务管理的实现方法 |
-
2011
- 2011-12-13 CN CN2011104139749A patent/CN102521104A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020152446A1 (en) * | 2001-04-13 | 2002-10-17 | Fleming Roger A. | Adaptive heartbeats |
CN101268447A (zh) * | 2005-05-26 | 2008-09-17 | 美国联合包裹服务公司 | 软件进程监控 |
CN101847107A (zh) * | 2010-03-30 | 2010-09-29 | 南京恩瑞特实业有限公司 | 基于消息队列的外界数据接收方法 |
CN102129393A (zh) * | 2011-03-09 | 2011-07-20 | 南京恩瑞特实业有限公司 | 通用定时任务管理的实现方法 |
Non-Patent Citations (1)
Title |
---|
陈文赛: "一种高可靠性、高安全性系统——三取二计算机系统", 《现代雷达》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740326A (zh) * | 2016-01-21 | 2016-07-06 | 腾讯科技(深圳)有限公司 | 浏览器的线程状态监测方法及装置 |
CN105740326B (zh) * | 2016-01-21 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 浏览器的线程状态监测方法及装置 |
CN106933687A (zh) * | 2017-03-13 | 2017-07-07 | 武汉斗鱼网络科技有限公司 | 定时方法、装置及电子设备 |
CN106933687B (zh) * | 2017-03-13 | 2020-05-12 | 武汉斗鱼网络科技有限公司 | 定时方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9032258B2 (en) | Safety system challenge-and-response using modified watchdog timer | |
KR20190079809A (ko) | 결함 주입 테스트 장치 및 그 방법 | |
RU2520399C2 (ru) | Микрокомпьютер и способ его работы | |
CN100383747C (zh) | 通信系统中失效隔离的系统和方法 | |
CN102541048B (zh) | 控制器局域网消息传送停止测试系统和方法 | |
CN108073105B (zh) | 基于异构双处理器冗余结构的安全plc装置和实现方法 | |
WO2021164679A1 (zh) | 面向车规级芯片功能安全的故障管理系统 | |
CN105487945B (zh) | 一种非相似双余度四机自监控容错控制方法 | |
CN111352338A (zh) | 一种双余度飞控计算机及余度管理方法 | |
CN102841828A (zh) | 逻辑电路中的故障检测和减轻 | |
US20170102968A1 (en) | A monitoring unit as well as method for predicting abnormal operation of time-triggered computer systems | |
CN102521059A (zh) | 一种星载数据管理系统自主容错方法 | |
CN105426263B (zh) | 一种实现金库系统安全运行的方法及系统 | |
CN103744753B (zh) | 一种双机系统的数据交互方法与装置 | |
CN101783759A (zh) | 一种总线错误恢复处理方法 | |
CN102360315B (zh) | 一种容错控制系统看门狗电路管理方法 | |
CN102521104A (zh) | 高安全性系统运行进度的监控方法 | |
JP2011198205A (ja) | 二重系制御システム | |
US20120323341A1 (en) | Control device | |
CN107403526A (zh) | 一种循环机芯钞票识别模块异常纠正方法 | |
CN113665631A (zh) | 一种联锁主机设备远程重启方法及装置 | |
WO2015188619A1 (zh) | 物理主机故障检测方法、装置及虚机管理方法、系统 | |
JP7012915B2 (ja) | コントローラ | |
CN105573869B (zh) | 基于i2c总线的系统控制器容错控制方法 | |
US20120185858A1 (en) | Processor operation monitoring system and monitoring method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120627 |