Real-time application platforms

One of the most desired characteristics of embedded operating systems, especially in life-critical and high-reliability systems, is the presence of a hard real-time scheduler. As mentioned in Chapter 10Parallel Tasks and Scheduling, a real-time scheduler provides deterministic and short reaction times for real-time tasks, given that the load of the system does not exceed the resources available. For this reason, system developers often have based their design on real-time schedulers with static priorities.

A solid and well-designed scheduler implementation is the most fundamental part of preemptive real-time systems, and it is the base for building all the other features.

Embedded operating systems designed to run a fixed set of tasks with static priorities do not implement standard interfaces for the applications, and tend to be small in code size and memory usage, by keeping a small code base with a restricted set of functionalities. Libraries for hardware abstractions and advanced functionalities may be developed and maintained separately from the kernel.

Safety is not one of the goals of these systems; however, some implementations provide basic support for MPU regions and task memory segmentation, and use mostly, or exclusively, static memory allocations in the kernel.

Real-time schedulers that are designed to be integrated in tailored embedded solutions are often based on a very simple, flat model with no real separation between kernel and userland. They are the ideal solution for stepping up from bare-metal applications to a multithreading environment, with a fixed, constant amount of tasks and deterministic deadlines.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset