- Docente: Paolo Torroni
- Credits: 12
- SSD: ING-INF/05
- Language: English
- Moduli: Andrea Galassi (Modulo 1) Andrea Galassi (Modulo 4) Paolo Torroni (Modulo 2) Paolo Torroni (Modulo 3)
- Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 4) Traditional lectures (Modulo 2) Traditional lectures (Modulo 3)
- Campus: Bologna
-
Corso:
Second cycle degree programme (LM) in
Electrical Energy Engineering (cod. 9066)
Also valid for Second cycle degree programme (LM) in Automation Engineering (cod. 6711)
-
from Sep 15, 2025 to Dec 02, 2025
-
from Dec 09, 2025 to Dec 16, 2025
-
from Oct 29, 2025 to Dec 17, 2025
Learning outcomes
At the end of the course, the student: - 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
- Giorgio C. Buttazzo. Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications, 3rd Edition. Springer 2011. ISBN: 978-1-4614-3019-3
Chapters 1 — 4, 7 & 11
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