- 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
Automation Engineering (cod. 6711)
Also valid for Second cycle degree programme (LM) in Electrical Energy Engineering (cod. 9066)
-
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: - 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
- 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 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