IEEE Transactions on Computers · 2003 · 130 citations · 19 references
ComputingComputer EngineeringComputer ScienceFault ToleranceFault-tolerant ComputingFault-tolerant SystemsDeadline AnalysisFault-tolerant SchedulingReal-time SchedulingReliable System DesignSchedulability AnalysisSoftware Fault ToleranceDeadline GuaranteesFault Tolerance In Real-time SystemsFault-tolerant Real-time SystemsFault-tolerant Task SchedulingPeriodic Task SchedulingReal-time Task SchedulingRedundant SchedulingTiming Constraints
A hard real-time system is usually subject to stringent reliability and timing constraints. One way to avoid missing deadlines is to trade the quality of computation results for timeliness, and software fault tolerance is often achieved with the use of redundant programs. A deadline mechanism which combines these two methods is proposed to provide software fault tolerance in hard real-time periodic task systems. We consider the problem of scheduling a set of real-time periodic tasks each of which has two versions: primary and alternate. The primary version contains more functions and produces good quality results, but its correctness is more difficult to verify. The alternate version contains only the minimum required functions and produces less precise results and its correctness is easy to verify. We propose a scheduling algorithm which 1) guarantees either the primary or alternate version of each critical task to be completed in time and 2) attempts to complete as many primaries as possible. Our basic algorithm uses a fixed priority-driven preemptive scheduling scheme to preallocate time intervals to the alternates and, at runtime, attempts to execute primaries first. An alternate will be executed only if necessary because of time or bugs.
19