Sistemi operativi ii
A.A. 2024/2025
Obiettivi formativi
L'insegnamento si propone di fornire le conoscenze sui fondamenti teorici, gli algoritmi e le tecnologie riguardanti la gestione della memoria centrale, dei dispositivi di ingresso/uscita, del file system, dell'interfaccia utente e degli ambienti distribuiti nei sistemi operativi per le principali tipologie di architetture di elaborazione.
Risultati apprendimento attesi
Comprensione di fondamenti teorici, algoritmi e tecnologie per la gestione della memoria centrale, dei dispositivi di ingresso/uscita, del file system, dell'interfaccia utente e degli ambienti distribuiti nei sistemi operativi.
Comprensione del funzionamento della gestione della memoria centrale, dei dispositivi di ingresso/uscita, del file system, dell'interfaccia utente e degli ambienti distribuiti nei sistemi operativi a supporto della realizzazione ottimale di applicazioni.
Comprensione delle opportunità di configurazione e della gestione della memoria centrale, dei dispositivi di ingresso/uscita, del file system, dell'interfaccia utente e degli ambienti distribuiti nei sistemi operativi.
Comprensione del funzionamento della gestione della memoria centrale, dei dispositivi di ingresso/uscita, del file system, dell'interfaccia utente e degli ambienti distribuiti nei sistemi operativi a supporto della realizzazione ottimale di applicazioni.
Comprensione delle opportunità di configurazione e della gestione della memoria centrale, dei dispositivi di ingresso/uscita, del file system, dell'interfaccia utente e degli ambienti distribuiti nei sistemi operativi.
Periodo: Primo quadrimestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento può essere seguito come corso singolo.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Primo quadrimestre
Programma
L'insegnamento analizza architetture, funzionalità, meccanismi, politiche e gestione dei sistemi operativi relativamente alla gestione della memoria centrale, dei dispositivi di ingresso/uscita, del file system, dell'interfaccia utente e dei sistemi operativi distribuiti per le varie architetture dei sistemi di elaborazione (monoprocessore, multiprocessore, cluster, distribuiti, embedded) orientati alle principali aree applicative (sistemi transazionali, interattivi, gestionali, multimediali, d'automazione d'ufficio, per telecomunicazioni, di controllo industriale, robotici, embedded). Il corso approfondisce poi gli aspetti progettuali e di gestione dei sistemi operativi, con riferimento a tecniche di progettazione, configurazione, e ottimizzazione relativamente alla gestione della memoria centrale, dei dispositivi di ingresso/uscita, del file system, dell'interfaccia utente e dei sistemi operativi distribuiti.
· Virtualizzazione della memoria centrale: politiche e meccanismi di gestione della memoria centrale; supporti architetturali; consistenza; tolleranza ai guasti e agli errori software; sicurezza e protezione; progettazione di algoritmi e strutture dati per la virtualizzazione della memoria centrale.
· Virtualizzazione dei dispositivi di ingresso/uscita: meccanismi e politiche di gestione delle tipologie dispositivi e interfacciamento; orologio, ordinamento temporale degli eventi in sistemi distribuiti, coordinamento; dischi; terminali; stampanti; periferiche speciali, supporto di sistema operativo per reti informatiche; aspetti di tempo reale, tolleranza ai guasti e agli errori software, sicurezza e protezione; progettazione di algoritmi e strutture dati per la virtualizzazione del dei dispositivi di ingresso/uscita.
· Astrazione della rappresentazione delle risorse informative e fisiche: file, file system, file system di rete e distribuito, politiche di identificazione delle risorse; consistenza, caching, backup; tolleranza ai guasti e agli errori software; protezione e sicurezza degli accessi; progettazione di algoritmi e strutture dati per l'astrazione delle risorse.
· Interfaccia utente: tipi di interpreti e interfacce utente (programmativo, testuale, grafico, multimediale); meccanismi e politiche di gestione dell'interfaccia utente; gestione e sicurezza degli accessi; tolleranza ai guasti e agli errori software; progettazione di algoritmi e strutture dati per l'interfaccia utente.
· Sistemi operativi per architetture distribuite: esecuzione di processi, sincronizzazione e comunicazione tra processi, gestione del deadlock, gestione delle periferiche, gestione del file system.
· Virtualizzazione della memoria centrale: politiche e meccanismi di gestione della memoria centrale; supporti architetturali; consistenza; tolleranza ai guasti e agli errori software; sicurezza e protezione; progettazione di algoritmi e strutture dati per la virtualizzazione della memoria centrale.
· Virtualizzazione dei dispositivi di ingresso/uscita: meccanismi e politiche di gestione delle tipologie dispositivi e interfacciamento; orologio, ordinamento temporale degli eventi in sistemi distribuiti, coordinamento; dischi; terminali; stampanti; periferiche speciali, supporto di sistema operativo per reti informatiche; aspetti di tempo reale, tolleranza ai guasti e agli errori software, sicurezza e protezione; progettazione di algoritmi e strutture dati per la virtualizzazione del dei dispositivi di ingresso/uscita.
· Astrazione della rappresentazione delle risorse informative e fisiche: file, file system, file system di rete e distribuito, politiche di identificazione delle risorse; consistenza, caching, backup; tolleranza ai guasti e agli errori software; protezione e sicurezza degli accessi; progettazione di algoritmi e strutture dati per l'astrazione delle risorse.
· Interfaccia utente: tipi di interpreti e interfacce utente (programmativo, testuale, grafico, multimediale); meccanismi e politiche di gestione dell'interfaccia utente; gestione e sicurezza degli accessi; tolleranza ai guasti e agli errori software; progettazione di algoritmi e strutture dati per l'interfaccia utente.
· Sistemi operativi per architetture distribuite: esecuzione di processi, sincronizzazione e comunicazione tra processi, gestione del deadlock, gestione delle periferiche, gestione del file system.
Prerequisiti
Sono richieste conoscenze relative a concetti di informatica di base, architettura degli elaboratori, e programmazione.
A seguito di regole stabilite dal Collegio Didattico è obbligatorio il superamento dell'esame di Programmazione.
A seguito di regole stabilite dal Collegio Didattico è obbligatorio il superamento dell'esame di Programmazione.
Metodi didattici
Lezioni registrate.
Materiale di riferimento
A. Silberschatz, G. Gagne, P.B. Galvin, Operating Systems Concepts, Wiley
o un libro simile che copra tutti gli argomenti
Slide e registrazioni delle lezioni saranno disponibili sul sito web dell'insegnamento: https://vpiuriso.ariel.ctu.unimi.it/
o un libro simile che copra tutti gli argomenti
Slide e registrazioni delle lezioni saranno disponibili sul sito web dell'insegnamento: https://vpiuriso.ariel.ctu.unimi.it/
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste in una prova scritta volta ad accertare la preparazione e la comprensione della materia. La prova consiste in domande di teoria. La durata della prova è 1:45h. La valutazione espressa in trentesimi terrà conto della correttezza, completezza e chiarezza espositiva delle risposte alle domande. L'esame non è sufficiente se una o più risposte non sono sufficienti. Durante la prova scritta non è consentito l'utilizzo di alcun materiale.
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI - CFU: 6
Lezioni: 48 ore
Docente:
Piuri Vincenzo
Turni:
Turno
Docente:
Piuri VincenzoDocente/i