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 specific to each module:

  • Module 1 (Python and Operating Systems): a written exam
  • Module 2 (Lab): an OS assignment and an RT assignment
  • Module 3 (Real-Time): a written exam

Each module is graded as follows:

  • Module 1: 0-16 points
  • Module 2, A-OS: 0-3 points
  • Module 2, A-RT: 0-2 points
  • Module 3: 0-11 points

Assignments are not mandatory. It is possible to submit only one assignment. The two written exams are independent of each other and they are independent of the assignments.

There will be three cut-off dates for submitting the assignments:

  • 15 January
  • 31 May
  • 31 August

A-OS assignments submitted by 15 January will be granted 0.2 speed bonus points. A-RT assignments submitted by 31 May will be granted 0.2 speed bonus points. The last cut-off date is also the deadline for submitting assignments for the current academic year. Each assignment can only be submitted once and its grade is valid for the whole academic year. The positive evaluation of the assignments may be subject to interview with the group or individual the submitted the assignment, on dates to be published on AlmaEsami.

The overall grade is is the sum of all points gathered in the two modules, plus the grades of the assignments submitted by the date of the last written exam. 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.

The grade is officially recorded as soon as the student has passed the two written exams, unless requested otherwise by the student with a valid motivation. The following motivations are considered valid: (1) assignments are missing and will be delivered soon; (2) the student intends to sit either module's written exam once more.

It is possible to sit each module's written exam multiple times until the second and final positive evaluation. "Positive" evaluations are: 12+ points for Module 1, 6+ points for Module 2. Each grade overwrites the previous one in the same module and does not affect the grade of the other modules. Assignments can be submitted once per academic year.

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 and information about assignments. 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