Fault tolerance techniques for real time operating system seminar coordinator. As users are not concerned only about whether it is working but also whether it is working correctly, particularly in safety critical cases, fault tolerant computing ftc plays a important role especially since early fifties. Both schemes are based on software redundancy assuming that the events of coincidental software failures are rare. Optimal structure of faulttolerant software systems. Avizeinis, the nversion approach to faulttolerant software, ieee transactions of software engineering, vol.
Software fault tolerance carnegie mellon university. A multilevel approach, is an outgrowth of lecture notes that the author has used for the graduate course ece 257a. An overview of software fault tolerant computing k. Hp active software data 3 78 hp peripherals data 6 79 applications. Fault tolerant sw component based software engineering. A number of fault tolerance techniques aimed at minimizing the effect of software faults are being investigated. Software failure lead to partialtotal system crashes. The diversity can also be introduced by employing different algorithms for obtaining the same solution or by choosing different programming languages. The transfer of the concepts of fault tolerance to. A paper describing nversion programming written by the original creator of the concept. These principles deal with desktop, server applications andor soa. Nversion programming nvp, also known as multiversion programming or multipleversion dissimilar software, is a method.
It also states all the special features that are needed in order to execute the set of n version in a faulttolerant manner. The nversion approach to faulttolerant software ieee. Software techniques, however, are more flexible because softwar e can be changed after the system has been built. Twentyfifth international symposium on faulttolerant computing, 1995, highlights from twentyfive years. Principal requirements for the implementation of nversion software are. Principal requirements for the implementation of nversion software. The need to control software fault is one of the most. Faulttolerant software reliability modeling using petri. Murray our thanks for the support of thls work and for permitting us to participate in an important area of fault tolerant computing. At execution time, the faulttolerant structure attempts to cope with the effect of those faults that survive the development process. This book presents recovery blocks and nversion programming and other advanced fault tolerance models based on.
Coveragebased testing strategies and reliability modeling. This report describes the results obtained in the period september 1, 1989 to march 31, 1990. A nonfaulttolerant software unit will be called simplex in this paper. Pdf the nversion approach to faulttolerant software. Fault tolerance computing draft carnegie mellon university 18849b dependable embedded systems spring 1999. Nversion programming nvp nvp is based on the principle of design diversity, that is coding a software module by different teams of programmers, to have multiple versions. Fault tolerance computing draft carnegie mellon university. Conclusion nversion programming and recovery blocks are two different approaches to designing faulttolerant software architectures in nvp, the same specification is implemented in a number of different versions by different teams during development the design teams are kept separate and do not share their designs nor do they discuss the.
The n version approach to faulttolerant software abstract. A faulttolerance approach to reliability of software operation, digest of papers ftcs8. Approach to componentbased synthesis of faulttolerant. Thus the capability to tolerate software faults, particularly for critical applications. Detailed reports are attached on preliminary report on consensus voting in the presence of failure correlation, and on modeling execution time of multistage nversion faulttolerant software. This is certainly more true of software systems than almost any phenomenon, not all software change in the same way so software fault tolerance methods are designed to overcome execution errors by modifying variable values to create an acceptable program state. Work in 45 aims to treat software faulttolerance as a robust supervisory control rsc problem and propose a rsc approach to software faulttolerance. When a fault occurs, these techniques provide mechanisms to. They are unnecessary in the case of a single program. Faulttolerant software assures system reliability by using protective redundancy at the software level. When the software reliability is of critical importance, special programming techniques are used in order to achieve its fault tolerance.
Two of the bestknown faulttolerant software design methods are nversion programming nvp and recovery block scheme rbs. Software fault tolerance techniques are designed to allow a system to tolerate software faults that remain in the system after its development. Principal requirements for the implementation of n version software are summarized and the dedix distributed supervisor and testbed for the execution of n version software is described. For example, two similar errors will out weigh one good result in the threeversion case, anda set ofthree similar errors will prevail overaset oftwosimilar good results wheni n 5. A framework to formally verify conformance of a software process to a software method dek, rb, sb, yl, mpg, pp.
Techniques and implementation, artech house, norwood, ma, 2001. By software fault tolerance in the application layer, we mean a set of application level software components to detect and recover from faults that are not handled in the hardware or operating. N version approach to faulttolerant software bers the set of good similar results at a decision point, then the decision algorithm will arrrive at an erroneous decision result. Failure intensity of the hyperexponential model the transformation approach is based on interpreting the. On the performance of software faulttolerance strategies laas. Whereas, an nversion programming nvp scheme that relies on design diversity is suitable for tolerating software design bugs. To make a simplex software unit faulttolerant, the corresponding solution is to add one, two. Check input data ask for new input use default value and raise flag 2. Faulttolerant software reliability modeling 651 p i, 1. For higher system dependability, we might go for a hybrid approach that relies on both the nvp and esvp approaches. In this approach the software component under consideration is treated as a controlled object that is modeled as a generalized kripke structure or finitestate concurrent system 44,45.
Fault tolerance techniques for real time operating system 1. Faulttolerant computing at the university of california, santa barbara, and, in rudimentary forms, at several other institutions prior to 1988. The extent to which software continues to operate despite introduction of invalid inputs. Guest editors introduction understanding fault tolerance. Pdf software fault tolerance in the application layer. The nversion programming scheme the nversion programming scheme nvps 7 is a multipleversion technique in which all the versions are designed to satisfy the same basic requirements and the decision of output correctness is based on the comparison of all the outputs. Software fault tolerance techniques are employed during the procurement, or development, of the software. The software should provide correct results in the face of various failures. Fault tolerance techniques for real time operating system. Fault tolerant software architecture stack overflow. The application of fault tolerant techniques to a realtime system, proc. A good in depth discussion of the concept and how to apply it.
Eighth annual international conference on faulttolerant computing, toulouse, pp. The time period for the evaluation was chosen to reflect a typical application of faulttolerant software in a critical environment such as a flight control system gluc86. Failures are detected by comparing the results of the different versions. There are two basic techniques for obtaining faulttolerant software. Reliability modeling for faulttolerant software systems submitted by cai xia for the degree of doctor of philosophy at the chinese university of hong kong abstract software permeates our modern society, and its complexity and criticality is ever increasing. Modular redundancy and nversion programming modular r edundancy uses multiple, identical r epli. Faults in one module should not affect other modules. Basic fault tolerant software techniques geeksforgeeks. Principal requirements for the implementation of n version software are summarized and the dedix. In this hybrid approach, each software version of an nvp. In this paper we will discuss the techniques of software fault tolerance such as recovery blocks, nversion programming, single version programming, multiversion programming. The largest commercial success in faulttolerant computing has been in the area of transaction processing for banks, airline reservations, etc. However, the failures exhibited by those software faults can be transient, i. Here we describe the six most widely used hardware and softwar e techniques.
It would be very difficult to sum it up in one article since there are multiple ways to achieve fault tolerance in software. Also there are multiple methodologies, few of which we already follow without knowing. Nversion programming method of software fault tolerance. Software fault tolerance mcgill university school of. Both methods are based on the redundancy of software modules functionally. The aim of nvp is to improve the reliability of software operation by building in fault tolerance or redundancy. This choice of d and nd corresponds to an acceptance test coverage of 0. Nversion programming achieves redundancy through the use of multiple versions. Nversion approach to faulttolerant software bers the set of good similar results at a decision point, then the decision algorithm will arrrive at an erroneous decision result. A paper describing n version programming written by the original creator of the concept. On behalf of the program committee, it is our pleasure to present to you the proceedings of the fifth symposium on recent advances in intrusion detection raid. The two bestknown meth ods of building faulttolerant software are n version program ming 3 and recovery blocks l 11.
265 803 1207 1412 717 724 1107 27 211 865 901 831 107 163 281 149 1078 284 1505 92 880 1503 540 1379 329 946 1043 994 1468 1196 1430 237 236 512 793 568 1100 849