Real-Time Operating Systems
A real-time operating system schedules concurrent work so important responses can meet defined timing constraints. It provides tasks, priorities, timers, communication, and synchronization for embedded and time-sensitive software.
itComputer architecture and hardware | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Intro
Real-Time Operating Systems
A real-time operating system, or RTOS, manages processor time for software whose correctness includes when a result appears. A control calculation that produces the right value after its deadline is still a failure. The defining property is therefore predictable timing, not high average speed.
An RTOS kernel sits between application tasks and the processor. Tasks contain application work. The scheduler chooses which ready task runs. Interrupt service routines capture urgent hardware events. Kernel objects carry data or coordinate access. Timers turn elapsed time into task activity.
sensor or device interrupt
↓
short interrupt service routine
↓ signal, queue item, or notification
ready task
↓ scheduler selects by policy and priority
bounded application work → output before deadline
The operating system supplies mechanisms. The application still owns the timing design: deadlines, priorities, execution budgets, overload behavior, and recovery actions.
Time is part of correctness
A deadline is the latest acceptable completion time. Latency is the delay from an event to its response. Jitter is variation in that delay across repetitions. Throughput measures completed work per unit time. High throughput does not prove that any particular deadline is met.
Real-time requirements usually fall into three useful classes:
| Class | Meaning of a missed deadline | Representative use |
|---|---|---|
| Hard real time | The miss violates a system requirement | Protection trip, flight-control update |
| Firm real time | A late result has no value and may be discarded | Sensor frame used by a current control cycle |
| Soft real time | A miss reduces quality but service continues | Audio playback or user-interface refresh |
These labels describe application consequences. An RTOS does not turn an undocumented timing hope into a guarantee.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.sys_arch/topic/what_is_realtime.html
Supports
- Real-time predictability, hard and soft real-time distinctions, and timing requirements
- Fixed-priority preemption, bounded inversion, kernel preemption, and interrupt latency claims
- Intro, slides, cheatsheet, quiz, reference path, and narration
- https://qnx.com/developers/docs/7.1/com.qnx.doc.neutrino.getting_started/topic/s1_procs_Scheduling_rules.html
Supports
- Highest-priority ready-thread behavior, blocking, and round-robin rules
- https://www.qnx.com/developers/docs/7.1/com.qnx.doc.neutrino.prog/topic/system_arch.html
Supports
- Microkernel, thread scheduling, message passing, drivers, and service architecture
- Reference-link rationale and QNX landscape placement
- https://www.qnx.com/products/intl/neutrino_rtos/
Supports
- QNX microkernel process isolation and embedded system positioning
- QNX landscape description
- https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/00-Developer-docs
Supports
- FreeRTOS tasks, queues, synchronization, timers, memory, and configuration documentation path
- Intro, practice reference, quiz, reference rationale, and narration
- https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/01-Tasks-and-co-routines/04-Task-scheduling
Supports
- Fixed-priority preemptive scheduling and equal-priority time slicing
- Task-state and priority claims across the course
- https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/01-Tasks-and-co-routines/03-Task-priorities
Supports
- FreeRTOS priority range and highest-priority ready-task selection
- https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/02-Queues-mutexes-and-semaphores/01-Queues
Supports
- Queue storage, blocking, bounded capacity, and task-versus-ISR APIs
- Handoff, overload, practice, and quiz claims
- https://www.freertos.org/Documentation/02-Kernel/02-Kernel-features/02-Queues-mutexes-and-semaphores/04-Mutexes
Supports
- Mutex ownership, priority inheritance, task blocking, and ISR limitations
- Priority-inversion course material and quiz answers
- https://www.freertos.org/Documentation/02-Kernel/04-API-references/02-Task-control/06-vTaskDelayUntil
Supports
- Absolute periodic wake pattern and avoidance of cadence drift
- Cheatsheet, practice reference, and quiz question 6
- https://www.freertos.org/Documentation/02-Kernel/04-API-references/01-Task-creation/02-xTaskCreateStatic
Supports
- Static task creation, application-supplied stack, and control-block storage
- Practice-reference task creation example
- https://www.freertos.org/Documentation/02-Kernel/04-API-references/03-Task-utilities/13-uxTaskGetStackHighWaterMark
Supports
- Task stack high-water measurement
- Memory diagnostics and practice-reference example
- https://www.freertos.org/Documentation/02-Kernel/04-API-references/03-Task-utilities/10-vTaskList
Supports
- Task-state reporting used in the practice reference
- https://www.freertos.org/Documentation/02-Kernel/04-API-references/03-Task-utilities/11-vTaskGetRunTimeStatistics
Supports
- Task runtime statistics and their configuration-dependent use
- https://freertos.org/Documentation/02-Kernel/02-Kernel-features/05-Software-timers/03-Timer-daemon-configuration
Supports
- Timer service task, callback processing, priority, and command queue behavior
- https://www.freertos.org/
Supports
- FreeRTOS project homepage and microcontroller RTOS positioning
- Landscape URL and description
- https://docs.zephyrproject.org/latest/kernel/services/scheduling/index.html
Supports
- Ready-state selection, preemption, cooperative scheduling, time slicing, interrupts, and deadline ordering
- Intro, slides, cheatsheet, quiz, links, and narration
- https://docs.zephyrproject.org/latest/kernel/services/synchronization/mutexes.html
Supports
- Mutex ownership, waiter ordering, priority inheritance, and multi-mutex limitations
- Intro, cheatsheet, quiz, and reference rationale
- https://docs.zephyrproject.org/latest/services/task_wdt/index.html
Supports
- Task-level watchdog channels and application progress monitoring
- Watchdog course claims and quiz question 9
- https://www.zephyrproject.org/learn-about/
Supports
- Zephyr open-source governance, embedded scope, kernel and platform positioning
- Landscape description
- https://www.kernel.org/doc/html/latest/core-api/real-time/index.html
Supports
- PREEMPT_RT documentation scope, kernel differences, and hardware considerations
- Intro, slides, cheatsheet, quiz, links, narration, and landscape
- https://docs.kernel.org/core-api/real-time/theory.html
Supports
- Sleeping locks, priority inheritance, threaded interrupts, and reduced non-preemptible execution
- PREEMPT_RT mechanisms throughout the course
- https://github.com/sindresorhus/awesome
Supports
- Required starting point for awesome-list discovery
- https://github.com/iDoka/awesome-embedded-software
Supports
- Discovery of FreeRTOS, Zephyr, Apache NuttX, ChibiOS, RIOT, RT-Thread, Tock, and other RTOS projects
- https://chibios.sourceforge.net/docs/19.1/rt/index.html
Supports
- ChibiOS preemption, priorities, round robin, timers, synchronization, communication, and static allocation
- Awesome-link rationale
- https://doc.riot-os.org/
Supports
- RIOT threading, communication, timers, mutexes, drivers, networking, and constrained-device scope
- Awesome-link rationale
- https://www.rt-thread.io/document/site/tutorial/quick-start/introduction/introduction/
Supports
- RT-Thread priority scheduling, multitasking kernel, drivers, components, and IoT positioning
- Awesome-link rationale
- https://tockos.org/documentation/
Supports
- Tock Rust kernel, application isolation, system calls, and architecture documentation
- Awesome-link rationale
- https://nuttx.apache.org/docs/latest/index.html
Supports
- NuttX small footprint, POSIX and ANSI orientation, supported MCU scale, and operating-system APIs
- Awesome-link rationale and landscape description
- https://threadx.io/
Supports
- Eclipse ThreadX embedded suite, open-source governance, safety positioning, and middleware
- Landscape description
- https://www.windriver.com/products/embedded/vxworks
Supports
- VxWorks deterministic embedded RTOS, supported development environment, and safety-certifiable editions
- Landscape description
- https://www.segger.com/products/rtos/embos/
Supports
- embOS deterministic behavior, low resource consumption, safety variants, and SEGGER integration
- Landscape description
- https://www.highintegritysystems.com/safertos/
Supports
- SAFERTOS pre-certified embedded RTOS and safety-focused positioning
- Landscape description
- https://www.qnx.com/developers/docs/7.0.0/com.qnx.doc.neutrino.getting_started/topic/preface_History.html
Supports
- QNX company founding in 1980, QNX 4 in 1991, and Neutrino in 1995
- Timeline events
- https://www.windriver.com/news/press/news-8961
Supports
- VxWorks introduction in 1987
- Timeline event
- https://newsroom.eclipse.org/news/announcements/eclipse-foundation-launches-threadx-alliance-champion-growth-and-sustainability
Supports
- ThreadX launch in 1997 and later open-source ecosystem context
- Timeline event
- https://aws.amazon.com/blogs/opensource/announcing-freertos-kernel-v10/
Supports
- FreeRTOS creation in 2003, Amazon stewardship, kernel version 10, and MIT licensing in 2017
- Timeline events
- https://wiki.linuxfoundation.org/realtime/rtl/blog
Supports
- PREEMPT_RT development beginning from converging patch work in 2004
- Timeline event
- https://www.linuxfoundation.org/press/press-release/the-linux-foundation-announces-project-to-build-real-time-operating-system-for-internet-of-things-devices
Supports
- Zephyr announcement on 2016-02-17 and collaborative project purpose
- Timeline event
- https://techcommunity.microsoft.com/blog/iotblog/azure-rtos-6-1-release/1807097
Supports
- Azure RTOS source publication in May 2020 and version 6.1 release in October 2020
- Timeline event
- https://techcommunity.microsoft.com/blog/iotblog/azure-rtos-transition-to-open-source-is-now-complete/4105027
Supports
- Completion of Eclipse ThreadX transition and MIT release on 2024-04-04
- Timeline event
- https://lwn.net/Articles/992185/
Supports
- PREEMPT_RT available in the Linux 6.12 mainline configuration
- Timeline event
- https://www.spinics.net/lists/announce-kernel/msg05031.html
Supports
- Linux 6.12 release date of 2024-11-17
- Timeline event
