Operating System Support for Embedded Real-Time Applications

EURASIP Journal on Embedded Systems, Feb 2008

Alfons Crespo, Ismael Ripoll, Michael González-Harbour, Giuseppe Lipari

Article PDF cannot be displayed. You can download it here:

http://jes.eurasipjournals.com/content/pdf/1687-3963-2008-502768.pdf

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)


This is a preview of a remote PDF: http://jes.eurasipjournals.com/content/pdf/1687-3963-2008-502768.pdf
Article home page: http://jes.eurasipjournals.com/content/2008/1/502768

Alfons Crespo, Ismael Ripoll, Michael González-Harbour, Giuseppe Lipari. Operating System Support for Embedded Real-Time Applications, EURASIP Journal on Embedded Systems, 2008, pp. 502768, 2008,