There are no formal requirements. It is expected that students have already acquired all the basic computer science concepts.
At the end of the course the student has a basic undestanding of the foundamental concepts related to the development of embedded, real-time, and distributed software systems.
He/she knows the programming techniques and methodologies for developing concurrent applications for computers with operating systems and embedded systems without operating systems.
The student is able to analyze the temporal properties of a dynamic system, such as the execution period, the computational cost, and the deadline, and to implement periodic and aperiodic tasks in c++
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
• Client/Server
• Publisher/Subscriber
• Data Flow
• Blackboard
Technologies for developing distributed systems
• CANBUS protocol
• OMG Data Distribution Service (DDS)
Frontal lessons with slides. Slides are available online for students before the course starts.
Exercises hand-written. The texts, in addition to many other exercises, are available online for students before the course starts.
Sessions of hand-written exercises are supervised in order to stimulate discussion among students.
At the beginning of each lesson, students are invited to ask questions on the concepts presented during the previous lesson in order to clarify any doubts that may arise during home study.
Verification consists in a written test. The written test lasts two hours and consists of theoretical questions and scheduling exercises.
Course web site:
http://robotics.unibg.it/teaching/srt/