Backward error recovery via conversations in Ada

An approach is proposed for using backward error recovery in Ada. The advantages and disadvantages of Ada are not discussed, nor are new run-time algorithms for Ada proposed, but a practical method is offered for using backward recovery and software diversity within this language. The authors believe that Ada has sufficient facilities to allow the use of software diversity to develop fault-tolerant systems. However, previous researchers have noticed problems in attempting to use this possibility, and restrictive rules are necessary to avoid these problems. 'Conversations' for co-ordinated backward recovery of concurrent processes are considered and the following proposals are made: a restricted scheme similar to Kim's 'concurrent recovery block', but providing for deadlines on the execution of the diverse modules; programming rules for applying this scheme to Ada procedures; and a way for automatically enforcing these rules through a source code pre-processor. Two advantages of this scheme are its functioning within this widely used conventional industrial language and its suitability for real-time systems of an iterative type.

[1]  Brian Randell System structure for software fault tolerance , 1975 .

[2]  Alan Burns,et al.  Real-time systems and their programming languages , 1986, International computer science series.

[3]  K. H. Kim,et al.  Approaches to Mechanization of the Conversation Scheme Based on Monitors , 1982, IEEE Transactions on Software Engineering.

[4]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[5]  Juris Hartmanis,et al.  The Programming Language Ada Reference Manual American National Standards Institute, Inc. ANSI/MIL-STD-1815A-1983 , 1983, Lecture Notes in Computer Science.

[6]  F. Alan Andersen,et al.  The American National Standards Institute , 1984, IEEE Engineering in Medicine and Biology Magazine.

[7]  John C. Knight,et al.  On the provision of backward error recovery in production programming languages , 1989, [1989] The Nineteenth International Symposium on Fault-Tolerant Computing. Digest of Papers.

[8]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

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

[10]  K.H. Kim,et al.  A highly decentralized implementation model for the programmer-transparent coordination (PTC) scheme for cooperative recovery , 1990, [1990] Digest of Papers. Fault-Tolerant Computing: 20th International Symposium.

[11]  Andrea Clematis,et al.  Structuring Conversation in Operation/Procedure Oriented Programming Languages , 1993, Comput. Lang..

[12]  A. Burns,et al.  Programming atomic actions in Ada , 1989, ALET.

[13]  Roy H. Campbell,et al.  FAULT TOLERANCE USING COMMUNICATING SEQUENTIAL PROCESSES. , 1984 .

[14]  Lorenzo Strigini,et al.  Implementations and Extensions of the Conversation Concept , 1991, Fault-Tolerant Computing Systems.

[15]  Henry Ledgard,et al.  Reference Manual for the ADA® Programming Language , 1983, Springer New York.

[16]  David L. Russell,et al.  State Restoration in Systems of Communicating Processes , 1980, IEEE Transactions on Software Engineering.

[17]  John C. Knight,et al.  A Framework for Software Fault Tolerance in Real-Time Systems , 1983, IEEE Transactions on Software Engineering.