当前位置:文档之家› 容错关键技术

容错关键技术

容错关键技术
一个容错系统包含四个要素:首先是故障检测,这是容错系统必不可少的环节,其他环节以此为基础;其次是对出现的故障所造成的影响进行评估并限制其进一步传播;最后是对确定为不可恢复的故障进行处理。

容错的基本步骤概括起来是故障检测→处理故障→系统恢复。

防止故障造成系统失效有两种基本技术:即是故障掩蔽技术和系统重组技术。

故障掩蔽是防止故障造成差错的各种技术,换句话说要将发生的故障隐蔽起来。

这类技术不要求在容忍故障前检测故障,但要求做到故障包容。

故障包容是指使故障的影响局部化,不希望一个故障全局地影响整个系统的性能。

在故障效应达到模块的输出之前,通过隔离或校正来消除它们的影响,从而达到容错的目的。

掩蔽技术不改变系统的结构,即系统部件的逻辑关系相对固定,因此掩蔽技术又称静态冗余技术。

当掩蔽冗余因模块中的故障而耗尽时,再发生故障就会在输出产生错误。

系统重组是防止差错导致系统失效的各种技术。

系统重组技术首先做到故障检测,然后做到故障定位,最后做到系统恢复。

系统重组技术称动态冗余技术。

故障掩蔽技术及系统重组技术是达到容错的两种基本途径。

而它们又建立在资源冗余的基础上的。

资源冗余主要有两种基本形式:硬件冗余和软件冗余。

1、硬件冗余
实时系统中应用最广泛的冗余形式是硬件的物理重复。

随着半导体元件体积的缩小及成本的下降,硬件冗余成为更实用的一种冗余方法。

硬件冗余有两种形式:被动冗余和主动冗余。

被动硬件冗余又称静态硬件冗余,是指冗余结构并不随故障情况的变化的冗余的形式。

被动硬件冗余应用了故障掩蔽的概念,将发生的故障隐蔽起来,防止故障造成差错。

被动硬件冗余的基本机理是通过多数表决隐蔽发生的故障。

这种冗余方法一般用于多机系统。

主动硬件冗余又称动态硬件冗余,是通过故障检测,故障定位及系统恢复来
达到容错的一种技术。

由于系统恢复采用某种重组技术,因此系统冗余结构将随故障情况发生变化。

这种技术不会防止故障产生差错,但防止差错产生失效,这类应用允许发生暂时的故障的错误结果,只要系统在规定时间内进行重组并恢复正常工作。

主动硬件冗余技术与被动硬件冗余技术相比有以下优点:
(1)有更大的隔离灾难性故障的能力,这对密集的微电子电路特别重要;
(2)直到所有的后备资源耗尽了,系统才失效,因此可靠性较高;
(3)系统平均寿命增益可以大大加强;
(4)可利用后备单元的不加电元件潜在的低功耗特点;
(5)利用向后恢复能消除由瞬间故障引起的错误;
(6)易于调节后备单元的数量类型;
(7)成本比较低。

下面我们重点分析主动硬件冗余的几个方案。

方案一双机比较
最简单的双机比较方案如下图所示:
图 1 最简单的双机比较方案图
两个相同并行执行相同的计算,其结果由比较器进行比较,这是最简单的双机比较系统只提供故障检测能力,但不提供容错能力,但若配之以故障定位技术及切换技术,可以做到容错。

例如,当比较器给出不一致信号时,可以对两个模块分别进行故障测试,以确定有故障的模块,然后将正常模块输出作为系统输出,系统成为单机系统继续运行。

方案二双机备份
双机备份方案如下图所示:
图 2 双机备份方案图
一个模块为主用模块,用以产生系统输出,另一模块作为备用。

采用各种故障检测技术及故障定位技术来确定发生故障的模块。

若主用模块发生故障,则进行重组,使一个正常的备用模块成为主用,从而使系统恢复正常运行。

在进行重组的过程中系统正常运行发生暂时中断。

备用替换中的备件可分为热备份与冷备份。

采用热备份时,备件与主件同时工作,随时准备替换主件的工作。

采用冷备份时,备件平时不通电,直至需要它替换主件工作时才开始工作。

热备份的优点是中断正常的时间短。

冷备份的优点是备件平时不消耗功率。

对于电源功率很紧张的系统,可采用冷备份。

但对于系统要求系统重组的时间尽可能短,应采用热备份。

方案三监督计数器
监督计数器是一个需要以一定周期计数的计数器(可用软件实现),用它可以检测系统的故障。

其基本思想是:当一个系统无故障时,它能按照一定的周期进行计数。

如果监督计数器中的计数值超过一定的时间仍未变化,则指出系统中出现故障。

监督计数器的周期按照应用系统的要求而定。

监督计数器不仅能检测硬件故障,也能检测软件故障。

例如,一个软件如进入一个死循环,它就会超过正常执行该软件所需的时间,监督计数器就会因得不到及时变化而给出出错指示。

监督计数器仅是一种故障判定方法,要加上系统切换和重组硬件和软件才能真正形成硬件冗余。

2、软件冗余
在计算机容错系统中,许多故障检测及容错技术可用软件来实现。

这时硬
件冗余的硬件可减至最少,而冗余的软件成为主要手段。

与硬件容错设计的动态冗余技术类似,用一个静态冗余的NVP(N份程序设计)结构为核,再用S份程序作为后备,随时替换NVP中出现的差错的程序,这样就构成了一个混合的动态冗余系统。

这种系统由于对时间和空间的需求量太大,故很少有实际应用。

如果NVP结构退化到一个极端的情况:N=1,则可以得到一个特别有意义的动态冗余结构—恢复块(RB)结构。

RB结构的原理是:主块首先投入运行,如果检测出故障,经现场恢复后由一个后备顶上继续运行,这一过程可以重复到耗尽所有后备块,或者某个程序的故障行为超过了预料,从而导致了不可恢复的后果。

恢复块结构的可靠度极大地依赖软件故障的故障覆盖率(成功检测和恢复的概率)。

过低的恢复覆盖率将使RB结构失去意义。

如果覆盖率小于0.9,则RB结构对可靠度几乎没有改进。

然而,除了二份程序设计技术外,其它软件故障检测技术很难使覆盖率达到0.9。

因此RB结构不宜用与高可靠度要求的场合。

在实时多任务系统中,我们采用了另一种软件冗余方法——任务级动态冗余。

任务级动态冗余方法是实时系统中瞬间故障的恢复方法之一。

该方法与RB 结构不同,是在实时多任务的环境下,充分利用操作系统提供的功能,对各个基本任务建立后备的任务作为冗余,并对后备任务进行容错调度,从而起到类似于重试或卷回恢复的作用,达到消除瞬间故障影响的目的。

(1)任务级动态冗余实现
由于实时多任务环境难于建立检查点并支持卷回恢复,而任务级动态冗余的思想充分利用了实时多任务操作系统提供的任务管理功能,为基本任务建立后备任务作为冗余,并对各个任务进行任务容错调度以消除瞬时故障的影响。

实时任务级的动态冗余是基于以下几点:
(1)实时多任务操作系统允许同时执行多个任务,每一个任务都能够独立于其它任务而运行。

任务是实时多任务操作系统唯一能动的目标,它完成所有的工作。

一个任务在它的整个生存期内可以有五种状态:睡眠、挂起、睡眠一挂起、
就绪和运行。

任务总处于某种状态下,直到事件的出现使任务状态改变。

这些事件可以是一个中断、一个信息到达邮箱、一个单元收到信号量等等。

(2)任务可以被赋予不同优先级,处理机不是按时间片等方法调度任务,而是按优先权驱动事件的调度方法调度任务的执行。

一个任务如果是在就绪状态下具有逻辑上的高的优先级,则首先获得处理机。

中断任务的优先级通常比一般任务的优先级要高,它们一发生就总是中断处理机。

(3)一个任务未被建立时仅是存放在系统内存的代码集合,建立该任务时,系统根据其相应的说明字段及局部堆栈,堆栈中定义了该任务的运行环境。

从节省内存讲应删除不用的任务,删除仅使任务退出任务队列,并不是删除任务本身。

被删除的任务还可以随时重建。

(4)被建立的任务马上进入就绪状态,如果系统中已有处于就绪状态的任务,那么这些任务根据其优先级排队,同一优先级的任务按就绪状态时间长短进行排队,就绪时间长的比时间短的先运行。

运行任务执行完后被删除,放弃对处理机的控制,就绪队列中的第一个任务才能进入运行状态。

当一个优先级高于运行任务优先级的任务进入就绪队列时,就会抢占运行。

抢占时,运行任务的标记及相应的寄存器内容被系统保存在该任务的堆栈区中,将新建立任务的局部堆栈取代现时运行的堆栈,并加载有关寄存器内容,然后新任务投入运行。

(5)由于任务有可能随时被异步产生的事件所激活而投入运行一实时处理,所以任务必须是以过程的形式出现,且这个过程的功能实体必须处于无限循环之中,过程体内完成所希望的运算。

根据以上几点,结合应用程序的要求,可以采取以下的措施:
(l)把应用程序分解成多个任务,任务以过程的形式出现,而不是主模块。

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

(3)为各基本任务准备一个后备任务存放在内存中,平时后备任务不建立,不占系统资源,仅在需要时才激活使用,后备任务的优先级比相应的优先级要高。

(4)为实现恢复功能的后备任务可以与原有任务完全一样,也可以是替换算法,这样可以避免原有任务可能存在的软件设计错误。

(5)后备任务理论上可以反复使用,可以认为系统具有无限多个相同的冗余备份,也可以为每个任务准备多个不同的后备任务,即多个替换算法,增加系统的恢复能力。

相关主题