Un sistema operativo è un software che gestisce l'hardware di un calcolatore. Lo scopo di un sistema operativo è quello di fornire all'utente un ambiente nel quale l'esecuzione dei programmi possa avvenire in modo conveniente ed efficace.
Gli argomenti trattati nel corso riguardano i concetti di base dei sistemi operativi, con particolare riferimento alle tematiche legate alla gestione dei processi e delle memorie nei calcolatori.
Obiettivi:
Il corso intende fornire agli studenti:
Periodo:
I semestre (ottobre 2022 – gennaio 2023)
Orario di lezione:
Le lezioni si svolgeranno in presenza
Appelli:
Ricevimento:
Il voto finale viene conseguito svolgendo un esame scritto con
Le domande e gli esercizi sono simili a quelli proposti nelle esercitazioni svolte durante il corso.
La prova ha durata pari a 2 ore e si svolge in presenza salvo diverse disposizoni
Gli studenti possono chiedere al docente di svolgere un progetto BONUS facoltativo per ottenere fino a tre punti che verranno sommati al voto ottenuto durante l'esame scritto.
progetto BONUS:
Esempi di progetto:
Per il programma completo fare riferimento al diario delle lezioni
Libro di testo:
A. Silberschatz, G. Gagne, P.B. Galvin, "Sistemi operativi.Concetti ed esempi" 10a Ed., Pearson
Slide:
disponibili nella colonna download del diario delle lezioni
Data | Argomenti trattati | Download |
03/10/2022 Lezione 1 |
Lezione di presentazione • Definizione di sistema operativo • Componenti di un sistema di elaborazione • Architetture di elaborazione |
|
04/10/2022 Lezione 2 |
Strutture dei sistemi operativi • Servizi • Chiamate di sistema • Servizi di sistema • Struttura • System boot |
|
10/10/2022 Lezione 3 |
Processi • Il concetto di processo • Creazione dei procesi • Comunicazione tra processi • Produttore/consumatore |
|
11/10/2022 Lezione 4 |
Thread • Processi multithread • Concorrenza e parallelismo • Gestione dei thread |
|
17/10/2022 Lezione 5 |
Esercizitazione • Processi • Thread |
|
18/10/2022 Lezione 6 |
Scheduling della CPU • Algoritmi di scheduling • Scheduling dei thread • Scheduling multiprocessore • Scheduling real-time |
|
24/10/2022 Lezione 7 |
Esercitazione • Scheduling FCFS • Scheduling SJF • Scheduling RR • Scheduling EDF |
|
25/10/2022 Lezione 8 |
Sincronizzazione dei processi • Sezione critica • Race condition • Lock mutex • Semafori • Monitor |
|
07/11/2022 Lezione 9 |
Esempi di sincronizzazione • Problema dei lettori/scrittori • Problema "dining philosophers" • Sincronizzazione POSIX • Problema "sleeping barber" |
3.2-esempi-di-sincronizzazione Il_problema_dei_filosofi_a_cena (esempio di progetto BONUS realizzato da Luca Atella) |
08/11/2022 Lezione 10 |
Esercitazione • Sezione critica • Lock mutex vs. semafori • Uso dei semafori • Lock mutex PThreads |
|
14/11/2022 Lezione 11 |
Stallo dei processi • Deadlock • Livelock • Grafo di assegnazione delle risorse • Algoritmo del banchiere |
|
15/11/2022 Lezione 12 |
Memoria centrale • Indirizzi logici • Indirizzi fisici • MMU |
|
21/11/2022 Lezione 13 |
Paginazione • TLB • Swapping |
|
22/11/2022 Lezione 14 |
Esercitazione • Algoritmi di allocazione • Tabella delle pagine • Tempo effettivo di accesso in memoria |
|
28/11/2022 Lezione 15 |
Memoria virtuale • Paginazione su richiesta • Page fault • Algoritmi di sostituzione delle pagine |
|
29/11/2022 Lezione 16 |
Esercitazione • Sostituzione OPT • Sostituzione LRU • Sostituzione FIFO
Allocazione di memoria • Trashing • Working set • Allocazione di memoria del kernel |
|
05/12/2022 Lezione 17 |
Memoria di massa • Dischi magnetici • Dispositivi NVM • Scheduling del disco |
|
06/12/2022 Lezione 18 |
Sistemi RAID • Area di swap • NAS • Cloud storage • Livelli RAID
Esercitazione • HDD vs. NVM • Scheduling del disco FCFS • Scheduling del disco SCAN • Scheduling del disco C-SCAN |
|
16/01/2023 Lezione 19 |
Sistemi di I/O • Interruzioni • DMA • I/O sincrono e asincrono • Protezione dell'I/O |
|
17/01/2023 Lezione 20 |
File system • File e directory • Struttura del file system • File Control Block (FCB) |
|
23/01/2023 Lezione 21 |
Esercitazione • FCB • Inode • Allocazione concatenata • Allocazione contigua • Allocazione indicizzata |
|
24/01/2023 Lezione 22 |
Sicurezza • Malware • Virus e worm • Code injection • Cifratura |
Lettura consigliata: The Code Book by Simon Singh |
30/01/2023 Lezione 23 |
Protezione • Domini di protezione • Matrice d'accesso • Abilitazioni e autorizzazioni |
|
30/01/2023 Lezione 24 |
Esercitazione con analisi di un esame passato |