-----


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.

-----

o Back to Monica's Home Page

-----

-----