Dynamic Adjustment of Dependability and Efficiency in Fault-Tolerant Software