完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
容错实时系统的研究主要集中在两个方面:① 改进实时调度算法,使之确保实时任务在正常运行和遇到错误时,均能在规定时限到来以前获得正确的输出。② 将过去应用于普通计算机系统中的冗余容错策略移植到实时系统中。
|
|
相关推荐
3个回答
|
|
在具有硬件容错能力的计算机系统中,其失效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系统级容错组件,包括系统内核级容错支持组件、系统自诊断组件和主/备用机切换支持组件。 (1) 内核级容错支持组件 为支持操作系统级和应用级通信,在该系统中,每个节点上保存两个对象表,一个本地任务表,一个容错任务表。本地任务表在每个节点上都是不同的,它包含在此节点上创建的所有任务。容错对象表包含系统中所有的容错任务,在所有节点上是一样的。为保持在所有节点上容错任务表的一致性,每个节点对容错对象的创建、删除等都必须通知给备份节点。利用检查点威廉希尔官方网站 和传递日志法,保持主系统和备份系统的备份任务的状态和数据一致。一旦主机发生故障,系统程序自动进行主/备用机切换,备用机系统使备份任务就绪,利用实时任务的调度策略,使备份任务在备份机上发生重调度,成为主机。 (2) 系统自诊断组件 如图3所示,系统中采用自诊断的方法来诊断系统级的故障,用任务级的检测来诊断应用级的故障。 自诊断划分为几个不同的测试阶段,系统启动自检测阶段和周期自检测阶段。自动启动诊断的因素有:主/备用机定时切换和主机发生故障。周期自检测阶段根据系统需求,周期性检测外设和通信口。每个阶段对应设备的几种功能块,包括CPU的自诊断、中断响应自诊断、串口自诊断、定时器自诊断、离散量自诊断、RAM自诊断等。 由于结果比较是实时系统中任何事务处理都需要经历的步骤,因此把任务级的故障检测放到结果判别部分进行。 (3) 主/备用机切换支持组件 仲裁检测电路中对主/备用机设置了“看门狗”监视器。当主/备用机处于正常工作状态时,运行于CPU上的某一任务周期性地对“看门狗”施加复位信号,这样,“看门狗”计数器就不可能产生溢出触发信号;当CPU出现故障时,“看门狗”会输出一个离散触发信号并发出报警,此时,系统进行自动切换,让备用的系统机工作。 图3 主控流程 2.3 任务级动态冗余 在实时多任务系统中,采用另一种软件冗余方法——任务级动态冗余。任务级动态冗余方法是实时系统中瞬间故障的恢复方法之一。 在实时多任务的环境下,充分利用操作系统提供的功能,对各个基本任务建立后备任务作为冗余,并对后备任务进行容错调度,从而起到类似于重试或卷回恢复的作用。利用检查点威廉希尔官方网站 和传递日志法保持主系统和备份系统的状态的一致性,实现错误恢复,有较高的性价比。 根据应用程序,结合实时性要求,采用以下的措施: ① 把应用程序分解成多个任务,任务以过程的形式出现,各个任务进入运行的顺序是从1到?n,并在每个任务的最后设置检查点,传递日志。 ② 根据应用程序的要求事先给各个任务安排优先级,使得任务可以根据要求及时占有处理器,实现实时处理。 ③ 为各基本任务准备一个后备任务存放在内存中,平时后备任务不建立,不占有系统资源,仅在需要时才激活使用,后备任务的优先级比相应的优先级要高。马上建立就抢占执行,是某种意义上的重试或程序卷回。 ④ 为实现恢复功能的后备任务,可以和原有任务完全一样,也可以是替换算法。 下面的算法能为各个任务产生容错调度,从而实现任务冗余: 当后备任务执行了Nmax次之后还通不过检测,就认为系统出现永久故障,系统报警。Nmax是个阀门值,是由实时要求所决定的。 |
|
|
|
3 可靠性分析
在考虑了双机的切换问题(包括切入成功率,与此相关的切入时间和再次切入的时间及其故障判别问题)后,完整的双机容错系统的稳态可用度为 其中:λ为平均失效率,β为故障诊断率,是平均诊断时间的倒数;μ为平均维修率,是平均维修时间的倒数;α为加入失效率,是平均切入时间的倒数;C为故障判别率;α′为再次切入失效率,是再次切入时间的倒数(重启双工时间的倒数);D为切入成功率。 采用对称双机系统,在典型值的计算中可以获得99.99995%的可用度。 4 结论 随着实时系统在安全领域内越来越多的应用,可靠性已经成为衡量系统优劣的重要因素之一。传统的实时系统容错只满足了系统某一方面的容错需求。为了在出现硬件或软件的暂时或永久故障的情况下,系统仍能在规定的时限范围内完成运算,并输出正确的结果,本文提出一个软、硬件结合的完整的解决方案,能满足系统的强实时性、高可靠性、服务不断流的要求。此方案应用于RTEMS中,具有很高的可靠性。 |
|
|
|
只有小组成员才能发言,加入小组>>
818 浏览 0 评论
1162 浏览 1 评论
2537 浏览 5 评论
2872 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2720 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1115浏览 3评论
198浏览 2评论
465浏览 2评论
382浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
463浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 13:47 , Processed in 1.037925 second(s), Total 50, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号