Real-Time Systems
This course is offered to PhD students in Complex Systems
at University of Salento, Lecce.
Over 98% of the computers existing in the world are embedded, that is, integrated into a larger system with the purpose of managing its resources and monitoring/controlling its functions using special hardware devices. While general purpose computers (like PCs or tablets) are developed to provide high average performance, real-time computing systems are designed to bound worst-case delays, which in certain rare and unpredictable circumstances could be very large and could cause critical failures in computer controlled systems, like robots or aircrafts.
This course enables students to develop real-time software in several application domains, as robotics, avionics, automotive, multimedia, and biomedical systems. Students will learn the theoretical foundations and the state-of-the-art methodologies for analyzing and developing time-sensitive applications with high degree of concurrency and a set of performance requirements. Practical examples are illustrated to explain how to derive timing constraints from the application requirements. Then, the course focuses on special methodologies for increasing the predictability of computer controlled systems, including task scheduling, resource management algorithms, communication mechanisms, and overload handling policies.
Slides
- Introduction
- Task modeling
- Task scheduling
- Resource sharing
- Pthread library
- Programming style rules
- Allegro library
- Guidelines for developing the project
- Sample applications
- Aperiodic servers
- Overload handling
Suggested Books
- Giorgio Buttazzo: "HARD REAL-TIME COMPUTING SYSTEMS: Predictable
Scheduling Algorithms and Applications",
Third Edition, Springer, 2011.
Errata Corrige
- Giorgio Buttazzo: Sistemi in Tempo Reale, Terza Edizione
Pitagora Editrice, Bologna, 2006.
Errata Corrige