Subject: SISTEMI EMBEDDED E REAL TIME (A.A. 2022/2023)
Unit Sistemi Embedded e Real Time
Information Technology (lesson)
The purpose of the Real Time Embedded Systems course is to provide advanced skills in designing, configuring, and deploying industrial systems that require a close interaction with the surrounding environment. The main application domains of such technologies include automotive, industrial automation, avionics, etc. That is, all those systems where it is not only necessary that the response provided by the system is correct, but also that it takes place within well-defined deadlines.
To properly follow the course, a good proficiency is recommended in the topics covered in programming courses (with particular relation to C/C++ programming environments), computer architectures, and operating systems.
Operating Systems and Architectures [1 CFU]
Algorithm, program, process, thread. Batch systems vs. interactive systems. CPUs, registers, memory, interfaces, stack, polling/interrupt management. Process and atomic action on single-core and multi-core systems.
Concurrent programming [3 CFU]
Communication, synchronization, scheduling. Shared memory programming: mutual exclusion, critical sections, semaphores, mutexes, monitors, condition variables, deadlock, livelock. Message passing: distributed memory paradigm, synchronous and asynchronous communication.
Real Time Systems [3 CFU]
Definitions, examples, accidents.
Pthread programming: creation, join, scheduling, semaphores, mutexes, conditions.
Real-Time Scheduling: tasks, jobs, preemptive/non-preemptive systems, latencies, worst-case execution time, mixed-critical systems, periodic/sporadic/aperiodic tasks, scheduling anomalies. Scheduling algorithms: FCFS, SJF, round robin, fixed/dynamic priorities, EDF (and related optimality).
Schedulability Analysis: Rate Monotonic, Deadline Monotoniv, EDF, and related schedulability tests. Utilization, least upper bound, response time, processor demand. Critical instant and worst-case conditions.
Shared resource protocols: priority inversion, NPP, HLP, PIP, PCP, SRP.
Real-time servers: management of aperiodic activities. Fixed-priority servers: Polling server, Deferrable server. Dynamic Priority Servers: TBS, CBS. Server's parameters selection.
Applications and RTOS [2 CFU]
ROS, Formula 1/10, concurrent applications and real-time tasks management. Practical exercises.
Reception hours: Thursday 9-11
Theoretical classes followed by practical exercises in the laboratory. All students may download slides and (solved) exercises from the course website.
Written exam including theoretical questions and exercises. Oral exam to discuss a software project developed by the student.
- Knowledge and understanding: at the end of the course, the student should have acquired advanced knowledge on industrial real-time systems.
- Applying knowledge and understanding: at the end of the course, the student should be able to apply the knowledge acquired to design and implement a working real-time system, selecting the most suitable mechanisms to guarantee a prompt response time of the tasks with relation to the controlled environment.
- Making judgements: at the end of the course, the student should be able to recognize by himself the appropriate methods and techniques to solve typical programing problems.
- Communicating skills: the student, at the end of the course, should be able to describe with appropriate technical language the design choices made in the design of a real-time embedded system.
- Learning skills: The lectures should stimulate the learning skills and an in-depth analysis of subjects connected with the presented topics.
Giorgio C. Buttazzo, "Hard Real-Time Computing Systems - Predictable Scheduling Algorithms and Applications". Third Edition. 2011. Springer.
- Slide del docente