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 2019 – febbraio 2020)
Orario di Lezione:
lunedì dalle 11:30 alle 13:30
martedì dalle 8:30 alle 10:30
presso AULA A18
Appelli:
Per le date di esame si veda la sezione Appelli
Per le modalità di esame si veda la sezione Esame
Ricevimento:
11 febbraio 2020 - ore 14:30 - aula A18 testo
25 febbraio 2020 - ore 14:30 - aula A18 testo A testo B
29 maggio 2020 - ore 10:30 - esame a distanza testo es2.c
15 luglio 2020 - ore 10:00 - esame a distanza testo A testo B
15 settembre 2020 - ore 11:00 - esame a distanza testo
16 dicembre 2020 - ore 11:00 - esame a distanza testo
Il voto finale viene conseguito svolgendo un esame scritto con
Le domande e gli esercizi saranno simili a quelli proposti nelle esercitazioni svolte durante il corso.
La prova avrà la durata di 2 ore e 30 minuti.
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 |
01/10/2019 Lezione 1 |
Lezione di presentazione • Definizione di sistema operativo • Componenti di un sistema di elaborazione • Architetture di elaborazione |
|
07/10/2019 Lezione 2 |
Strutture dei sistemi operativi • Servizi • Chiamate di sistema • Servizi di sistema • Struttura • System boot |
|
08/10/2019 Lezione 3 |
Processi • Il concetto di processo • Creazione dei procesi • Comunicazione tra processi • Produttore/consumatore |
|
14/10/2019 Lezione 4 |
Thread • Processi multithread • Concorrenza e parallelismo • Gestione dei thread |
|
15/10/2019 Lezione 5 |
Esercizitazione • Processi • Thread |
|
21/10/2019 Lezione 6 |
Scheduling della CPU • Algoritmi di scheduling • Scheduling dei thread • Scheduling multiprocessore • Scheduling real-time |
|
22/10/2019 Lezione 7 |
Esercitazione • Scheduling FCFS • Scheduling SJF • Scheduling RR • Scheduling EDF |
|
28/10/2019 Lezione 8 |
Sincronizzazione dei processi • Sezione critica • Race condition • Lock mutex • Semafori • Monitor |
|
29/10/2019 Lezione 9 |
Esempi di sincronizzazione • Problema dei lettori/scrittori • Problema dei cinque filosofi • Sincronizzazione POSIX • Problema dello sleeping barber |
|
04/11/2019 Lezione 10 |
Esercitazione • Sezione critica • Lock mutex vs. semafori • Uso dei semafori • Lock mutex PThreads |
|
05/11/2019 Lezione 11 |
Stallo dei processi • Deadlock • Livelock • Grafo di assegnazione delle risorse • Algoritmo del banchiere |
|
18/11/2019 Lezione 12 |
Memoria centrale • Indirizzi logici • Indirizzi fisici • Paginazione |
|
19/11/2019 Lezione 13 |
Esercitazione • Algoritmi di allocazione • Tabella delle pagine • Tempo effettivo di accesso in memoria |
|
25/11/2019 Lezione 14 |
Memoria virtuale • Paginazione su richiesta • Page fault • Algoritmi di sostituzione delle pagine |
|
26/11/2019 Lezione 15 |
Esercitazione • Sostituzione OPT • Sostituzione LRU • Sostituzione FIFO
Allocazione di memoria • Trashing • Working set • Allocazione di memoria del kernel |
|
02/12/2019 Lezione 16 |
Memoria di massa • Dischi magnetici • Dispositivi NVM • Scheduling del disco |
|
03/12/2019 Lezione 17 |
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 |
|
09/12/2019 Lezione 18 |
Sistemi di I/O • Interruzioni • DMA • I/O sincrono e asincrono • Protezione dell'I/O |
|
13/01/2020 Lezione 19 |
File system • File e directory • Struttura del file system • File Control Block (FCB) |
|
14/01/2020 Lezione 20 |
Esercitazione • FCB • Inode • Allocazione concatenata • Allocazione contigua • Allocazione indicizzata |
|
20/01/2020 Lezione 21 |
Sicurezza • Malware • Virus e worm • Code injection • Cifratura |
|
21/01/2020 Lezione 22 |
Protezione • Domini di protezione • Matrice d'accesso • Abilitazioni e autorizzazioni |
|
27/01/2020 Lezione 23 |
Simulazione di esame |
simulazione-di-esame |
28/01/2020 Lezione 24 |
Soluzioni simulazione di esame |
soluzioni-simulazione |