Titolo insegnamento in inglese: Operating System I
Lingua: italiano
Insegnamento: Sistemi operativi I
Anno di corso: II
CFU: 9
Semestre: 2
Docenti:
- Canale 1: Alberto Finzi
- Canale 2: Walter Balzano
Insegnamenti propedeutici previsti
Architettura degli Elaboratori
Obiettivi Formativi
Il corso intende fornire una introduzione alla struttura e alle funzioni dei moderni Sistemi Operativi esaminandone i principi, le componenti fondamentali, le metodologie di progettazione e di sviluppo, gli algoritmi e gli strumenti di base. Particolari riferimenti riguardano il Sistema Operativo Unix ed implementazioni Linux, conoscenza delle metodologie usate per risolvere le problematiche tipiche della gestione delle risorse. Ulteriore finalità del corso è quella di fornire abilità di base nell’uso di una piattaforma a livello utente ed amministratore, principi di scripting e programmazione di Sistema.
Contenuti
Introduzione ai Sistemi Operativi: Definizioni di strutture, architetture e componenti.
Gestione dei processi: Concetti, operazioni e comunicazioni sui processi; Definizioni di Thread; Gestione della CPU, criteri ed algoritmi di Scheduling e valutazione degli Algoritmi. Scheduling per sistemi di elaborazione in tempo reale. Sincronizzazione dei processi; Problema della sezione critica; Architetture di sincronizzazione; Semafori; Problemi tipici di sincronizzazione; Regioni critiche; Monitor. Stallo dei Processi: Rilevamento e ripristino da situazioni di stallo.
Gestione della memoria: Avvicendamento dei processi, assegnazione contigua della memoria; Paginazione; Segmentazione. La memoria virtuale, definizioni di paginazione e segmentazione. Interfaccia e realizzazione del file system, Concetto di file, metodi di accesso, condivisione e protezione di file. Realizzazione della directory, metodi di assegnazione, gestione dello spazio libero, efficienza e prestazioni.
Sistemi di I/O: Architetture e dispositivi di I/O; Interfaccia di I/O per le applicazioni; Sottosistema per l'I/O del nucleo; Trasformazione delle richieste di I/O in operazioni dei dispositivi; Prestazioni. Memoria secondaria e terziaria, struttura dei dischi, scheduling del disco, gestione dell’unità a disco, Gestione dell'area di avvicendamento; Strutture RAID; Connessione dei dischi; Strutture per la memorizzazione terziaria.
Cenni alle architetture distribuite riguardanti aspetti di strutture, di protezione e sicurezza.
Gestione dei processi: Concetti, operazioni e comunicazioni sui processi; Definizioni di Thread; Gestione della CPU, criteri ed algoritmi di Scheduling e valutazione degli Algoritmi. Scheduling per sistemi di elaborazione in tempo reale. Sincronizzazione dei processi; Problema della sezione critica; Architetture di sincronizzazione; Semafori; Problemi tipici di sincronizzazione; Regioni critiche; Monitor. Stallo dei Processi: Rilevamento e ripristino da situazioni di stallo.
Gestione della memoria: Avvicendamento dei processi, assegnazione contigua della memoria; Paginazione; Segmentazione. La memoria virtuale, definizioni di paginazione e segmentazione. Interfaccia e realizzazione del file system, Concetto di file, metodi di accesso, condivisione e protezione di file. Realizzazione della directory, metodi di assegnazione, gestione dello spazio libero, efficienza e prestazioni.
Sistemi di I/O: Architetture e dispositivi di I/O; Interfaccia di I/O per le applicazioni; Sottosistema per l'I/O del nucleo; Trasformazione delle richieste di I/O in operazioni dei dispositivi; Prestazioni. Memoria secondaria e terziaria, struttura dei dischi, scheduling del disco, gestione dell’unità a disco, Gestione dell'area di avvicendamento; Strutture RAID; Connessione dei dischi; Strutture per la memorizzazione terziaria.
Cenni alle architetture distribuite riguardanti aspetti di strutture, di protezione e sicurezza.
Modalità didattiche
Lezioni frontali. Esercitazioni.
Modalità di esame
L'esame si articola in prova scritta e orale.
La prova scritta è a risposta multipla, libera e con esercizi numerici.