Redundant computing systems for error tolerance: analysis, design, and evaluation.