软件容错有那些方法?
0 385
0
该提问暂无详细描述
收藏
2021-02-15 10:25 更新 空心人 •  2542
共 1 个回答
高赞 时间
0

实现容错技术的主要手段是冗余。冗余是指再实现系统规定功能时多余的那部分资源,包括硬件、软件、信息和时间。由于加入了这些资源,有可能使系统的可靠性得到较大的提高。通常冗余技术可以分为以下四类

结构冗余

结构冗余是常用的冗余技术,按其工作方式,可分为静态冗余、动态冗余和混合冗余。 静态冗余:。静态冗余通过表决和比较来屏蔽系统中出现的错误。由于无须对错误进行特别的测试,也不必进行模块的切换就能实现容错,故称为静态冗余。 动态冗余:动态冗余主要是采用多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来顶替它并重新运行。这里需要执行检测、切换和恢复过程。 每当一个出错模块被其备用模块顶替之后,冗余系统就相当于进行了一次重构。各备用模块在其待机时,可与主模块一样工作,也可不工作,前者叫做热备份系统,后者叫做冷备份系统。在热备份系统中,备用模块在待机过程中其失效率为零。 混合冗余:混合冗余兼有静态冗余和动态冗余的长处。

信息冗余

为检测或纠正信息在运算或传输中的错误,须另外加一部分信息,这种现象称为信息冗余。在通信和计算机系统中,信息常以编码的形式出现,采用奇偶码定重码循环码等冗余码制式就可以发现甚至纠正这些错误。为了达到此目的,这些码的码长远远超过不考虑误差校正时的码长,增加了计算量和信达占用的时间。

时间冗余

时间冗余是指以重复执行指令或程序来消除瞬时错误带来的影响。对于重复执行不成功的情况,通常的处理办法是发出中断,转入错误处理程序,或对程序进行复算,或重新组合系统,或放弃程序处理,在程序重复计算中较为常用的方法是程序回滚技术。

冗余附加技术

冗余附加技术是指为实现上述冗余技术所需的资源和技术,包括程序、指令、数据、存放和调用他们的空间和通道等。在没有容错要求的系统中,它们是不需要的,但在容错系统中,它们是必不可少的。

收藏
2021-02-15 10:30 更新 小眼的铁板烧 •  2910