- Docente: Paolo Torroni
- Credits: 12
- SSD: ING-INF/05
- Language: English
- Moduli: Andrea Galassi (Modulo 1) Paolo Torroni (Modulo 2) Paolo Torroni (Modulo 3)
- Teaching Mode: Traditional lectures (Modulo 1) 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 Electronic Engineering (cod. 0934)
Second cycle degree programme (LM) in Automation Engineering (cod. 8891)
-
from Sep 16, 2024 to Dec 17, 2024
-
from Oct 30, 2024 to Jun 12, 2025
-
from Feb 18, 2025 to Jun 10, 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 2024. 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 2024. 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 2024. First part of "Module 2". Topics: Linux shell, system call programming, POSIX, threads, synchronization. Hands-on lab.
- Real-Time (30 hours), February/May 2025. 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 2025. 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): written exam
- Module 2 (Lab): 2 assignments
- Module 3 (Real-Time): written exam
Each module is graded as follows:
- Module 1: 0-16 points
- Module 2: 0-5 points
- Module 3: 0-11 points
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 2025
- 31 May 2025
- 31 August 2025
OS lab assignments submitted by 15 January will be granted 0.3 speed bonus points. RT lab assignments submitted by 31 May 2025 will be granted 0.3 speed bonus points. The last cut-off date is also the deadline for submitting assignments for the 2024/25 academic year. Each assignment can only be submitted once and its grade is valid for the whole academic year. Assignments are not mandatory.
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. 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