

Dispense per il corso di Sistemi Operativi
I file sono in formato PDF


Presentazione del corso
Introduzione: organizzazione del sistema di calcolo, componenti principali e servizi del sistema operativo. Sistemi operativi open-source.
Struttura dei sistemi operativi: interfaccia utente, system call, programmi di sistema; realizzazione e ottimizzazione del SO.
I processi: definizione, scheduling e operazioni; processi cooperanti e tecniche di comunicazione.
Thread e concorrenza: motivazioni e definizione di thread. Modelli e librerie per la programmazione multithread. I thread in Linux.
Lo scheduling della CPU (sistemi monoprocessore, SMP, real-time). Lo scheduler CFS di Linux.
La sincronizzazione dei processi: il problema della sezione critica e i costrutti per la sincronizzazione.
Esempi di sincronizzazione: problemi classici di sincronizzazione; sincronizzazione in Linux; sincronizzazione POSIX.
Il deadlock: caratterizzazione, metodi per prevenire, evitare e ripristare da situazioni di stallo.
Tecniche di gestione della memoria principale: allocazione contigua, paginazione, swapping. Le architetture Intel e ARM come case-study.
La memoria virtuale: paginazione su richiesta, sostituzione di pagine ed allocazione di frame. Allocazione di memoria al kernel.
La memoria secondaria: struttura di dischi magnetici e SSD, tecnologie implementative, scheduling, strutture RAID.
L'interfaccia del file system: file, directory e loro organizzazione, protezione, montaggio. Unix come case-study.
Realizzazione del file system: metodi di allocazione dei file e di gestione dello spazio libero; efficienza e prestazioni. NFS come case-study.


Back to Monica's Home Page


