B5665 - Real Time Systems and Programming for Automation M

Academic Year 2025/2026

  • Docente: Paolo Torroni
  • Credits: 12
  • SSD: ING-INF/05
  • Language: English

Learning outcomes

At the end of the course, the student: - knows the basics of Python and object oriented programming; - is familiar with the fundamental concepts underlying modern operating system organization and functioning, with an emphasis on real-time systems for automation; - is able to realize simple concurrent applications using system calls and synchronization mechanisms; - is able to analyze, design and implement simple real-time concurrent applications.

Course contents

The course is organized into modules.

  • Python (20 hours), September/October. First part of "Module 1". Covers the basic of Python and object-oriented programming. Lectures and hands-on lab.
  • Operating Systems (40 hours), October/December. Second part of "Module 1". Topics: Overview and system structures. Processes and threads. Scheduling. Process synchronisation and deadlocks. Memory and I/O. Lectures.
  • Operating Systems Lab (15 hours), October/November. First part of "Module 2". Topics: Linux shell, system call programming, POSIX, threads, synchronization. Hands-on lab.
  • Real-Time (30 hours), February/May. Corresponds to "Module 3". Topics: Basic concepts or real-time systems. Aperiodic task scheduling. Clock-based and priority-based scheduling of periodic tasks. Resource access protocols. Lectures.
  • Real-Time Lab (15 hours). Second part of "Module 2", March/May. Topics: real-time system programming using vxWorks and Workbench. How to build a metascheduler for hard real-time periodic tasks that share resources. Hands-on lab.

Readings/Bibliography

Textbooks:

  • Abraham Silberschatz, Peter B. Galvin, Greg Gagne. Operating System Concepts, 9th Edition. International Student Version. Wiley 2013. ISBN: 978-1-118-09375-7. Editions 8 or 10 are equally good.
    Chapters 1 — 9 & 13

Software:

  • Linux, Eclipse+CDT (open software)
  • vxWorks 7 and Workbench 4 (WindRiver)

Teaching methods

Presential lectures covering theory and exercises and supervised hands-on lab sessions, meant to be highly interactive. Autonomous work on lab assignments.

Assessment methods

Evaluation is made by two written exams:

  • Part I: Module 1 (Python and Operating Systems), OS Lab
  • Part II: Module 3 (Real-Time), RT Lab

Each exam is graded as follows:

  • Part I: 0-19 points
  • Part II: 0-13 points

The two written exams are independent of each other.

The overall grade is is the sum of all points gathered in the two written exams. Decimals are rounded to the nearest integer (0.5 is rounded up), with the exception of the interval between 29.5 and 30.9, which yields 30. A total of 31.0 or above is awarded a grade of 30 cum laude. This is officially recorded as soon as the overall grade is at least 18, unless requested otherwise by the student who intends to sit either module's written exam once more.

It is possible to sit Part I multiple times until a score of 12+ points is obtained. It is possible to refuse a grade of 12+ points in Part I only once. 

It is possible to sit Part II multiple times until a score of 6+ points is obtained. It is possible to refuse a grade of 6+ points in Part II only once.

Each grade overwrites the previous one in the same Part and does not affect the grade of the other Part. 

Teaching tools

Relevant learning material will be made available via virtuale. Lecture slides will be made available before class. Annotated lecture slides and past exams may also be made available upon request. The virtuale web site will contain the description of lab activities. A limited number of copies of the adopted textbooks and other relevant textbooks are available at the library. The software used in the OS lab is open-source and freely available. The RT software is proprietary and licensed. The lab software, including the licensed software, can also be installed on the student's own computer. In this way, lab work can be carried out autonomously, without having to access the lab.

Office hours

See the website of Paolo Torroni

See the website of Andrea Galassi

See the website of Andrea Galassi