正如我在Len Bass、Paul Clements和Rick Kazman的实践中所读到的关于可用性投票策略的文章,错误恢复中的投票策略的定义是:
在冗余处理器上运行的进程各自接受等效的输入,并计算发送给投票者的简单输出值。如果投票者从单个处理器检测到异常行为,它就会失败。投票算法可以是“多数规则”或“首选组件”,也可以是其他一些算法。这种方法用于纠正算法的错误操作或处理器的故障,并常用于控制系统。如果所有处理器都使用相同的算法,则冗余只检测处理器故障,而不检测算法故障。因此,如果故障的后果是极端的,例如潜在的生命损失,则冗余组件可以是多种多样的。多样性的一个极端是,每个冗余组件的软件由不同的团队开发,并在不同的平台上执行。不那么极端的做法是在不同的平台上开发一个单一的软件组件。多样性的开发和维护成本很高,只在特殊情况下使用,例如飞机表面的控制。它通常用于控制系统,在这种控制系统中,给投票者的输出是直接的,容易分类为等价的或偏差的,计算是循环的,所有冗余部件都接收来自传感器的等效输入。当出现故障时,多样性没有停机时间,因为选民继续运作。这种方法的变化包括单纯形方法,它使用“首选”组件的结果,除非它们偏离了“受信任”组件的结果。冗余组件之间的同步是自动的,因为它们都被假定是并行地在同一组输入上计算。
有人能告诉我这种策略的一些例子吗?
发布于 2016-10-23 21:07:30
据我所知,航天飞机飞行控制计算机使用投票来决定使用哪一种输出。他们都可以投票赞成或反对对方。如果这四个系统都想出了不同的答案,所有的人都会互相投票,一台备用的飞行计算机,而不是建立在与四个初选相同的平台上,就会取代它们。你可以很容易地搜索到细节。
https://softwareengineering.stackexchange.com/questions/334404
复制相似问题