Mathematical statistics (4th ed.)
Mathematical statistics (4th ed.)
Software reliability: measurement, prediction, application
Software reliability: measurement, prediction, application
Dynamic programming: deterministic and stochastic models
Dynamic programming: deterministic and stochastic models
Heuristic Algorithms for Task Assignment in Distributed Systems
IEEE Transactions on Computers
Journal of Systems and Software
Tools for measuring software reliability
IEEE Spectrum
Task allocation techniques for distributed computing systems: a review
Journal of Microcomputer Applications
Resourceful systems for fault tolerance, reliability, and safety
ACM Computing Surveys (CSUR)
On the Assignment Problem of Arbitrary Process Systems to Heterogeneous Distributed Computer Systems
IEEE Transactions on Computers
Safety-critical software: a vignette
Software Engineering Journal
Deterministic Processor Scheduling
ACM Computing Surveys (CSUR)
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Fundamentals of Computer Alori
Fundamentals of Computer Alori
Implementing Design Diversity to Achieve Fault Tolerance
IEEE Software
Reliability Measurement: From Theory to Practice
IEEE Software
New Ways to Get Accurate Reliability Measures
IEEE Software
On Job Scheduling on a Hypercube
IEEE Transactions on Parallel and Distributed Systems
Fast Allocation of Processes in Distributed and Parallel Systems
IEEE Transactions on Parallel and Distributed Systems
Hi-index | 14.98 |
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.