An experimental evaluation of the assumption of independence in multiversion programming
IEEE Transactions on Software Engineering
The Byzantine Generals Problem
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Art of Computer Programming Volumes 1-3 Boxed Set
The Art of Computer Programming Volumes 1-3 Boxed Set
Fault Tolerance: Principles and Practice
Fault Tolerance: Principles and Practice
Structural analysis of explicit fault-tolerant programs
HASE'04 Proceedings of the Eighth IEEE international conference on High assurance systems engineering
Hi-index | 0.00 |
Multi-version or N-version programming [5] has been proposed as a method of providing fault tolerance in software. The approach requires the separate, independent preparation of multiple (i.e. "N") versions of a piece of software for some application. These versions are executed in parallel in the application environment; each receives identical inputs and each produces its version of the required outputs. The outputs are collected by a voter and, in principle, they should all be the same. In practice there may be some disagreement. If this occurs, the results of the majority (if there is one) are assumed to be the correct output, and this is the output used by the system.