From the early days of programming, the dependability of software has been a concern. The development of distributed systems that must respond in real-time and continue to function correctly in spite of hardware failure have increased the concern while making the task of ensuring dependability more complex. This dissertation presents a technique for improving confidence in software designed to execute on a distributed system of fail-stop processors. The methodology presented is based on a temporal logic augmented with time intervals and probability distributions. A temporal logic augmented with time intervals, Bounded Time Temporal Logic (BTTL), supports the specification and verification of real-time properties such as, "The program will poll the sensor every t to T time units." Analogously, a temporal logic augmented with probability distributions, Probabilistic Bounded Time Temporal Logic (PBTTL), supports reasoning about fault-tolerant properties such as, "The program will complete with probability less than or equal to p", and a combination of these properties such as, "The program will complete within t and T time units with probability less than or equal to p." The syntax and semantics of the two logics, BTTL and PBTTL, are carefully developed. This includes development of a program state model, state transition model, message passing system model and failure system model. An axiomatic program model is then presented and used for the development of a set of inference rules. The inference rules are designed to simplify use of the logic for reasoning about typical programming language constructs and commonly occurring programming scenarios. In addition to offering a systematic approach for verifying typical behaviors, the inference rules are intended to support the derivation of formulas expressing timing and probabilistic relationships between the execution times and probabilities of individual statements, groups of statements, message passing and failure recovery. Use of the methodology is demonstrated in examples of varying complexity, including five real-time examples and four combined real-time and fault-tolerant examples.
展开▼
机译:从编程的早期开始,软件的可靠性就成为一个问题。尽管硬件出现故障,但仍必须实时响应并继续正常运行的分布式系统的开发增加了人们的担忧,同时使确保可靠性的任务变得更加复杂。本文提出了一种技术,用于提高对设计为在故障停止处理器的分布式系统上执行的软件的信心。提出的方法基于时间间隔和概率分布增强的时间逻辑。带有时间间隔的时态逻辑,Bounded Time Temporal Logic(BTTL),支持规范和验证实时属性,例如,“程序将每t到T个时间单位轮询传感器”。类似地,以概率分布增强的时间逻辑,概率有界时间逻辑(PBTTL),支持有关容错属性的推理,例如“程序将以小于或等于p的概率完成”,以及这些属性的组合例如“程序将在t和T时间单位内以小于或等于p的概率完成”。仔细开发了BTTL和PBTTL这两种逻辑的语法和语义。这包括开发程序状态模型,状态转换模型,消息传递系统模型和故障系统模型。然后提出了公理程序模型,并将其用于一组推理规则的开发。推理规则旨在简化逻辑的使用,以推理典型的编程语言结构和常见的编程场景。除了提供一种验证典型行为的系统方法之外,推理规则还旨在支持公式的表达,这些公式表达了各个语句,语句组,消息传递和故障恢复的执行时间和概率之间的时序和概率关系。在复杂度各不相同的示例中演示了该方法的使用,其中包括五个实时示例以及四个组合的实时和容错示例。
展开▼