This is an old revision of the document!
In oder to understand the functionality of an RTOS, you need to know about both general and Linux specific mechanisms.
The mainline Linux kernel implements three different preemption models for different fields of application like servers or desktop PCs. With the PREEMPT_RT patch two additional preemption models are available. The “Fully Preemptible Kernel” model is the one that turns Linux into an RTOS.
The Linux kernel implements several real-time and non real-time scheduling policies. Depending on the scheduling policy of the tasks the scheduler decides which task is swapped out and which task is processed next.
The RT throttling mechanism prevents a system to hang, if there is a programming failure in a real-time application. This mechanism makes it possible to stop such an application. The settings for RT throttling are exported into the proc filesystem.
When a task with high priority is blocked by one with low priority because of a mutually exclusive resource, a third task with priority in between the others can run and finish before the task with the highest priority resumes. This phenomenon is known as priority inversion. It can be solved by priority inheritance.