Obiettivi formativi
Introduzione.
Richiami sulla struttura del calcolatore
Processi e Thread.
Modello a processi, stato, generazione e terminazione. Il modello a thread, uso e implementazione. Paradigmi di interazione: condivisione, sincronizzazione, comunicazione. Scheduling di thread e processi.
Le Risorse.
Modelli di gestione delle risorse. Politiche elementari di gestione. Il problema dello stallo: caratterizzazione, metodi per evitarlo, impedirlo, riconoscerlo ed eliminarlo. Attesa indefinita. Alcuni problemi classici.
Gestione della memoria.
Il problema di base. Swapping. Paginazione. Algoritmi di sostituzione. Cenni sulla tecnica di segmentazione ed sulle problematiche implementative.
Gestione dei dispositivi di Ingresso/Uscita.
Dispositivi e processi controller. Caratteristiche del software di I/O, vari livelli di gestione: interruzioni, driver dei dispositivi, I/O software indipendente dai dispositivi. Gestione di alcuni dispositivi: dispositivi a caratteri, dischi magnetici.
File System.
Modello logico del sistema di archiviazione, file, directory. Implementazione di un file system. Esempi di file system.
La shell di Unix. La shell Bash, shell scripting, i filtri.
Programmazione di Sistema in C. Chiamate e librerie di sistema, controllo dei processi, comunicazioni tra processi, thread e multithreading, accesso al file-system e I/O.
Prerequisiti
- - -
Contenuti dell'insegnamento
Il corso introduce i principi ed i concetti fondamentali su cui si basano i sistemi operativi. In particolare, vengono analizzate le tecniche che consentono di coordinare e gestire le risorse di un sistema di elaborazione e che permettono di trasformare la macchina fisica in una macchina astratta, dotata di funzionalità più convenienti per l'utente.
Programma esteso
Introduzione.
Richiami sulla struttura del calcolatore
Processi e Thread.
Modello a processi, stato, generazione e terminazione. Il modello a thread, uso e implementazione. Paradigmi di interazione: condivisione, sincronizzazione, comunicazione. Scheduling di thread e processi.
Le Risorse.
Modelli di gestione delle risorse. Politiche elementari di gestione. Il problema dello stallo: caratterizzazione, metodi per evitarlo, impedirlo, riconoscerlo ed eliminarlo. Attesa indefinita. Alcuni problemi classici.
Gestione della memoria.
Il problema di base. Swapping. Paginazione. Algoritmi di sostituzione. Cenni sulla tecnica di segmentazione ed sulle problematiche implementative.
Gestione dei dispositivi di Ingresso/Uscita.
Dispositivi e processi controller. Caratteristiche del software di I/O, vari livelli di gestione: interruzioni, driver dei dispositivi, I/O software indipendente dai dispositivi. Gestione di alcuni dispositivi: dispositivi a caratteri, dischi magnetici.
File System.
Modello logico del sistema di archiviazione, file, directory. Implementazione di un file system. Esempi di file system.
La shell di Unix. La shell Bash, shell scripting, i filtri.
Programmazione di Sistema in C. Chiamate e librerie di sistema, controllo dei processi, comunicazioni tra processi, thread e multithreading, accesso al file-system e I/O.
Bibliografia
A. Silberschatz. Sistemi Operativi, (concetti ed esempi). Ottava Edizione. Pearson.
Metodi didattici
lezioni frontali e laboratorio
Modalità verifica apprendimento
esame scritto e orale
Altre informazioni
- - -