The Community for Technology Leaders
Green Image
<p><b>Abstract</b>—Consider the problem of assigning <it>N</it> software versions of a multiversion software to <it>M</it> processors for execution. When a processor completes executing a software version, it sends the output to a voter immediately. The voter executes a voting strategy to estimate the correct output. When it has made a sufficiently reliable estimation (e.g., it has received <tmath>$\lceil (N/2) \rceil$</tmath> identical outputs under majority voting), it accepts this estimated output and terminates the execution of all the unfinished versions. Therefore, some software versions may not be executed to completion. In this paper, we analyze the mean time to reach correct consensus for four voting strategies. To minimize the mean time to reach correct consensus, we show that the processor assignment problem is NP-hard and we propose a heuristic to find suboptimal assignments. When two or more versions are assigned to a processor, these versions are executed one after the other and we derive the optimal execution sequence for them.</p>
Fault-tolerance, multiversion software, reliability, voting, processor assignment, execution sequence.

Y. Leung, "Processor Assignment and Execution Sequence for Multiversion Software," in IEEE Transactions on Computers, vol. 46, no. , pp. 1371-1377, 1997.
90 ms
(Ver 3.3 (11022016))