There are no formal requirements. It is expected that students have already acquired all the basic computer science concepts.
Achieving basic undestanding of the foundamental concepts related to the development of embedded, real-time, and distributed software systems. Mastering programming techniques and methodologies for developing concurrent applications for computers with operating systems and embedded systems without operating systems. At the end of the course, the student is able to program an embedded system in c/c++ that executes concurrent control tasks in real time.
Introduction to real time systms
• Task Model
• Resource Model
• Task and Resource Constraints
Embedded Systems Programming
• The Arduino platform
• Sensors and Actuators
• Clock-driven scheduling
• Timers e Interrupts
Scheduling algorithms for Operating Systems
• Non-RT algorithms: Round Robin, SJF
• Dynamic priority algorithms: EDF
• Fixed priority algorithms: RM, DM
• Priority Inversion Protocol
• Handling overruns
Architectural models for distributed systems
• Data Flow
Technologies for developing distributed systems
• CANBUS protocol
• OMG Data Distribution Service (DDS)
G.C. Buttazzo, Hard Real-Time Computing Systems, Springer
Lectures presenting the concepts and the resolution of exercises.
Verification consists in a written test. he written test lasts two hours and consists of theoretical questions and scheduling exercises.
Course web site: