Optimal scheduling for fault-tolerant and firm real-time systems
Time redundancy is an effective method for achieving fault tolerance in a real time system, when space redundancy cannot be used for cost or weight constraints. The paper presents a fault tolerant scheduling algorithm for real time systems consisting of firm and hard periodic tasks. Firm tasks can occasionally skip one instance according to a predefined quality of service parameter, whereas hard tasks include a primary and a backup job. The proposed scheduling algorithm ensures that each task instance is satisfied within its timing constraints by either the primary or the backup job. Moreover the algorithm maximizes the processor idle time available for processing primary jobs and automatically reclaims the spare time saved by deallocating backup jobs. A very interesting feature of the algorithm is that it can be tuned to balance performance versus complexity, so easily conforming to application's requirements.