We present a framework for designing run-time faulttolerance using dynamic program updates triggered by faults. This is an important problem in the design of autonomous systems as it is often the case that a running program needs to be upgraded to its fault-tolerant version once faults occur. We formally state fault-triggered program updates as a design problem. We then present a sound and complete algorithm that automates the design of faulttriggered updates for replacing a program that does not tolerate faults with a fault-tolerant version thereof at run-time. We also define three classes of fault-triggered dynamic updates that tolerate faults during the update. We demonstrate our approach in the context of a fault-triggered update for the gate controller of a parking lot.
REF models a program as a transition system, and present an approach that ensures that, once faults occur, the fault-intolerant program is upgraded to its fault-tolerant version at run-time.
Designing Run-Time Fault-Tolerance Using Dynamic Updates
SEAMS '07
Engineering Computer Science