A real-time system is one in which the correctness of the computations not only depends upon the logical correctness of the computation but also upon the time at which the result is produced. If the timing constraints of the system are not met, system failure is said to have occurred.If the timing constraints must always be met we speak of a hard real-time system, it would be soft real-time if missed deadlines only lead to less throughput or an acceptable reduced quality of service. Most real-time systems have additional requirements concerning robustness and availability, which are not discussed in this paper.
Writing hard real-time applications for single-processor systems on top of an multi-threaded operating system needs in-depth knowledge of the scheduling strategy and the worst case times needed for system calls in order to ensure the timeliness of the application. Furthermore worst-case preemption times of every thread and especially system calls have to be known. This leads to one important parameter, the interrupt latency. Interrupt latency is the time between occurrence of the hardware interrupt and the entry of the software interrupt handler (interrupt service routine, ISR).