Giorno |
Orario |
Sessione |
Aula |
Obiettivi Formativi
Il Corso ha lo scopo di illustrare la struttura di un sistema operativo multiprogrammato e le relative politiche di amministrazione delle risorse computazionali, con particolare riferimento alla schedulazione della CPU e alla gestione della memoria centrale, del file system e dei dispositivi di I/O.
Programma
01. Introduzione:
01.01 Introduzione ai sistemi operativi.
01.02 Strutture dei sistemi operativi.
01.03 Principali funzioni di un sistema operativo.
01.04 Chiamate di sistema.
02. Gestione dei processi:
02.01 Cosa sono i processi e i thread.
02.02 Context switch.
02.03 Processi vs. thread.
02.04 Comunicazione tra processi.
03. Sincronizzazione:
03.01 Regioni critiche.
03.02 Strumenti per la sincronizzazione e loro uso.
03.03 Problemi di sincronizzazione e deadlock.
04. Scheduling:
04.01 Decisioni di scheduling: come e quando?
04.02 Allocazione delle risorse.
04.03 Politiche di scheduling.
05. Linking:
05.01 I passi della creazione di un file oggetto.
05.02 Rilocazione.
05.03 Librerie statiche e dinamiche.
06. Memoria virtuale:
06.01 Gestione dell'indirizzamento.
06.02 Paginazione e segmentazione.
06.03 Politiche di rimpiazzamento delle pagine.
07. File system:
07.01 Concetto di file e metodi di accesso.
07.02 Struttura delle directory.
07.03 Realizzazione del file system.
08. Sistemi di input/output:
08.01 Polling, interrupt e DMA.
08.02 Dispositivi a caratteri, a blocchi e di rete.
08.03 I/O bloccante e non bloccante.
08.04 Interfaccia del kernel per l'I/O.
08.05 Gestione del disco e swapping.
09. Sistemi distribuiti:
09.01 Accenno alle reti di comunicazione.
09.02 Sistemi operativi di rete e distribuiti.
09.03 File system distribuiti.
10. Protezione e sicurezza:
10.01 Tipi di protezione.
10.02 Domini di protezione e accessi.
10.03 Convalida e password.
10.04 Pericoli per i programmi ed il sistema.
10.05 Encryption.
10.06 Esempi.
11. Virtual machine:
11.01 Virtual machine astratte.
11.02 Virtual machine reali.
11.03 JVM - Java Virtual Machine.
12. Elementi di sistemi real-time:
12.01 Sistemi hard e soft real-time.
12.02 Algoritmi di scheduling.
12.03 Accesso alle risorse.
12.04 Il kernel dei sistemi operativi real-time.
13. Casi di studio:
13.01 Unix e Linux.
13.02 Windows NT.
13.03 Sistemi operativi per sistemi embedded.
14. Attivit? di laboratorio:
14.01 Programmazione parallela con Linux.
14.02 Configurazione e utilizzo di un cluster Linux di elaboratori.
14.03 Utilizzo di Linux in ambiente multiprocessore.
Modalità Didattiche, Obblighi, Testi di Studio e Modalità di Accertamento
- Modalità didattiche
- Lezioni frontali ed esercitazioni di laboratorio
- Obblighi
- Nessuno.
- Testi di studio
- Silbershatz, Galvin, Gagne, "Operating System Concepts", Addison-Wesley, 2002.
Tanenbaum, "Modern Operating Systems", Prentice Hall, 2001.
Buttazzo, "Hard Real-Time Computing Systems", Kluwer, 1997.
Bovet, Cesati, "Understanding the Linux Kernel", O'Reilly, 2000.
Rubini, Corbet, "Linux Device Drivers", O'Reilly, 2001.
- Modalità di
accertamento
- Prova scritta, progetto individuale di laboratorio e prova orale.
- Disabilità e DSA
Le studentesse e gli studenti che hanno registrato la certificazione di disabilità o la certificazione di DSA presso l'Ufficio Inclusione e diritto allo studio, possono chiedere di utilizzare le mappe concettuali (per parole chiave) durante la prova di esame.
A tal fine, è necessario inviare le mappe, due settimane prima dell’appello di esame, alla o al docente del corso, che ne verificherà la coerenza con le indicazioni delle linee guida di ateneo e potrà chiederne la modifica.