A
real-time operating system (
RTOS) is an
operating system (OS) for
real-time computing applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a
time-sharing operating system, such as Unix, which manages the sharing of system resources with a scheduler, data buffers, or fixed task prioritization in a multitasking or multiprogramming environment. Processing time requirements need to be fully understood and bound rather than just kept as a minimum. All processing must occur within the defined constraints. Real-time operating systems are
event-driven and
preemptive, meaning the OS can monitor the relevant priority of competing tasks, and make changes to the task priority. Event-driven systems switch between tasks based on their priorities, while time-sharing systems switch the task based on clock
interrupts.
Characteristics[edit]
A key characteristic of an RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's
task; the variability is '
jitter'.
[1] A 'hard' real-time operating system (hard RTOS) has less jitter than a 'soft' real-time operating system (soft RTOS). A late answer is a wrong answer in a hard RTOS while a late answer is acceptable in a soft RTOS. The chief design goal is not high
throughput, but rather a guarantee of a
soft or hard performance category. An RTOS that can usually or generally meet a deadline is a soft real-time OS, but if it can meet a deadline
deterministically it is a hard real-time OS.
[2]