OPERATING SYSTEMS & LABORATORY

9 CFU - 1° semestre

Docente titolare dell'insegnamento

MARIO DI RAIMONDO
Email: diraimondo@dmi.unict.it
Edificio / Indirizzo: Stanza 355 - Blocco I - DMI - Cittadella Universitaria
Telefono: +39 095 738 3038
Orario ricevimento: https://diraimondo.dmi.unict.it/teaching/ricevimento/


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