Reliability Issues in Computing System Design

This paper surveys the various problems involved in achieving very high rehability from complex computing systems, and discusses the relatmnship between system structurmg techniques and techniques of fault tolerance. Topics covered mclude: 1) protective redundancy in hardware and software; 2) the use of atomic actmns to structure the activity of a system to limit mformatmn flow; 3) error detection techniques; 4) strategies for locating and dealmg with faults and for assessing the damage they have caused; and 5) forward and backward error recovery techmques, based on the concepts of recovery line, commitment, exceptmn, and compensation. The ideas described relate to techmques used to date in systems mtended for environments in whmh high reliability is demanded Three specific systems the JPL-STAR, the Bell Laboratories ESS No. 1A processor, and the PLURIBUS are described m some detail and compared.

[1]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[2]  Karl N. Levitt,et al.  Greatest Common Divisor of n Integers and Multipliers (Certification of Algorithm 386) , 1973, Commun. ACM.

[3]  Joost Verhofstad The construction of recoverable multi-level systems , 1977 .

[4]  P. M. Melliar-Smith,et al.  A program structure for error detection and recovery , 1974, Symposium on Operating Systems.

[5]  Robert S. Fabry Dynamic verification of operating system decisions , 1973, CACM.

[6]  Roy Levin Program structures for exceptional condition handling , 1977 .

[7]  SIDNEY L. HANTLER,et al.  An Introduction to Proving the Correctness of Programs , 1976, CSUR.

[8]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

[9]  P. M. Melliar-Smith,et al.  Software reliability: The role of programmed exception handling , 1977, Language Design for Reliable Software.

[10]  Brian Randell Reliable Computing Systems , 1978, Advanced Course: Operating Systems.

[11]  William S. McPhee Operating System Integrity in OS/VS2 , 1974, IBM Syst. J..

[12]  Peter G. Neumann,et al.  A Study of Fault-Tolerant Computing , 1973 .

[13]  William A. Wulf Reliable hardware/software architecture , 1975 .

[14]  Leon J. Osterweil,et al.  Data Flow Analysis in Software Reliability , 1976, CSUR.

[15]  Murray Edelberg Data base contamination and recovery , 1974, SIGFIDET '74.

[16]  Peter J. Denning,et al.  Fault Tolerant Operating Systems , 1976, CSUR.

[17]  D. A. Rennels,et al.  Fault-tolerance experiments with the JPL STAR computer. , 1972 .

[18]  Joost Verhofstad Recovery and crash resistance in a filing system , 1977, SIGMOD '77.

[19]  Algirdas Avizienis,et al.  The STAR (Self-Testing And Repairing) Computer: An Investigation of the Theory and Practice of Fault-Tolerant Computer Design , 1971, IEEE Transactions on Computers.

[20]  Edsger W. Dijkstra,et al.  The structure of the “THE”-multiprogramming system , 1968, CACM.

[21]  Ralph L. London A view of program verification , 1975 .

[22]  W. A. Wulf,et al.  Reliable hardware/software architecture , 1975, IEEE Transactions on Software Engineering.

[23]  R. Kerr,et al.  Recovery blocks in action: A system supporting high reliability , 1976, ICSE '76.

[24]  John B. Goodenough,et al.  Exception handling: issues and a proposed notation , 1975, CACM.

[25]  David Lorge Parnas,et al.  Response to undesired events in software systems , 1976, ICSE '76.

[26]  D. B. Lomet Process structuring, synchronization, and recovery using atomic actions , 1977 .