Hardware Reference
In-Depth Information
12.1.1
RT-POSIX
The goal of the POSIX standard (Portable Operating System Interface based on UNIX
operating systems) is the portability of applications at the source code level. Its real-
time extension (RT-POSIX) is one of the most successful standards in the area of
real-time systems, adopted by all major kernel vendors.
The standard specifies a set of system calls for facilitating concurrent programming.
Services include mutual exclusion synchronization with priority inheritance, wait and
signal synchronization via condition variables, shared memory objects for data shar-
ing, and prioritized message queues for inter-task communication. It also specifies
services for achieving predictable timing behavior, such as fixed priority preemptive
scheduling, sporadic server scheduling, time management with high resolution, sleep
operations, multipurpose timers, execution-time budgeting for measuring and limiting
task execution times, and virtual memory management, including the ability to dis-
connect virtual memory for specific real-time tasks. Since the POSIX standard is so
large, subsets are defined to enable implementations for small systems. The following
four real-time profiles are defined by POSIX.13 [POS03]:
Minimal Real-Time System profile (PSE51) . This profile is intended for small
embedded systems, so most of the complexity of a general purpose operating
system is eliminated. The unit of concurrency is the thread (processes are not
supported). Input and output are possible through predefined device files, but
there is not a complete file system. PSE51 systems can be implemented with a
few thousand lines of code, and memory footprints in the tens of kilobytes range.
Real-Time Controller profile (PSE52) . It is similar to the PSE51 profile, with
the addition of a file system in which regular files can be created, read, or written.
It is intended for systems like a robot controller, which may need support for a
simplified file system.
Dedicated Real-Time System profile (PSE53) . It is intended for large embed-
ded systems (e.g., avionics) and extends the PSE52 profile with the support for
multiple processes that operate with protection boundaries.
Multi-Purpose Real-Time System profile (PSE54) . It is intended for general-
purpose computing systems running applications with real-time and non-real-
time requirements. It requires most of the POSIX functionality for general pur-
pose systems and, in addition, most real-time services.
In summary, the RT-POSIX standard enables portability of real-time applications and
specifies real-time services for the development of fixed-priority real-time systems
with high degree of predictability. In the future it is expected that RT-POSIX will
evolve toward more flexible scheduling schemes.
Search WWH ::




Custom Search