Operating System Support for Embedded Real-Time Applications
Alfons Crespo
2
Ismael Ripoll
2
Michael Gonz alez-Harbour
1
Giuseppe Lipari
0
0
Scuola Superiore Santa'Anna
,
335612 Pisa
,
Italy
1
Universidad de Cantabria
,
39005 Santander
,
Spain
2
Departament d'Informatica de Sistems i Computadors, Universidad Polit ecnica de Val`encia
,
46022 Valencia
,
Spain
-
The rapid progress in processor and sensor technology
combined with the expanding diversity of application fields is
placing enormous demands on the facilities that an
embedded operating system must provide.
Embedded systems can be defined as computing systems
with tightly coupled hardware and software that are designed
to perform a dedicated function. The word embedded
reflects the fact that these systems are usually an integral part
of a larger system.
We can find a large variety of applications where
embedded systems play an important role, from small stand-alone
systems, like a network router, to complex embedded systems
supporting several operating execution environments as we
can find in avionic applications.
This variety of applications also implies that the
properties, platforms, and techniques on which embedded
systems are based can be very different. The hardware needs
can sometimes be achieved with the use of general purpose
processors, but in many systems specific processors are
required, for instance, specific DSP devices to perform fast
signal processing. Memory management capabilities are
necessary in some systems to provide memory protection and
virtual memory. Special purpose interfaces are also needed to
support a variety of external peripheral devices, energy
consumption control, and so on.
Nowadays, the use of processor-based devices has
increased dramatically for most of our activities, both
professional and leisure. Mobile phones and PDAs are used
extensively. Consumer electronics (set-top boxes, TVs, DVD
players, etc.) have incorporated microprocessors as a core system
component, instead of using specific hardware. This trend is
expected to grow exponentially in the near future.
Embedded applications have some common features
such as the following.
(i) Limited resources. They are often strong limitations
regarding available resources. Mainly due to cost and
size constraints related to mass production and strong
industrial competition, the system resources as CPU,
memory, devices have been designed to meet these
requirements. As a result of these limitations, the system
has to deal with an efficient use of the computational
resources.
(ii) Real-time application requirements. Some of the
applications to be run in these devices have temporal
requirements. These applications are related with
process control, multimedia processing, instrumentation,
and so on, where the system has to act within a
specified interval.
(iii) Embedded control systems. Most of the embedded
systems perform control activities involving input data
acquisition (sensing) and output delivery (actuation).
Deterministic communications are also another
important issue.
(iv) Quality of service. An efficient use of the system
resources is a must in embedded systems.
Feedbackbased approaches are being used to adjust the
performance or quality of service of the applications as a
function of the available resources.
The challenge is how to implement applications that
can execute efficiently on limited resource and that meet
nonfunctional requirements such as timeliness, robustness,
dependability, performance, and so on.
Moreover, applications on embedded systems include
more and more functionalities in order to cope with the
needs of the users in home environments, industry, leisure
activities, vehicles, avionics, instrumentation, and so on. To
offer services for these applications, a considerable effort has
been made in research and development on innovative
realtime operating systems architectures and services. Designers
and developers of real-time operating systems have to
consider many challenges arising from two opposite axes:
efficient resource usage (processor, memory, energy, network
bandwidth, etc.) and dynamic configuration and
adaptation (component-based development and deployment,
flexible scheduling, communications, etc.).
On the other hand, open-source operating system
development has been recognized as a consolidated way to share
experiences and developments in order to improve the
quality and the reusability of the products. Currently, there are
several distributions for embedded systems based on Linux
and other open source developments.
This special issue focuses on new results of research work
and development in the field of real-time operating systems
for embedded applications with special emphasis on open
source developments.
From the real-time operating system point of view, there
are several topics that can be considered very relevant in the
near future, illustrated as follows.
The development of embedded applications is entering into
a new domain with the availability of new high-speed
processors and low cost on-chip memory. As a result of these new
developments in hardware, there is an interest in enabling
multiple applications to share a single processor and
memory. To facilitate such a model the execution time and
memory space of each application must be protected from other
applications in the system. Partitioning operating systems
represents the future of secure systems. They have evolved to
fulfill security and avionics requirements where
predictability is extremely important. In avionics systems, for instance,
running interrupts other than the system clock needed for
cycling the partitions is discouraged. In a partitioning
operating system, memory (and possibly CPU-time as well) is
divided among statically allocated partitions in a fixed manner.
The idea is to take a processor and make it appear as if there
were several processors, thus completely isolating the
subsystems. Within each partition, there may be multiple threads
or processes, or both, if the operating system supports them.
How these threads are scheduled depends on the
implementation of the OS.
Innovative techniques in scheduling are needed to provide
support for adjusting the load to the system needs,
managing the dynamic allocation of memory under temporal and
spatial constraints, managing energy to allow trading
performance for reduced energy consumption in combination with
the time constraints, providing fault-tolerance to deal with
failure management and recovery, and so on.
Embedded systems are getting more and more complex,
dynamic, and open, while interacting with a progressively more
demanding and heterogeneous environment. As a
consequence, the reliability and security of these systems have
become major concerns. An increasing number of external
security attacks as well as design weaknesses in operating
systems have resulted in large economic damages, which
results in difficulties to attain user acceptance and getting
accepted by the market. Consequently, there is a growing
(...truncated)