📜  计算机系统容错技术

📅  最后修改于: 2022-05-13 01:57:00.129000             🧑  作者: Mango

计算机系统容错技术

容错是尽管系统中发生故障,系统仍以适当的方式工作的过程。即使在执行了如此多的测试过程之后,系统也有可能出现故障。实际上,一个系统不可能完全没有错误。因此,系统的设计方式使得在错误可用性和故障的情况下,系统可以正常工作并给出正确的结果。

任何系统都有两个主要组件——硬件和软件。其中任何一个都可能发生故障。因此,硬件和软件都有不同的容错技术。

硬件容错技术:
与软件相比,使硬件容错更简单。容错技术使硬件正常工作并给出正确的结果,即使系统的硬件部分发生故障。基本上有两种技术用于硬件容错:

  1. 比斯特——
    BIST 代表内置自测。系统在一定时间后一次又一次地对自身进行测试,这就是硬件容错的BIST技术。当系统检测到故障时,它会关闭故障组件并切换到它的冗余部分。系统基本上会在发生故障时自行重新配置。
  2. TMR –
    TMR 是三重模块化冗余。生成关键组件的三个冗余副本,并且所有这三个副本同时运行。对所有冗余副本的结果进行投票,并选择多数结果。它可以容忍一次单个故障的发生。

软件容错技术:
软件容错技术用于使软件在故障发生和失效的情况下可靠。软件容错中使用了三种技术。前两种技术很常见,基本上是硬件容错技术的改编。

  1. N 版编程 –
    在 N 版本编程中,N 个版本的软件由 N 个开发人员或开发人员组开发。 N版本编程就像硬件容错技术中的TMR。在 N 版本编程中,所有冗余副本同时运行,并且每次处理获得的结果都不同。 n 版本编程的想法基本上是仅在开发过程中获取所有错误。

  2. 恢复块 –
    恢复块技术也类似于 n 版本编程,但在恢复块技术中,冗余副本仅使用不同的算法生成。在recovery block中,所有的冗余副本不是同时运行的,而是一个接一个地运行。恢复块技术只能用于任务期限超过任务计算时间的情况。

  3. 检查点和回滚恢复 -
    该技术不同于上述两种软件容错技术。在这种技术中,每次我们执行一些计算时都会对系统进行测试。当出现处理器故障或数据损坏时,此技术基本上很有用。