Sistemi Operativi Avanzati - Programma
Obiettivi formativi
===================
Il corso presenta gli aspetti teorici ed implementativi di speciali
classi di sistemi operativi, in particolare, i sistemi operativi
distribuiti e i sistemi operativi in real-time.
Tali aspetti verranno approfonditi con esercitazioni pratiche di laboratorio.
Attività formative
===================
Il corso viene svolto in 50 ore tra lezioni ed esercitazioni
in laboratorio, svolte in un unico periodo didattico.
Programma del corso
===================
- Introduzione: Classi di sistemi operativi non convenzionali
sistemi operativi distribuiti, sistemi operativi multiprocessore; sistemi
real-time, sistemi operativi embedded.
Strutture di sistemi operativi non convenzionali: microkernel, cluster,
Esempi di sistemi operativi dei vari tipi.
- Sistemi Operativi Distribuiti: Problematiche; Architetture HW
e SW; Metriche di progetto (trasparenza, flessibilità, affidabilità,
scalabilità).
La comunicazione nei sistemi distribuiti: protocolli, modello client-server.
- La sincronizzazione nei sistemi distribuiti: Sincronizzazione dei clock;
Mutua esclusione e transazioni atomiche; Deadlock.
- File system distribuiti: Problematiche ed implementazione; Naming e
caching; Casi di studio: NFS, LFS, AFS.
- Memoria Condivisa Distribuita (DSM): Modello concettuale; implementazioni;
problema della consistenza e relativi modelli.
- Sistemi operativi real-time: Problematiche e vincoli (determinismo,
reattività, affidabilità); Esempi di sistemi real-time.
- Scheduling nei sistemi operativi real-time: Concetto di clock, deadline,
e timeout; scheduling a priorità; deadline scheduling;
- scheduling di task aperiodi e periodici;
- Sistemi embedded e sistemi operativi real-time: Sistemi
embedded: applicazioni e problematiche; Sistemi operativi embedded:
implementazione delle funzionalità con vincoli di consumo di
potenza: scheduling a basso consumo, file system a basso consumo,
meccanismi di power management.
- Esercitazioni di laboratorio: Implementazione di alcune funzionalità
su un sistema operativo real-time open source.