Automatic synthesis of fault-tolerance

  • Authors:
  • Sandeep S. Kulkarni;Ali Ebnenasir

  • Affiliations:
  • Michigan State University;Michigan State University

  • Venue:
  • Automatic synthesis of fault-tolerance
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Fault-tolerance is an important property of today's software systems as we rely on computers in our daily affairs (e.g., medical equipments, transportation systems, etc). Since it is difficult (if not impossible) to anticipate all classes of faults that perturb a program while designing that program, it is desirable to incrementally add fault-tolerance concerns to an existing program as we encounter new classes of faults. Hence, in this dissertation, we concentrate on automatic addition of fault-tolerance to (distributed) programs; i.e., synthesizing fault-tolerant programs from their fault-intolerant version. The main contributions of the dissertation regarding theoretical aspects are as follows: (1) We identify the effect of safety specification modeling on the complexity of synthesizing fault-tolerant programs from their fault-intolerant version. (2) We show the NP-completeness of synthesizing failsafe fault-tolerant distributed programs from their fault-intolerant version. (3) We identify the sufficient conditions for polynomial-time synthesis of failsafe fault-tolerant distributed programs. (4) We design a sound and complete synthesis algorithm for enhancing the fault-tolerance of high atomicity programs—where program processes can atomically read/write all program variables—from nonmasking to masking. (5) We present a sound algorithm for enhancing the fault-tolerance of distributed programs—where program processes have read/write restriction with respect to program variables. (6) We present a synthesis method for providing reuse in the synthesis of different programs where we automatically specify and add pre-synthesized fault-tolerance components to programs. (7) We define and address the problem of synthesizing multitolerant programs that are subject to multiple classes of faults and provide (possibly) different levels of fault-tolerance corresponding to each fault-class. To validate our theoretical results, we develop an extensible software framework, called Fault-Tolerance Synthesizer (FTSyn), where developers of fault-tolerance can interactively synthesize fault-tolerant programs. Also. FTSyn provides a platform for developers of heuristics to extend FTSyn by integrating their heuristics for the addition of fault-tolerance in FTSyn. Using FTSyn, we have synthesized several fault-tolerant distributed programs that demonstrate the applicability of FTSyn for the cases where we have different types of faults, and for the cases where a program is subject to multiple simultaneous faults. (Abstract shortened by UMI.)