Sistemi Operativi (9 CFU)

Prerequisiti

Capacità di programmare con il linguaggio C/C++. Conoscenza di base dell'architettura di un calcolatore. Propedeuticità: Calcolatori Elettronici.

Obiettivi

Il corso si propone di illustrare i concetti di base dei sistemi operativi, con particolare riferimento ai sistemi Unix. Vengono classificate e presentate le principali funzioni svolte da un sistema operativo multiprogrammato, introducendo i concetti fondamentali che sono alla base del loro sviluppo, illustrando le principali componenti che li caratterizzano e la loro organizzazione.

Programma

Concetti introduttivi. Principali funzioni di un sistema operativo. Cenni storici sull'evoluzione dei sistemi operativi. Richiami di architetture dei sistemi di elaborazione. Struttura dei sistemi operativi.
Gestione dei processi. Definizione di processo. Stati di un processo. Descrittore di un processo. Code di processi. Cambio di contesto. Creazione e terminazione dei processi. Interazione tra i processi. Richiami sul nucleo di un sistema a processi. Algoritmi di scheduling. Thread.
Sincronizzazione dei processi. Tipi di interazione tra processi. Problema della mutua esclusione. Problema della comunicazione. Semafori. Primitive send e receive. Soluzione al problema della comunicazione tra processi. Blocco critico.
Gestione della memoria. Introduzione alla gestione della memoria. Memoria virtuale. Tecniche di gestione della memoria.
Gestione delle periferiche (I/O). Organizzazione logica del sottosistema di I/O. Gestore di un dispositivo. Gestione e organizzazione dei dischi.
Il file system. Organizzazione del file system. La struttura logica del file system. Accesso al file system. Organizzazione fisica.
Protezione e sicurezza. Modelli, politiche e meccanismi di protezione. Domini di protezione. Il modello matrice degli accessi. Realizzazione della matrice degli accessi. Sistema di sicurezza multilivello. Controllo degli accessi basato sui ruoli. Autenticazione degli utenti.

LogoPdf Scarica il programma del corso in PDF