Adaptive software fault tolerance policies with dynamic real-time guarantees