发布时间:2025-12-09 12:03:12 浏览次数:1
可用性指的是:可以在需要时使用它并准备执行其任务的软件属性。 这是一个广阔的视角,涵盖了通常所说的可靠性(尽管它可能包含其他考虑因素,例如由于定期维护而导致的停机)。 实际上,可用性通过添加恢复的概念建立在可靠性的概念上,也就是说,当系统崩溃时,它会自我修复。 维修可以通过多种方式完成,我们将在本章中介绍。 更准确地说,Avižienis和他的同事定义了可靠性:
可靠性是避免发生比可接受的更为频繁和严重的故障的能力。
我们将可用性定义为可靠性的一个方面是:“可用性是指系统掩盖或修复故障的能力,以使累积的服务中断时间段在指定的时间间隔内不超过要求的值。” 失败的概念取决于外部因素(可能是人类)的判断。 它们还包含可靠性、机密性、完整性和涉及不可接受的故障的任何其他质量属性的概念。
可用性与安全性密切相关。 拒绝服务攻击是专门设计用来使系统发生故障的,也就是使其不可用。 可用性也与性能密切相关,因为可能很难分辨出系统何时发生故障以及何时响应变得异常缓慢。 最后,可用性与安全性密切相关,安全性与防止系统进入危险状态以及在系统损坏时恢复或限制损坏有关。
从根本上讲,可用性是通过减少故障来最大程度地减少服务中断时间。 故障意味着对环境中的系统或人类观察者可见。 也就是说,故障是系统与其规格的偏差,该偏差在外部是可见的。 构建高可用性,容错系统中最艰巨的任务之一是了解操作过程中可能发生的故障的性质(请参见侧栏“故障规划”)。 一旦了解了这些,就可以将缓解策略设计到软件中。
故障的原因称为故障。 故障可能是正在考虑的系统内部故障或外部故障。 故障发生与故障发生之间的中间状态称为错误。 可以预防,容忍,消除或预测故障。 这样,系统就可以“容忍”故障。
我们关注的领域包括如何检测系统故障,系统故障可能发生的频率,发生故障时发生的情况,允许系统停机多长时间,何时可以安全地发生故障或故障,如何进行检测。 可以防止出现故障或故障,并且可以防止发生故障时需要发出何种通知。
由于用户可以观察到系统故障,因此修复时间就是直到不再可见故障为止的时间。 这可能是响应时间的短暂延迟,也可能是某人飞往安第斯山脉的偏远地点修理一台采矿机械的时间(正如负责维修该软件的人员向我们讲述的那样)。 采矿机引擎)。 “可观察性”的概念可能是一个棘手的概念:例如,Stuxnet病毒即使造成损害,也很长时间没有被观察到。 此外,我们经常担心故障发生时所保持的能力水平(运行模式降级)。
故障与故障之间的区别允许讨论自动修复策略。 即,如果执行了包含故障的代码,但是系统能够从故障中恢复,而不会观察到与指定行为的任何偏差,则不会出现故障。