Chapter written by Sébastien Gérard,
CEA-List, France and Jean-Philippe Babau, CITI - INSA Lyon, France
A real-time system is a system which produces results respecting timing constraints such as a deadline. When an external event occurs, the system must be able to react within a strictly predefined deadline [JM 86], In critical systems (aerospace, nuclear, etc.), a timing error, i.e. the failure to meet a deadline, may have serious consequences for the process, the environment or the persons using the system. For non critical systems (home automation, mobile devices, etc.), poor reliability may be detrimental to product image. The development of such systems must therefore meet that single most important requirement – fully safe operation.
Real-time system correctness (compliance with deadlines) is heavily dependent on how the systems are implemented. Since RT systems react to concurrent events, they are designed as concurrent and communicating programs that share critical resources [Sta 88], In a uniprocessor environment, the software part of the RT system traditionally relies on the services of a real-time kernel. An essential component of this kernel is the scheduler, which is responsible at all times for determining what task is executed on the processor. To date, most real-time kernels provide a preemptive fixed priority-based scheduler: at any instant, the task selected by the scheduler for execution is always ...