OPERATING SYSTEMS & LABORATORY

9 CFU - 1° semestre

Docente titolare dell'insegnamento

MARIO DI RAIMONDO


Obiettivi formativi


Modalità di svolgimento dell'insegnamento


Prerequisiti richiesti



Frequenza lezioni



Contenuti del corso



Testi di riferimento


Altro materiale didattico



Programmazione del corso

LABORATORY
 ArgomentiRiferimenti testi
1Teoria: 
2Introduzione al concetto di sistema operativocap.1 di [TB], cap.1 di [SGG] 
3Richiami sull'architettura degli elaboratoricap.1 di [TB], cap.1 di [SGG] 
4Struttura di un sistema operativocap.1 di [TB], cap.2 di [SGG] 
5I processi: definizione, multiprogrammazione, stati e transizionicap.2 di [TB], cap.3,4 di [SGG] 
6I thread: definizione, modelli utilizzabili; programmazione multicorecap.2 di [TB], cap.4 di [SGG] 
7Sezioni 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 processicap.2 di [TB], cap.6 di [SGG] 
8Problema dei 5 filosofi e dei lettori-scrittori (soluzioni basate su semafori e monitor)cap.2 di [TB], cap.6 di [SGG] 
9Scheduling: scheduler e dispatchercap.2 di [TB], cap.5 di [SGG] 
10Algoritmi di scheduling: progettazione, FCFS, SJF, SRTN, RR, a priorità, con code multiple, SPN, garantito, a lotteria, fair-sharecap.2 di [TB], cap.5 di [SGG] 
11Scheduling dei thread e su sistemi multi-processorecap.2 di [TB], cap.5 di [SGG] 
12Scheduling su Windows 8 e Linux (task, O(1) e CFS)cap.10,11 di [TB], cap.21,22 di [SGG] 
13Gestione della memoria per la multi-programmazione: swapping, rilocazione, gestione dello spazio liberocap.3 di [TB], cap.8 di [SGG] 
14Memoria virtuale: paginazione, tabella delle pagine, uso di memoria associativa, varianti multi-livello, tabella delle pagine invertita, conseguenze sulla cachecap.3 di [TB], cap.8 di [SGG] 
15Algoritmi di sostituzione delle pagine: progettazione, ottimale, NRU, FIFO, seconda chance, clock, LRU, NFU, aging; anomalia di Beladycap.3 di [TB], cap.9 di [SGG] 
16Altri 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 kernelcap.3 di [TB], cap.9 di [SGG] 
17Segmentazionecap.3 di [TB], cap.8 di [SGG] 
18Gestione della memoria su Linuxcap.10 di [TB], cap.8 di [SGG] 
19File-system: astrazione, file, directorycap.4 di [TB], cap.10 di [SGG] 
20Progettazione 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] 
21Altri aspetti tecnici sui file-system: controlli di consistenza, journaling, deframmentazionecap.4 di [TB], cap.11 di [SGG] 
22Accenni sui file-system storici e contemporanei: FAT-[12,16,32,64], NTFS, ext-[2,3,4], BTRFScap.4,10,11 di [TB], cap.21,22 di [SGG] 
23Scheduling del disco e relativi algoritmi: FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOKcap.5 di [TB], cap.12 di [SGG] 
24Sistemi RAID: principi di base, RAID-[0,1,2,3,4,5]cap.5 di [TB], cap.12 di [SGG] 
25Memorie flash, dischi a stato solido (SSD) e implicazioni sui file systemrisorse esterne 
26Laboratorio:risorse esterne, man page 
27Tutorial sull'uso della shell UNIX 
28L'uso delle chiamate di sistema 
29Gestione dell'I/O su file e chiamate di servizio relative al file-system e alla mappatura dei file in memoria 
30Gestione dei processi: creazione, coordinamento, esecuzione di comandi esterni 
31Chiamate per la comunicazione tra processi tramite pipe e FIFO 
32Chiamate per la comunicazione tra processi tramite messaggi 
33Chiamate per la gestione della memoria condivisa tra i processi 
34Chiamate per la gestione dei semafori 
35Segnali sui sistemi UNIX 
LABORATORY
 ArgomentiRiferimenti testi
1Teoria: 
2Introduzione al concetto di sistema operativocap.1 di [TB], cap.1 di [SGG] 
3Richiami sull'architettura degli elaboratoricap.1 di [TB], cap.1 di [SGG] 
4Struttura di un sistema operativocap.1 di [TB], cap.2 di [SGG] 
5I processi: definizione, multiprogrammazione, stati e transizionicap.2 di [TB], cap.3,4 di [SGG] 
6I thread: definizione, modelli utilizzabili; programmazione multicorecap.2 di [TB], cap.4 di [SGG] 
7Sezioni 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 processicap.2 di [TB], cap.6 di [SGG] 
8Problema dei 5 filosofi e dei lettori-scrittori (soluzioni basate su semafori e monitor)cap.2 di [TB], cap.6 di [SGG] 
9Scheduling: scheduler e dispatchercap.2 di [TB], cap.5 di [SGG] 
10Algoritmi di scheduling: progettazione, FCFS, SJF, SRTN, RR, a priorità, con code multiple, SPN, garantito, a lotteria, fair-sharecap.2 di [TB], cap.5 di [SGG] 
11Scheduling dei thread e su sistemi multi-processorecap.2 di [TB], cap.5 di [SGG] 
12Scheduling su Windows 8 e Linux (task, O(1) e CFS)cap.10,11 di [TB], cap.21,22 di [SGG] 
13Gestione della memoria per la multi-programmazione: swapping, rilocazione, gestione dello spazio liberocap.3 di [TB], cap.8 di [SGG] 
14Memoria virtuale: paginazione, tabella delle pagine, uso di memoria associativa, varianti multi-livello, tabella delle pagine invertita, conseguenze sulla cachecap.3 di [TB], cap.8 di [SGG] 
15Algoritmi di sostituzione delle pagine: progettazione, ottimale, NRU, FIFO, seconda chance, clock, LRU, NFU, aging; anomalia di Beladycap.3 di [TB], cap.9 di [SGG] 
16Altri 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 kernelcap.3 di [TB], cap.9 di [SGG] 
17Segmentazionecap.3 di [TB], cap.8 di [SGG] 
18Gestione della memoria su Linuxcap.10 di [TB], cap.8 di [SGG] 
19File-system: astrazione, file, directorycap.4 di [TB], cap.10 di [SGG] 
20Progettazione 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] 
21Altri aspetti tecnici sui file-system: controlli di consistenza, journaling, deframmentazionecap.4 di [TB], cap.11 di [SGG] 
22Accenni sui file-system storici e contemporanei: FAT-[12,16,32,64], NTFS, ext-[2,3,4], BTRFScap.4,10,11 di [TB], cap.21,22 di [SGG] 
23Scheduling del disco e relativi algoritmi: FCFS, SSTF, SCAN, C-SCAN, LOOK, C-LOOKcap.5 di [TB], cap.12 di [SGG] 
24Sistemi RAID: principi di base, RAID-[0,1,2,3,4,5]cap.5 di [TB], cap.12 di [SGG] 
25Memorie flash, dischi a stato solido (SSD) e implicazioni sui file systemrisorse esterne 
26Laboratorio:risorse esterne, man page 
27Tutorial sull'uso della shell UNIX 
28L'uso delle chiamate di sistema 
29Gestione dell'I/O su file e chiamate di servizio relative al file-system e alla mappatura dei file in memoria 
30Gestione dei processi: creazione, coordinamento, esecuzione di comandi esterni 
31Chiamate per la comunicazione tra processi tramite pipe e FIFO 
32Chiamate per la comunicazione tra processi tramite messaggi 
33Chiamate per la gestione della memoria condivisa tra i processi 
34Chiamate per la gestione dei semafori 
35Segnali sui sistemi UNIX 


Verifica dell'apprendimento


MODALITÀ DI VERIFICA DELL'APPRENDIMENTO

ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI



Apri in formato Pdf English version