Learning outcomes of the course unit
Discussion of principles, methodologies, and tools for designing real-time computing systems and control software for embedded systems and industrial applications.
Sistemi operativi B.
Course contents summary
Introduction to real-time systems
Embedded computing systems. Computing with temporal constraints.
Real-time systems classification and relevant parameters.
A reference model for real-time computing.
Aperiodic task scheduling.
The cyclic executive approach for periodic tasks.
Priority-driven scheduling of periodic tasks.
Priority-driven scheduling of mixed aperiodic, sporadic, and periodic tasks.
Rate-monotonic and EDF scheduling algorithms.
Shared resources access control policies. Priority inversion management.
Operating systems and multithreaded programming
Real-time computing support in modern, general-purpose operating systems.
The POSIX standard: Threads and processes. Thread synchronization. Signals. IPC mechanisms. Scheduling. Time manangement. Memory management. I/O management.
Patterns for real-time systems programming.
Dedicated real-time operating systems.
Middleware for distributed real-time computing systems.
J.W.S. Liu, Real-Time Systems, Prentice-Hall, 2000.
D. Butenhof, Programming with POSIX Threads, Addison-Wesley, 1997.
Exam consists of three parts: POSIX thread programming assignment, written test, oral discussion. The oral discussion must be the final part and requires prior approval of both the programming assignment and the written test.
Laboratory classes exercising multithreading and real-time features in Solaris, Linux, and the POSIX library. Multithreading and real-time programming exercises.