This Article 
 Bibliographic References 
 Add to: 
Processor Assignment and Execution Sequence for Multiversion Software
December 1997 (vol. 46 no. 12)
pp. 1371-1377

Abstract—Consider the problem of assigning N software versions of a multiversion software to M 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 $\lceil (N/2) \rceil$ 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.

[1] R.J. Abbott, "Resourceful Systems for Fault Tolerant, Reliability, and Safety," ACM Computing Surveys, vol. 22, no. 1, pp. 35-68, Mar. 1990.
[2] J.P.J. Kelly, T.I. Mcvittie, and W.I. Yamamoto, "Implementing Design Diversity to Achieve Fault Tolerance," IEEE Software, pp. 61-71, July 1991.
[3] J. McDermid, "Safety Critical Software: A Vignette," Software Eng. J., pp. 2-3, Jan. 1993.
[4] A. Avizienis, "The N-Version Approach to Fault-Tolerant Software," IEEE Trans. Software Eng., vol. 11, no. 12, pp. 1,491-1,501, Dec. 1985.
[5] T. Anderson, P.A. Barret, D.N. Halliwell, and M.R. Mondling, "Software Fault Tolerance: An Evaluation," IEEE Trans. Software Eng., vol. 11, no. 12, pp. 1,502-1,510, Dec. 1985.
[6] D.E. Eckhardt and L.D. Lee, "Fundamental Differences in the Reliability of N-Modular Redundancy and N-Version Programming," J. Systems and Software, vol. 8, pp. 313-318, 1988.
[7] D.H. Chi and W. Kuo, "Optimal Design for Software Reliability and Development Cost," IEEE J. Selected Areas Comm., vol. 8, no. 2, pp. 276-282, Feb. 1990.
[8] D.F. McAllister, C.E .Sun, and M.A. Vouk, "Reliability of Voting in Fault-Tolerant Software Systems for Small Output-Spaces," IEEE Trans. Reliability, vol. 39, no. 5, pp. 524-534, Dec. 1990.
[9] Y.W. Leung, "Maximum Likelihood Voting for Fault-Tolerant Software with Small Output Space," IEEE Trans. Reliability, vol. 44, no. 3, pp. 419-427, Sept. 1995.
[10] G. Sagar, A.K. Sarje, and K.U. Ahmed, "Task Allocation Techniques for Distributed Computing Systems: A Review," J. Microcomputer Applications, vol. 12, no. 2, pp. 97-105, Apr. 1989.
[11] V.M. Lo, "Heuristic Algorithms for Task Assignment in Distributed Systems," IEEE Trans. Computers, vol. 37, no. 11, pp. 1,384-1,397, Nov. 1988.
[12] E.G. Coffman, Computer and Job-Shop Scheduling Theory. John Wiley&Sons, 1976.
[13] M.J. Gonzalez, "Deterministic Processor Scheduling," Computing Surveys, vol. 9, no. 3, Sept. 1977.
[14] G. Sagar and A.K. Sarje, "Task Allocation for Distributed Systems," Int'l J. Systems. Science, vol. 22, no. 9, pp. 1,671-1,678, Sept. 1991.
[15] T.C.E. Cheng and C.C.S. Sin, "A State-of-the-Art Review of Parallel Machine Scheduling Research," European J. Operation Research, vol. 47, pp. 271-292, 1990.
[16] N.S. Bowen, C.N. Nikolaou, and A. Ghafoor, “On the Assignment Problem of Arbitrary Process Systems to Heterogeneous Distributed Computer Systems,” IEEE Trans. Computers, vol. 41, no. 3, Mar. 1992.
[17] Y. Zhu and M. Ahuja, "On Job Scheduling on a Hypercube," IEEE Trans. Parallel and Distributed Systems, vol. 4, no. 1, pp. 62-69, Jan. 1993.
[18] C.M. Woodside and G.G. Monforton, “Fast Allocation of Processes in Distributed and Parallel Systems,” IEEE Trans. Parallel and Distributed Systems, vol. 4, no. 2, pp. 164-174, Feb. 1993.
[19] M. Xie, Software Reliability Modelling. World Scientific, 1991.
[20] J.D. Musa,A. Iannino,, and K. Okumoto,Software Reliability: Measurement, Prediction and Application.New York: McGraw-Hill, 1987.
[21] J.D. Musa, "Tools for Measuring Software Reliability," IEEE Spectrum, pp. 39-42, Feb. 1989.
[22] S. Brocklehurst and B. Littlewood, "New Ways to Get Accurate Reliability Measures," IEEE Software, pp. 34-42, July 1992.
[23] F.T. Sheldon, K.M. Kavi, R.C. Tausworthe, J.T. Yu, R. Brettschneider, and W.W. Everett, "Reliability Measurement: From Theory to Practice," IEEE Software, pp. 13-20, July 1992.
[24] T.H. Horowitz and S. Sahni, Fundamentals of Computer Algorithms. Computer Science Press, 1978.
[25] D.P. Bertsekas, Dynamic Programming: Deterministic and Stochastic Models. Prentice Hall, 1987.
[26] M.R. Garey and D.S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness.New York: W.H. Freeman, 1979.
[27] IEEE Trans. Reliability, Special Issue on Fault-Tolerant Software, vol. 42, no. 2, June 1993.
[28] J.E. Freund and R.L. Walpole,Mathematical Statistics.Englewood Cliffs, N.J.: Prentice-Hall, 1980.

Index Terms:
Fault-tolerance, multiversion software, reliability, voting, processor assignment, execution sequence.
Yiu-Wing Leung, "Processor Assignment and Execution Sequence for Multiversion Software," IEEE Transactions on Computers, vol. 46, no. 12, pp. 1371-1377, Dec. 1997, doi:10.1109/12.641937
Usage of this product signifies your acceptance of the Terms of Use.