嵌入式双机容错实时系统的设计

发布者:RadiantDreams最新更新时间:2014-01-07 来源: eefocus关键字:双机容错  实时系统  实时调度算法 手机看文章 扫描二维码
随时随地手机看文章
  容错实时系统的研究主要集中在两个方面:① 改进实时调度算法,使之确保实时任务在正常运行和遇到错误时,均能在规定时限到来以前获得正确的输出。② 将过去应用于普通计算机系统中的冗余容错策略移植到实时系统中。

  在具有硬件容错能力的计算机系统中,其失效65%来自软件,仅有8%来自于硬件。因此,软件容错能力成为决定计算机系统可靠性的关键。为了在出现硬件或软件的暂时或永久故障的情况下,保证关键任务仍能在规定的时限范围内完成运算,并输出正确的结果,提出一种双处理器实时嵌入式容错系统体系结构。该系统结构采用多处理器体系结构,实现计算机之间的通信,并无缝整合了计算机硬件、操作系统、应用软件级的软件容错设计,达到从整体上提高系统可靠性的目的。

  1 双机容错实时系统的体系结构

  本系统采用图1所示的双机容错系统硬件结构模型。该系统在双机比较系统的基础上,结合多处理机的松耦合与紧耦合系统结构,在不同的处理机间通过通道互连实现通信,为在硬件容错中结合软件容错提供可能。


图1 双机容错系统结构模型

  A机和B机各有独自的外围控制逻辑和外设,这样不会引起系统资源的竞争,增加整体系统的稳定性。当然,这样是以花费更多的硬件设施为代价的。比较器及不一致检测用专门设计的仲裁检测电路来实现,其根据A机与B机周期向其发送的自检测信号来判断A机系统和B机系统运行的状况。

  双机系统的运行状态如下:

  ① 如果A机与B机均正常运行,则将计算机A作为主系统,计算机B作为备份使用,A机的运行结果作为系统输出,A机运行到检测点,向B机发送日志,B机更新日志列表。

  ② 如果A机正常而B机故障,亦将A机的运行结果作为系统输出,同时将B机的运行故障状态报告给A机,并向B机进行复位控制操作。

  ③ 如果A机故障,B机正常,则进行开关切换操作,B机进行系统备份任务重调度,B机运行结果作为系统输出,并向A机进行复位控制操作,在检测点更新A机日志,保持需要备份的任务状态一致。

  2 软件设计与实现

  图2所示模型结合嵌入式实时系统的体系结构,采用层次结构和模块结构相结合,无缝整合了计算机硬件、操作系统、应用软件级的软件容错设计。在整体上采用分层的结构模型,克服了软、硬件分离和脱节的问题,提高系统的灵活性和可移植性。模型的每一层均可以看作是一个相对独立的系统。在每一层中按照系统功能,划分不同的功能模块。


图2 双机容错系统软件体系结构

  该系统采用对称结构,为支持容错处理,每个节点从下到上分为3个主要部分,即MCFT(Multiprocessor Communication for Fault Tolerance)、RTOS系统级容错组件、任务级动态冗余组件。

  2.1 多机容错通信模块MCFT

  在操作系统与硬件之间加入MCFT层,MCFT作为BSP(Board Support Package)的一部分,作为硬件平台的抽象层,为操作系统提供统一的界面,提高系统的可移植性。有容错需求的任务,通过MCFT所提供的功能传递日志,保持主系统和备份系统的关键任务的状态和数据一致。MCFT屏蔽了底层通信的具体实现细节,使系统的实现与连接介质无关。

  MPFT管理着一些数据包,并且在各个节点之间发送和接收这些数据包,数据包的结构如下:


2.2 RTOS系统级容错组件

  RTOS系统级容错组件,包括系统内核级容错支持组件、系统自诊断组件和主/备用机切换支持组件。[page]

  (1) 内核级容错支持组件

  为支持操作系统级和应用级通信,在该系统中,每个节点上保存两个对象表,一个本地任务表,一个容错任务表。本地任务表在每个节点上都是不同的,它包含在此节点上创建的所有任务。容错对象表包含系统中所有的容错任务,在所有节点上是一样的。为保持在所有节点上容错任务表的一致性,每个节点对容错对象的创建、删除等都必须通知给备份节点。利用检查点技术和传递日志法,保持主系统和备份系统的备份任务的状态和数据一致。一旦主机发生故障,系统程序自动进行主/备用机切换,备用机系统使备份任务就绪,利用实时任务的调度策略,使备份任务在备份机上发生重调度,成为主机。

  (2) 系统自诊断组件

  如图3所示,系统中采用自诊断的方法来诊断系统级的故障,用任务级的检测来诊断应用级的故障。

  自诊断划分为几个不同的测试阶段,系统启动自检测阶段和周期自检测阶段。自动启动诊断的因素有:主/备用机定时切换和主机发生故障。周期自检测阶段根据系统需求,周期性检测外设和通信口。每个阶段对应设备的几种功能块,包括CPU的自诊断、中断响应自诊断、串口自诊断、定时器自诊断、离散量自诊断、RAM自诊断等。

  由于结果比较是实时系统中任何事务处理都需要经历的步骤,因此把任务级的故障检测放到结果判别部分进行。

  (3) 主/备用机切换支持组件

  仲裁检测电路中对主/备用机设置了“看门狗”监视器。当主/备用机处于正常工作状态时,运行于CPU上的某一任务周期性地对“看门狗”施加复位信号,这样,“看门狗”计数器就不可能产生溢出触发信号;当CPU出现故障时,“看门狗”会输出一个离散触发信号并发出报警,此时,系统进行自动切换,让备用的系统机工作。


图3 主控流程

  2.3 任务级动态冗余

  在实时多任务系统中,采用另一种软件冗余方法——任务级动态冗余。任务级动态冗余方法是实时系统中瞬间故障的恢复方法之一。

  在实时多任务的环境下,充分利用操作系统提供的功能,对各个基本任务建立后备任务作为冗余,并对后备任务进行容错调度,从而起到类似于重试或卷回恢复的作用。利用检查点技术和传递日志法保持主系统和备份系统的状态的一致性,实现错误恢复,有较高的性价比。

  根据应用程序,结合实时性要求,采用以下的措施:

  ① 把应用程序分解成多个任务,任务以过程的形式出现,各个任务进入运行的顺序是从1到n,并在每个任务的最后设置检查点,传递日志。

  ② 根据应用程序的要求事先给各个任务安排优先级,使得任务可以根据要求及时占有处理器,实现实时处理。

  ③ 为各基本任务准备一个后备任务存放在内存中,平时后备任务不建立,不占有系统资源,仅在需要时才激活使用,后备任务的优先级比相应的优先级要高。马上建立就抢占执行,是某种意义上的重试或程序卷回。

  ④ 为实现恢复功能的后备任务,可以和原有任务完全一样,也可以是替换算法。

  下面的算法能为各个任务产生容错调度,从而实现任务冗余:


当后备任务执行了Nmax次之后还通不过检测,就认为系统出现永久故障,系统报警。Nmax是个阀门值,是由实时要求所决定的。

  3 可靠性分析

  在考虑了双机的切换问题(包括切入成功率,与此相关的切入时间和再次切入的时间及其故障判别问题)后,完整的双机容错系统的稳态可用度为


其中:λ为平均失效率,β为故障诊断率,是平均诊断时间的倒数;μ为平均维修率,是平均维修时间的倒数;α为加入失效率,是平均切入时间的倒数;C为故障判别率;α′为再次切入失效率,是再次切入时间的倒数(重启双工时间的倒数);D为切入成功率。

  采用对称双机系统,在典型值的计算中可以获得99.99995%的可用度。

  4 结论

  随着实时系统在安全领域内越来越多的应用,可靠性已经成为衡量系统优劣的重要因素之一。传统的实时系统容错只满足了系统某一方面的容错需求。为了在出现硬件或软件的暂时或永久故障的情况下,系统仍能在规定的时限范围内完成运算,并输出正确的结果,本文提出一个软、硬件结合的完整的解决方案,能满足系统的强实时性、高可靠性、服务不断流的要求。此方案应用于RTEMS中,具有很高的可靠性。

关键字:双机容错  实时系统  实时调度算法 引用地址:嵌入式双机容错实时系统的设计

上一篇:模拟电路设计的九个阶段
下一篇:基于时间触发模式的电子控制系统设计

推荐阅读最新更新时间:2024-03-16 13:33

μC/OS-II实时操作系统内存管理的改进
    摘要: 分析了μC/OS-II实时操作系统在内存管理上存在的不足,提出了改进方法,通过一个具体实例描述了该方法的实现。     关键词: 实时操作系统 内存管理 微处理器 链接器 μC/OS-II 是一种开放源码的实时操作系统,具有抢先式、多任务的特点,已被应用到众多的微处理器上。虽然该内核功能较多,但还是有不甚完善的地方。笔者在分析使用中发现,内核在任务管理(包括任务调度、任务间的通信与同步)和中断管理上是比较完善的,具有可以接受的稳定性和可靠性;但在内存管理上显得过于简单,内存分区的建立方式有不合理之处。 1 内存管理不足之处的分析 在分析许多 μC/OS-II 的应用实例中发现
[应用]
海克斯康打造精确车辆实时测量系统
来自海克斯康测量集团的360°SIMS智能在线测量解决方案最为突出的两大优势是测量速度和质量,根据该公司销售经理Cliff Bliss的说法,这套全新的系统是对已经存在的应用WLS白光测量传感器自动化系统的一次重大升级。这套系统拥有广阔的市场前景,随着计算机和相关固态电子系统的发展,海克斯康测量集团实现了直接在线传递测量系统,而且系统效率和传统汽车工业每小时60个工作量的峰值效率旗鼓相当。 测量速度之外,Bliss强调最多的核心竞争力是,该系统除了能够传输过程控制数据,还可以传输质量控制数据。其中过程控制数据非常精确,用来分析制造生产以及装配过程的未来进展趋势,当数据出现异常,会提醒用户采取调节措施;但是通常状况
[汽车电子]
海克斯康打造精确车辆<font color='red'>实时</font>测量<font color='red'>系统</font>
嵌入式实时系统开发的正确选择
入式系统通常是一个包含微处理器的特殊计算机系统,是一个较大系统或设备的组成部分,它在很大程度上决定了设备的功能特性。许多具备数字接口的设备如微波设备、录像机(VCR)和汽车等都会用到嵌入式系统。有些嵌入式系统需要使用操作系统,有些则用单个程序实现整个逻辑,但所有嵌入式系统提供的功能都要比通用计算系统更专业些。嵌入式系统功能包括: 1. 监视环境-从输入传感器读取数据,然后处理数据并显示结果。 2. 控制环境-产生并向激励器发送命令。 3. 转换信息-转换并处理收集到的数据。 虽然通过传感器和激励器完成与外部世界的交互是嵌入式系统的重要特点,但这些嵌入式系统还提供适合它们所在设备的特殊功能。嵌入式系统一般用来执行控制程序
[单片机]
嵌入式<font color='red'>实时</font><font color='red'>系统</font>开发的正确选择
μC/OS-II实时操作系统内存管理的改进
C/OS-II是一种开放源码的实时操作系统,具有抢先式、多任务的特点,已被应用到众多的微处理器上。虽然该内核功能较多,但还是有不甚完善的地方。笔者在分析使用中发现,内核在任务管理(包括任务调度、任务间的通信与同步)和中断管理上是比较完善的,具有可以接受的稳定性和可靠性;但在内存管理上显得过于简单,内存分区的建立方式有不合理之处。 1 内存管理不足之处的分析 在分析许多 C/OS-II的应用实例中发现,任务栈空间和内存分区的创建采用了定义全局数组的方法,即定义一维或二维的全局数组,在创建任务或内存分区时,将数组名作为内存地址指针传递给生成函数。这样实现起来固然简单,但是不够灵活有效。 编译器会将全局数组作为未初始化的全局变量,放
[单片机]
嵌入式实时系统中的优先级反转问题
摘要:嵌入式实时系统中由于多任务共享资源,通常会出现一些奇怪的现象。本文就什么是优先级反转及其产生原因进行分析,并提出2个行之有效的解决方案。 关键词:嵌入式实时系统 多任务 信号量 优先级反转 1 问题的提出   目前,市场上占有率比较高的商业RTOS有VxWorks/PSOS、QNX、 LynxOS、VRTX,、Windows CE等。这些为数众多的RTOS绝大多数都是多任务实时微内核的结构,采用的是基于优先级的可抢占式调度策略。系统为每一个任务分配一个优先权,调度程序保证当前运行的进程是优先权最高的进程。但是,有时候会出现一种比较奇怪的现象:由于多进程共享资源,具有最高优先权的进程被低优先级进程阻塞,反而使具有中优先级
[应用]
拥有微软Windows CE的实时系统
介绍 Microsoft Windows CE 快速反应的嵌入式应用常常管理严格的时间反应。例如,制造过程控制,高速的数据采集设备,电讯交换设备,医用设备,空中“有线”控制,武器发射装备,空间航行和导航,实验室,实验控制,汽车发动机控制,机器人系统。 为保证这种功能,就意味着不仅需要计算精确性,还有结果的时间性,此种应用必须在指定的时间参数内做出反应。 实时系统的广义定义是“对任何外部刺激,计算机做出及时反应是至关重要的系统”,标准定义在Internet newsgroup corp realtime group中 。实时定义为:一个实时系统它的计算正确性,不仅依靠于计算逻辑上的正确,还包括及时的产生结果。如果没有达到系统
[嵌入式]
基于实时分布式数据库的轨道交通电力监控系统
  1 引言   电力监控系统是对分布距离远,生产单位分散的生产系统的一种数据 采集、监视和控制系统。   经过20多年的发展,已经从集中式的检测系统,发展成为了开放、分布式的系统。随着系统功能的不断增多、应用领域的不断拓宽和系统规模的不断增大,电力监控系统对其支撑平台和开发环境的要求也越来越高。特别是随着通讯技术和数据库技术的迅猛发展,给电力监控系统的发展和进步也带来了很大的促进作用。本文通过对现有电力监控技术的分析,指出其不足,并利用分布式实时数据库技术,采用新的架构,对其进行了改进。   2 分布式实时数据库监控系统   2.1 实时数据库的体系结构   实时数据库首先是一个数据库管理系统,它有一般dbm
[嵌入式]
基于μC/OS-Ⅱ的实时分层调度算法研究
0引言 嵌入式实时系统由于自身CPU计算能力较弱和内存容量较低的原因,希望采用复杂度低、系统开销小的调度算法。目前的实时系统通常采用单优先级驱动的抢占式调度算法,根据任务的某一时间特性参数如任务周期或最后截止期等为各个任务分配系统资源 。这种抢占式调度策略具有灵活性和动态性等优点。但在,实际应用系统中也有一些由不相交的周期任务子集组成,每个子集是系统的一个主要部分,称之为子系统。例如,飞行管理系统包含飞行控制,电子设备和导航式三个子系统。这三个子系统的任务如果按照以前的静态、动态算法实现需要系统开发人员设计很复杂的调度算法,实时控制也相对困难 。本文按照分层思想在实时操作系统层面上设计调度算法,减轻了解决此类问题系统开发人员的负
[单片机]
基于μC/OS-Ⅱ的<font color='red'>实时</font>分层<font color='red'>调度</font><font color='red'>算法</font>研究
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved