Abstract:A hard real-time system is usually subject to stringent reliability and timing constraints due to the fact that failure to produce correct results in a timely manner may lead to a disaster. Almost all fault-tolerant scheduling algorithms so far are designed to deal with hardware faults, less of those take possible software faults into account. This paper presents two software fault-tolerant real-time scheduling algorithms that are similar to EDF (earliest deadline first), called PKSA (probing K-step algorithm) and CUBA (changing utilization-based algorithm). The most important contribution of the algorithms is the probing of certain steps during the execution of tasks in order to prevent early failures in execution from triggering failures in the subsequent job executions. Therefore, the algorithms increase the successful percentage of task抯 completion, and meanwhile decrease the wasted CPU time slots. The simulation experiments show that the algorithms have much better trade-offs between scheduling costs and performance than the well-known algorithms so far.