东南大学 自动化 实时系统与控制研讨课报告.docx_第1页
东南大学 自动化 实时系统与控制研讨课报告.docx_第2页
东南大学 自动化 实时系统与控制研讨课报告.docx_第3页
东南大学 自动化 实时系统与控制研讨课报告.docx_第4页
东南大学 自动化 实时系统与控制研讨课报告.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实时系统中的容错技术吕阳 080111摘要 随着实时计算技术的飞速发展,越来越多的安全关键应用依赖实时系统作为核心控制部件,实时系统成为影响安全关键应用性能和可靠性的决定性因素。显然,提高实时系统的可靠性与提高实时系统的性能具有同样重要的意义。随着硬件可靠性的大幅度提高,实时软件的可靠性成为限制系统可信性的瓶颈。容错,作为保障实时软件可靠性的重要技术,已经成为实时系统研究的热点问题。本论文介绍了以冗余为基础的容错技术,并详细讲解了软件冗余。关键词: 实时系统 容错 冗余Abstract Due to the development of real-time systems, more and more safety-critical applications is becoming to use real-time system as the kernel of the control system, and real-time systems become an affectable factor to determine the dependability of the safety-critical application. The dependable techniques of hardware of real-time have become mature enough, which makes the software of real-time systems become the bottleneck of system dependability. As a very important technique for system reliability, software fault tolerance has become a very hot topic. This paper introduces the redundancy-based fault-tolerant technology.Explain in detail the software redundancy. Keyword: real-time system tolerance Redundancy 0引言 随着实时计算技术的飞速发展,越来越多的安全关键应用依赖实时系统作为核心控制部件,实时系统成为影响安全关键应用性能和可靠性的决定性因素。容错,作为保障实时系统可靠性的重要技术,已经成为实时系统研究的热点问题。容错技术主要用于保证系统在出现错误的情况下仍然能够继续运行。本文研究的是系统层次上的容错技术。容错的基础是冗余,数据差异性可以对冗余技术起到辅助作用。1冗余容错技术都会包含使用和适当地管理冗余。换句话说,如果系统希望在某些部件出现故障的时候继续运行,那么它在开始运行的时候必需具有冗余的能力。由于实时系统的故障中,暂时故障占大多数,所以冗余技术就显得很有效。硬件冗余硬件冗余是采用附加的硬件来弥补所发生的故障。硬件冗余的结构有很多种,比较典型的是N模冗余(NMR)结构。冗余是昂贵的,2或3倍的硬件是非常奢侈的。例:冯诺依曼提出了三重模块冗余机制(TMR)。TMR 包括三个完全一致的运算电路,三者的输出与一个比较电路相连,采用少数服从多数的比较原则决定最终的输出。比较电路进行错误检测,并保证无错模块的运行不受出错模块干扰,是 TMR 实现的关键。通常N模冗余系统都被设计成可以清除发生故障的单元。也就是当检测到故障的时候,会判断这个故障是否是暂时性的,如果不是就隔开,换新的。时间冗余任务调度在时间上留有余地,这样如果必要的话就可以运行一些任务,而不会超过严格的时间限。是后向错误恢复的实现。最简单的就是在错误的地方重试,其他的方法还包括使计算回到前一个检查点,在那点继续软件冗余随着软件功能和性能的飞速提升,软件变得越来越复杂,由于软件设计缺陷或误操作而引发的错误也不断提高。统计表明,大型实时系统中,由于软件缺陷造成的系统失效是硬件缺陷的 10 倍。对于同一任务使用不同软件,如果由不同的人员编写就更好,这样一个软件出错的话,其他的还可以继续工作。软件冗余不是简单把软件复制N份,因为对于相同的输入,这N份软件都会产生错误。所以这N个版本软件必须是不同的。影响软件各版本差异度的因素:1.编程语言2.使用的数值运算法则3.程序员所受训练和他们素质以及管理模式。运行多版本软件有两种方法。一种叫N-版本程序,一种叫块恢复方法。块恢复(RB):程序体按照执行顺序分为主模块和N-1 个备份模块,通常 RB 的备份模块数不超过三个。主模块的运算结果由验收测试检验,若结果通过测试,则输出,否则运行备份模块。多版本技术(NVP):按 NMR 的基本原理,NVP 由多个具有相同功能的程序版本和比较(或投票)算法构成。比较算法根据少数服从多数的原则选择 NVP 的有效输出。3软件冗余实际应用轨道车辆人机界面软件冗余设计(1)电气系统状态显示 此模块实时地显示连接到列车通信网络中的各个电气系统的状态!列车通信网络中连接的电气系统很多,该功能模块需要处理的数据比较多,而且电气系统状态的表现形式有很多种( 网压等数据采用柱状条来表示,设定速度等数据用数字的变化来表示等) ,因此电气系统状态显示模块的复杂度较高,单个版本不容易达到较高的可靠性!而电气系统的状态信息是司机把握列车当前运行状况的重要依据,因此该模块具有很高的可靠性要求,必须对此模块实施冗余设计!考虑到模块本身的特点,可以实施恢复块技术!其冗余设计结构如图 2所示!进入恢复块之前,将当前显示的状态存储起来,若结果通过接受性测试,则显示成功,进行后续程序的运行; 若结果没有通过接受性测试,则用存储的状态重新进行显示,然后调用另一个恢复块!当两个恢复块都调用完后结果均没有通过测试,则电气系统状态显示功能模块失效!(2)电气系统控制 司机可以通过该模块控制受电弓的升降空调的开关等,这些控制功能的错误会直接影响列车的安全行驶旅客的舒适度,因此该模块具有很高的可靠性要求!另一方面,该模块可以控制的电气系统较多,控制方式也不相同,因此这个模块的复杂度较高,不容易达到较高的可靠性!采用3版本程序设计来提高这个模块的可靠性!在软件运行过程中,当司机按下控制某个电气系统的软键,则电气系统控制功能模块的3个版本都接收输入,经过处理,每个版本形成一个它认为应当发送的电气系统控制命令,通过多数选举决定是否发控制消息,发什么控制消息!其冗余设计结构如图3所示。4结语本文讨论了基于系统层次上的容错技术。以冗余为基础,介绍了硬件冗余,时间冗余,软件冗余。并详细讲了,软件冗余在轨道车辆人机界面上的应用。由于实时系统的实时性,人们对于系统在时间限内的错误处理有较高的要求,但受限于系统成本和载重量的限制,无法真正做到零错误。而且在硬实时系统中,错误的发生将是灾难性的,我们仍需要在实时容错领域不断努力,将错误的发生尽量减小,不仅在软硬件的冗余方面有所突破,希望也可在调度方法上提高实时系统的容错。参考文献实时系统 C.M.Krishna Kang G.Shin 著 戴海琼译 清华大学出版社陈进进 郑刚. 轨道车辆人机界面软件冗余设计与可靠性分析. 计算机应用与软件,2011.12冯春辉. 舰船计算机测控系统中的软件冗余方法研究. 舰船科学技术,2009.4 实时系统问题回答08011111 吕阳1. 运行中的软件如何检测故障?答:可以利用软件任务的相对独立性和优先级不同进行监测,并确定发生故障的任务位置.1软件监视例行任务前台例行任务优先级最低,各任务模块单独或联合设置运行标志(计数器),并离线测定最大运行周期。每次运行使标志置位(或增减软件计数值),由高优先级定时中断任务每隔一定周期定时检查,运行正常时则清除标志(计数器),当某一任务发生软件局部故障(如死循环,误跳转等),则在下一检查周期内无法完成规定的计数而测定其软件故障。如例行任务为应用控制计算,并采用功能模块(内部仪表)结构时,更为方便实用,可测定控制模块内部的全部软件故障(图1).其它结构的例行任务,也可按此合理设计调度管理模块,使之方便地记录各模块运行状态。2合理使用WDT硬件 实时控制系统通常由基本实时中断提供准确的时钟,以及必要的系统管理服务。一般由中断程序定时输出复位脉冲使硬件监视定时器WDT复位实现中断任务运行监视,但合理使用WDT使之不仅能监视定时中断处理,也能监视更高优先级的任务(如通信收、发报文处理)。图2为采用可编程定时/计数器作为WDT时,正确的中断服务处理过程。其中T:为中断服务程序运行最大限时,中断服务过程异常超时则使WDT动作;T:为定时中断间隔最大限时,当更高优先级任务占用CPU超时或其它任务异常使中断关闭超时则WDT起作用。对于采用模拟电路wDT(如74LS123,NE555构成RC定时的可重触发式单稳电路,适用于小型简单系统),由于WDT限时由硬件RC确定,故必须在定时中断返回之前输出WDT复位信号,以有效地监视中断处理任务。图3为错误的WDT使用方法,当中断处理任务较复杂时,处理过程发生软件故障则下次定时中断仍可能响应,而wDT和例行任务异常输出均不动作,直到堆栈滋出系统崩溃。3适当的信息冗余 可用于监视重要的数据或程序区,或可用于故障自动恢复后的控制现场恢复。2. C/C+语言中定时任务实现方法?答:基于WM_TIMER消息的定时: Windows提供了一个系统定时器,调用SetTimer()函数为程序分配一个定时器,应用程序响应SetTimer()函数发送来的消息WM)TIMER,在回调函数中完成相应操作。windows系统定时器是IBMPC硬件和ROM BIOS构造的定时器逻辑的一个相当简单的扩展。PC的ROM初始化8253定时器芯片产生硬件中断08H。中断08H每隔541915 ms产生一次或1812次/s,所以Windows系统定时器的最小周期为55ms左右,即应用程序每秒只能处理18个实时任务。此外,这个定时器消息的优先级太低,只有在所有的消息(除了消息WM PAINT)被处理后才能被处理。因此setTimer()函数只能用于一般的定时,它远远不能满足定时周期较小和精确要求的应用系统。基于GetTickCount()函数的定时在精度要求较高的情况下,如要求误差不大于1ms时,可以利用GetTickCount()函数。该函数的返回值是DWORD型,表示以ms为单位的计算机启动后经历的时间间隔。精度比WM)TIMER消息映射要高,在较短的定时中其计时误差为15ms,在较长的定时中其计时误差较小。但若定时时间太长,就可能出现死机一样的现象, CPU占用率非常高,一般只能用于要求不高的延时程序中,如要求误差不大于1ms的情况。下面的代码可以实现50ms的精确定时,其误差小于1msDWORD dwStar,t dwStop; /起始值和中止值dwStop =GetTickCount();while(TRUE)dwStart= dwStop; /上一次的中止值变成新的起始值do dwStop =GetTickCount(); while(dwStop -50 dwStart);基于Query Performance Frequency( )和QueryPerformance Counter()的定时对于精确度要求很高的定时操作,可以使用Query Performance Frequency( )和Query Performance Counter()函数。这两个函数是VC /C+提供的仅供windows95及其后续版本使用的精确时间系统函数,并要求计算机从硬件上支持精确定时器。现在通用的计算机的软硬件环境一般都支持该功能。该方法实现的精确定时器的具体工作机制是:首先调用Query Performance Frequency()函数获得机器内部定时器的时钟频率,然后在需要严格定时的事件发生之前和发生之后分别调用Query Performance counter()函数,利用两次获得的计数之差及时钟频率,计算出事件经历的精确时间。其定时误差不超过1us,精度与CPU等机器配置有关。3多核处理器软件如何运行(设计开发)?答:当设计要在多核或多处理器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论