OPERATING SYSTEMS M - Z
Academic Year 2024/2025 - Teacher: MARIO FRANCESCO PAVONEExpected Learning Outcomes
- Knowledge and understanding: the student will understand how a modern Operating System manages the hardware and software resources of a computer.
- Applying knowledge and understanding: the student will learn how judge the pros and cons of a solution in the ambit of Operating Systems; this by means of the study of the characteristics of existing approaches in hardware/software resource management.
- Making judgements: the student will learn how to analyse and formalize requirements of specific problems and to point the best solution.
- Communication skills: the student will learn the specific technical micro-language and he will be able to interface with technical documentation.
- Learning skills: the theoretical background and practical knowledge offered by this course allow the student to better understand the foundation used by any modern software solution; this usually helps in developing better software.
Course Structure
In class oral lessons on theoretical arguments and on laboratory-related aspects.
Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.
Required Prerequisites
requirements: basics of programming, knowledge of computer architectures
prerequisite: Computer Architecture, Programming 1
Attendance of Lessons
Detailed Course Content
Textbook Information
Author | Title | Publisher | Year | ISBN |
Andrew S. Tanenbaum, Herbert Bos | I moderni sistemi operativi (quinta edizione) | Pearson | 2023 | 9788891912695 |
Abraham Silberschatz, Peter Baer Galvin, Greg Gagne | Sistemi operativi – Concetti ed esempi (nona edizione) | Pearson | 2014 | 9788865183717 |
Course Planning
Subjects | Text References | |
---|---|---|
1 | Teoria: | |
2 | Introduzione al concetto di sistema operativo | cap.1 di [TB], cap.1 di [SGG] |
3 | Richiami aull'architettura degli elaboratori | cap.1 di [TB], cap.1 di [SGG] |
4 | Struttura di un sistema operativo | cap.1 di [TB], cap.2 di [SGG] |
5 | I processi: definizione, multiprogrammazione, stati e transizioni | cap.2 di [TB], cap.3,4 di [SGG] |
6 | I thread: definizione, modelli utilizzabili; programmazione multicore | cap.2 di [TB], cap.4 di [SGG] |
7 | Sezioni critiche e mutua esclusione: variabili di lock, alternanza stretta, soluzione di Peterson, istruzioni TSL/XCHG, semafori, mutex lock in spazio utente, futex, monitor, messaggi tra processi | cap.2 di [TB], cap.6 di [SGG] |
8 | Problema dei 5 filosofi e dei lettori-scrittori (soluzioni basate su semafori e monitor) | cap.2 di [TB], cap.6 di [SGG] |
9 | Scheduling: scheduler e dispatcher | cap.2 di [TB], cap.5 di [SGG] |
10 | Algoritmi di scheduling: progettazione, FCFS, SJF, SRTN, RR, a priorità, con code multiple, SPN, garantito, a lotteria, fair-share | cap.2 di [TB], cap.5 di [SGG] |
11 | Scheduling dei thread e su sistemi multi-processore | cap.2 di [TB], cap.5 di [SGG] |
12 | Gestione della memoria per la multi-programmazione: swapping, rilocazione, gestione dello spazio libero | cap.3 di [TB], cap.8 di [SGG] |
13 | Memoria virtuale: paginazione, tabella delle pagine, uso di memoria associativa, varianti multi-livello, tabella delle pagine invertita, conseguenze sulla cache | cap.3 di [TB], cap.8 di [SGG] |
14 | Algoritmi di sostituzione delle pagine: progettazione, ottimale, NRU, FIFO, seconda chance, clock, LRU, NFU, aging; anomalia di Belady | cap.3 di [TB], cap.9 di [SGG] |
15 | Altri aspetti legati alla gestione della memoria: allocazione dei frame, working set, controllo del carico, dimensione delle pagine, condivisione delle pagine, copy-on-write, zero-fill-on-demand, librerie condivise, mappatura di file, allocazione della memoria del kernel | cap.3 di [TB], cap.9 di [SGG] |
16 | File-system: astrazione, file, directory | cap.4 di [TB], cap.10 di [SGG] |
17 | Progettazione di un file-system: allocazione dei file (contigua, concatenata, tabellare e indicizzata), directory, hard/soft-link, gestione blocchi liberi (con bitmap e con lista concatenata) | cap.4 di [TB], cap.11 di [SGG] |
18 | Altri aspetti tecnici sui file-system: controlli di consistenza, journaling, deframmentazione | cap.4 di [TB], cap.11 di [SGG] |
19 | Accenni sui file-system storici e contemporanei: FAT-[12,16,32,64], NTFS, ext-[2,3,4], BTRFS | cap.4,10,11 di [TB], cap.21,22 di [SGG] |
20 | Scheduling del disco e relativi algoritmi: FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOK | cap.5 di [TB], cap.12 di [SGG] |
21 | Sistemi RAID: principi di base, RAID-[0,1,2,3,4,5] | cap.5 di [TB], cap.12 di [SGG] |
22 | Memorie flash, dischi a stato solido (SSD) e implicazioni sui file system | risorse esterne |
23 | Laboratorio: | risorse esterne, man page |
24 | Gestione dell'I/O su file, chiamate di servizio relative al file-system e alla mappatura dei file in memoria | |
25 | Gestione dei processi e dei thread: creazione e coordinamento tramite attesa | |
26 | Coordinamento tramite mutex/lock, semafori contatori e variabili condizione (in stile monitor) e lock per reader/writer | |
27 | Accenno ai segnali sui sistemi UNIX |
Learning Assessment
Learning Assessment Procedures
The exam consists of two tests to be passed in order but also on different dates:
- theory test: it includes, within a single session, a written or computer-based test followed by an oral interview on the theory part of the program;
- practical laboratory test: having passed the theory, it includes a session in the laboratory in which the student will have to write a program in C language that solves a proposed problem using the UNIX constructs and system calls seen in class.
Check all the details on how to book on the course website.
Verification of learning can also be carried out electronically, should the conditions require it.
Students with disabilities and/or DSA must contact the teacher, the CInAP representative of the DMI and CInAP well in advance of the exam date to communicate that they intend to take the exam using the appropriate compensatory measures.
Examples of frequently asked questions and / or exercises
In the main course webpage are available:
- a facsimile of the actual written test (see the FAQ section);
- a series of laboratory exercises that students are invited to perform during the course;
- all laboratory tests, some with solutions, carried out in past sessions.