- Docente: Paolo Torroni
- Credits: 12
- SSD: IINF-05/A
- Language: English
- Moduli: Andrea Galassi (Modulo 1) Paolo Torroni (Modulo 2)
- Teaching Mode: In-person learning (entirely or partially) (Modulo 1); In-person learning (entirely or partially) (Modulo 2)
- Campus: Bologna
-
Corso:
Second cycle degree programme (LM) in
Automation Engineering (cod. 6711)
Also valid for Second cycle degree programme (LM) in Electrical Energy Engineering (cod. 6714)
Second cycle degree programme (LM) in Electronic Engineering (cod. 6716)
-
from Sep 14, 2026 to Dec 15, 2026
-
from Oct 28, 2026 to Dec 16, 2026
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". Lectures and hands-on lab covering the basics of Python and object-oriented programming.
- Operating Systems (40 hours), October/December. Second part of "Module 1". Lectures on the following topics: Overview and system structures. Processes and threads. Scheduling. Process synchronisation and deadlocks. Memory and I/O.
- Operating Systems Lab (15 hours), October/November. First part of "Module 2". Six hands-on lab sessions on the following topics: Linux shell, system call programming, POSIX, threads, synchronization.
- Real-Time (30 hours), February/May. Corresponds to "Module 3". Lectures on the following topics: Basic concepts or real-time systems. Aperiodic task scheduling. Clock-based and priority-based scheduling of periodic tasks. Resource access protocols.
- Real-Time Lab (15 hours). Second part of "Module 2", March/May. Six hands-on lab sessions on the following topics: real-time system programming using vxWorks and Workbench. How to build a metascheduler for hard real-time periodic tasks that share resources.
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.
Use of AI during the written exam
Regarding learning assessment, the use of AI is prohibited. Any use constitutes a violation of academic integrity.
Calculation of final grade
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.
Repeating written exams: Part I
It is possible to sit Part I multiple times, with certain limitations.
- If a student sits Part I again and delivers, the previous grade in part I will be replaced with a note of "Rifiutato" (refused), which will be officially recorded.
- If a student sits Part I again and withdraws, a note of "Ritirato" (withdrawn) will be recorded for the new attempt.
- It is possible to refuse a grade of 12+ points in Part I only once. After the second time a student obtains a grade of 12+ point in Part I, the student is not allowed to sit Part I again.
Repeating written exams: Part II
It is possible to sit Part II multiple times, with certain limitations.
- If a student sits Part II again and delivers, the previous grade in part I will be replaced with a note of "Rifiutato" (refused), which will be officially recorded.
- If a student sits Part II again and withdraws, a note of "Ritirato" (withdrawn) will be recorded for the new attempt.
- It is possible to refuse a grade of 6+ points in Part II only once. After the second time a student obtains a grade of 6+ point in Part II, the student is not allowed to sit Part II again.
Failing the exam
If, after sitting both parts, the overall score does not reach 18 points, a "Respinto" (fail) grade is recorded.
Official recording of exam result
After sitting both parts, if the overall score is 18 points or above, the student can request to have the grade officially recorded using a dedicated link in Virtuale.
Teaching tools
Relevant learning material will be made available via Virtuale. Lecture slides will be made available before class. Virtuale will also contain annotated lecture slides, a limited number of past exams, and the description of lab activities. A small 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