恢复块方案是一种基于设计多样性和向后错误恢复的软件容错技术。它将程序结构化为一系列块,每个块包含一个主模块、一个验收测试以及一个或多个备用模块。如果主模块的输出未能通过验收测试,则系统状态恢复,并执行一个备用模块。

(图片仅供参考)
恢复块方案是一种基于设计多样性和向后错误恢复的软件容错技术。它将程序结构化为一系列块,每个块包含一个主模块、一个验收测试以及一个或多个备用模块。如果主模块的输出未能通过验收测试,则系统状态恢复,并执行一个备用模块。
由Brian Randell提出的恢复块概念是一种实现软件容错的结构化方法。其基本原理是为给定的操作提供冗余的软件模块(称为备选方案),并结合一种机制来验证操作结果的正确性。关键组件包括:验收测试(AT)、主备选方案(P)和一系列辅助备选方案(Q1、Q2、Q3)。在执行主备选方案之前,系统会保存其当前状态的检查点。P完成后,系统会对输出运行验收测试。验收测试是验证结果是否可接受的关键逻辑;它不需要证明绝对正确性,而是验证结果是否合理且一致。
如果验收测试 (AT) 的结果通过,则丢弃检查点,程序继续执行。但是,如果验收测试失败,或者主备选方案本身执行失败(例如,由于运行时错误),系统将执行回滚操作。它会从保存的检查点恢复状态,然后执行序列中的下一个备选方案 (Q1)。Q1 的输出随后将接受相同的验收测试。此过程持续进行,直到某个备选方案产生通过测试的结果,或者所有备选方案都已执行完毕,此时将宣布系统级故障。
The effectiveness of recovery blocks hinges on the diversity of the alternates. The primary and secondary modules should be designed and implemented independently, ideally by different teams using different algorithms or programming languages. This minimizes the chance of a common design flaw (a bug) existing in all alternates, which would cause them all to fail the acceptance test in the same way. The acceptance test itself is a single point of failure and must be simpler and more reliable than the modules it is testing. Compared to N-version programming, another software fault tolerance technique, recovery blocks can be more efficient as they only execute one module at a time, but they introduce latency due to the potential for rollback and re-execution.
复苏计划
(如果日期未知或不相关,例如“流体力学”,则提供其显著出现的近似估计)
只有注册会员才能免费获得 100% 的全尺寸图片和下载。.
> 登录 <