Skip to main content
main-content

Über dieses Buch

This updated edition offers an indispensable exposition on real-time computing, with particular emphasis on predictable scheduling algorithms. It introduces the fundamental concepts of real-time computing, demonstrates the most significant results in the field, and provides the essential methodologies for designing predictable computing systems used to support time-critical control applications. Along with an in-depth guide to the available approaches for the implementation and analysis of real-time applications, this revised edition contains a close examination of recent developments in real-time systems, including limited preemptive scheduling, resource reservation techniques, overload handling algorithms, and adaptive scheduling techniques. This volume serves as a fundamental advanced-level textbook. Each chapter provides basic concepts, which are followed by algorithms, illustrated with concrete examples, figures and tables. Exercises and solutions are provided to enhance self-study, making this an excellent reference for those interested in real-time computing for designing and/or developing predictable control applications.

Inhaltsverzeichnis

Frontmatter

1. A General View

Abstract
Real-time systems are computing systems that must react within precise time constraints to events in the environment. As a consequence, the correct behavior of these systems depends not only on the value of the computation but also on the time at which the results are produced [SR88].
Giorgio C. Buttazzo

2. Basic Concepts

Abstract
Over the last few years, several algorithms and methodologies have been proposed in the literature to improve the predictability of real-time systems. In order to present these results we need to define some basic concepts that will be used throughout the book.
Giorgio C. Buttazzo

3. Aperiodic Task Scheduling

Abstract
This chapter presents a variety of algorithms for scheduling real-time aperiodic tasks on a single machine environment. Each algorithm represents a solution for a particular scheduling problem, which is expressed through a set of assumptions on the task set and by an optimality criterion to be used on the schedule.
Giorgio C. Buttazzo

4. Periodic Task Scheduling

Abstract
In many real-time control applications, periodic activities represent the major computational demand in the system. Periodic tasks typically arise from sensory data acquisition, low-level servoing, control loops, action planning, and system monitoring. Such activities need to be cyclically executed at specific rates, which can be derived from the application requirements. Some specific examples of real-time applications are illustrated in Chapter 11.
Giorgio C. Buttazzo

5. Fixed-Priority Servers

Abstract
The scheduling algorithms treated in the previous chapters deal with homogeneous sets of tasks, where all computational activities are either aperiodic or periodic. Many real-time control applications, however, require both types of processes, which may also differ for their criticality. Typically, periodic tasks are time-driven and execute critical control activities with hard timing constraints aimed at guaranteeing regular activation rates. Aperiodic tasks are usually event-driven and may have hard, soft, or non-real-time requirements depending on the specific application.
Giorgio C. Buttazzo

6. Dynamic Priority Servers

Abstract
In this chapter1 we discuss the problem of scheduling soft aperiodic tasks and hard periodic tasks under dynamic priority assignments. In particular, different service methods are introduced, the objective of which is to reduce the average response time of aperiodic requests without compromising the schedulability of hard periodic tasks. Periodic tasks are scheduled by the Earliest Deadline First (EDF) algorithm.
Giorgio C. Buttazzo

7. Resource Access Protocols

Abstract
A resource is any software structure that can be used by a process to advance its execution. Typically, a resource can be a data structure, a set of variables, a main memory area, a file, or a set of registers of a peripheral device.
Giorgio C. Buttazzo

8. Limited Preemptive Scheduling

Abstract
The question whether preemptive systems are better than non-preemptive systems has been debated for a long time, but only partial answers have been provided in the realtime literature and some issues still remain open to discussion. In fact, each approach has advantages and disadvantages, and no one dominates the other when both predictability and efficiency have to be taken into account in the system design. This chapter presents and compares some existing approaches for reducing preemptions and describes an efficient method for minimizing preemption costs by removing unnecessary preemptions while preserving system schedulability.
Giorgio C. Buttazzo

9. Handling Overload Conditions

Abstract
This chapter deals with the problem of scheduling real-time tasks in overload conditions; that is, in those critical situations in which the computational demand requested by the task set exceeds the processor capacity, and hence not all tasks can complete within their deadlines.
Giorgio C. Buttazzo

10. Kernel Design Issues

Abstract
In this chapter, we present some basic issues that should be considered during the design and the development of a hard real-time kernel for critical control applications.
Giorgio C. Buttazzo

11. Application Design Issues

Abstract
In this chapter we discuss some important issues related to the design and the development of complex real-time applications requiring sensory acquisition, control, and actuation of mechanical components. The aim of this part is to give a precise characterization of control applications, so that theory developed for real-time computing and scheduling algorithms can be practically used in this field to make complex control systems more reliable. In fact, a precise observation of the timing constraints specified in the control loops and in the sensory acquisition processes is a necessary condition for guaranteeing a stable behavior of the controlled system, as well as a predictable performance.
Giorgio C. Buttazzo

12. Real-Time Operating Systems and Standards

Abstract
This chapter presents a brief overview of the state of art of real-time systems and standards. It first discusses the most common operating systems standard interfaces that play a major role for developing portable real-time applications. Then, it gives a brief description of the most used commercial and open source real-time kernels available today, including some research kernels developed within academia to make experiments with some novel features and lead future development. Finally, it presents a set of development tools that can be used to speed up system analysis and implementation.
Giorgio C. Buttazzo

13. Solutions to the Exercises

Abstract
Fast computing tends to minimize the average response time of computation activities, whereas real-time computing is required to guarantee the timing constraints of each task.
Giorgio C. Buttazzo

Backmatter

Weitere Informationen

Premium Partner

    Bildnachweise