The diversity can also be introduced by employing different algorithms for obtaining the same solution or by choosing different programming languages. Coveragebased testing strategies and reliability modeling. A good in depth discussion of the concept and how to apply it. Nversion programming nvp, also known as multiversion programming or multipleversion dissimilar software, is a method. 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. Principal requirements for the implementation of n version software are summarized and the dedix. Pdf software fault tolerance in the application layer. 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.
Guest editors introduction understanding fault tolerance. Two of the bestknown faulttolerant software design methods are nversion programming nvp and recovery block scheme rbs. Modular redundancy and nversion programming modular r edundancy uses multiple, identical r epli. Principal requirements for the implementation of nversion software. This report describes the results obtained in the period september 1, 1989 to march 31, 1990. 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.
Faulttolerant software reliability modeling using petri. Techniques and implementation, artech house, norwood, ma, 2001. The aim of nvp is to improve the reliability of software operation by building in fault tolerance or redundancy. Murray our thanks for the support of thls work and for permitting us to participate in an important area of fault tolerant computing. Software fault tolerance techniques are designed to allow a system to tolerate software faults that remain in the system after its development. These principles deal with desktop, server applications andor soa. Nversion programming achieves redundancy through the use of multiple versions. When the software reliability is of critical importance, special programming techniques are used in order to achieve its fault tolerance. Also there are multiple methodologies, few of which we already follow without knowing. A faulttolerance approach to reliability of software operation, digest of papers ftcs8. A number of fault tolerance techniques aimed at minimizing the effect of software faults are being investigated. When a fault occurs, these techniques provide mechanisms to. The nversion approach to faulttolerant software ieee. Faulttolerant software reliability modeling 651 p i, 1.
Faulttolerant computing at the university of california, santa barbara, and, in rudimentary forms, at several other institutions prior to 1988. Fault tolerance techniques for real time operating system 1. An overview of software fault tolerant computing k. 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. 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. Software techniques, however, are more flexible because softwar e can be changed after the system has been built.
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. Eighth annual international conference on faulttolerant computing, toulouse, pp. A nonfaulttolerant software unit will be called simplex in this paper. They are unnecessary in the case of a single program. A multilevel approach, is an outgrowth of lecture notes that the author has used for the graduate course ece 257a. Approach to componentbased synthesis of faulttolerant. 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. The application of fault tolerant techniques to a realtime system, proc. A framework to formally verify conformance of a software process to a software method dek, rb, sb, yl, mpg, pp.
Fault tolerance computing draft carnegie mellon university. Principal requirements for the implementation of nversion software are. The transfer of the concepts of fault tolerance to. Here we describe the six most widely used hardware and softwar e techniques. The two bestknown meth ods of building faulttolerant software are n version program ming 3 and recovery blocks l 11. 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. Software failure lead to partialtotal system crashes.
Avizeinis, the n version approach to faulttolerant software, ieee transactions of software engineering, vol. Software fault tolerance mcgill university school of. 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. This choice of d and nd corresponds to an acceptance test coverage of 0. On the performance of software faulttolerance strategies laas. A paper describing nversion programming written by the original creator of the concept. Ess which uses a distributed system controlled by the 3b20d fault tolerant computer. At execution time, the faulttolerant structure attempts to cope with the effect of those faults that survive the development process. Fault tolerance computing draft carnegie mellon university 18849b dependable embedded systems spring 1999. Thus the capability to tolerate software faults, particularly for critical applications. The extent to which software continues to operate despite introduction of invalid inputs. Software fault tolerance carnegie mellon university. Pdf the nversion approach to faulttolerant software. Avizeinis, the nversion approach to faulttolerant software, ieee transactions of software engineering, vol.
The need to control software fault is one of the most. Fault tolerant sw component based software engineering. Failure intensity of the hyperexponential model the transformation approach is based on interpreting the. Faults in one module should not affect other modules. Both methods are based on the redundancy of software modules functionally. 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.
It would be very difficult to sum it up in one article since there are multiple ways to achieve fault tolerance in software. The software should provide correct results in the face of various failures. The largest commercial success in faulttolerant computing has been in the area of transaction processing for banks, airline reservations, etc. Software fault tolerance techniques are employed during the procurement, or development, of the software. 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. Faulttolerant software assures system reliability by using protective redundancy at the software level. In this hybrid approach, each software version of an nvp.
The n version approach to faulttolerant software abstract. Check input data ask for new input use default value and raise flag 2. 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. Following the definition of ddmtv graphs, we present several examples of hybrid nvpat schemes, as instances of faulttolerant software based on our componentbased approach, and quantify the resulting reliability improvements. This book presents recovery blocks and nversion programming and other advanced fault tolerance models based on. A paper describing n version programming written by the original creator of the concept. Failures are detected by comparing the results of the different versions. 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. 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. For higher system dependability, we might go for a hybrid approach that relies on both the nvp and esvp approaches. Fault tolerance techniques for real time operating system seminar coordinator. Optimal structure of faulttolerant software systems.
However, the failures exhibited by those software faults can be transient, i. There are two basic techniques for obtaining faulttolerant software. Fault tolerance techniques for real time operating system. Work in 45 aims to treat software faulttolerance as a robust supervisory control rsc problem and propose a rsc approach to software faulttolerance. Basic fault tolerant software techniques geeksforgeeks.
427 374 714 981 411 667 1117 537 185 1511 843 399 475 1209 909 1051 912 1257 18 1120 686 292 806 353 1410 299 1136 555 453 720 1356 1464 43 427 1430 1250 1004 996 102