| | | corso | | | | |
Sistemi Operativi A
Codice: | AA015 | Crediti: | 6 | Semestre: | 2 | Sigla: | SO | |
|
Settore disciplinare: | INF/01 - Informatica |
Docente
Prerequisiti
Algoritmica, Architetture degli elaboratori,
Laboratorio di programmazione concorrente
Obiettivi di apprendimento
Raggiungere una approfondita conoscenza da utente delle problematiche
legate alla realizzazione dei sistemi operativi e delle caratteristiche
dei
sistemi attualmente più usati.
Descrizione
Il corso introduce i principi ed i concetti fondamentali su cui si
basano i sistemi operativi e analizza in dettaglio come questi si
concretizzano nei sistemi reali. In particolare, vengono analizzate le
tecniche che consentono di coordinare e gestire le risorse di un
sistema di elaborazione e che permettono di trasformare la macchina
fisica in una macchina astratta, dotata di funzionalità più
convenienti per l'utente. Il corso lascia ampio spazio alla
descrizione e all'esemplificazione di come i vari concetti presentati
sono realizzati nei sistemi Unix/Linux e in quelli della famiglia
Microsoft Windows.
English Description
The course covers the fundamentals of modern operating systems.
Lectures present the central ideas and concepts, and explain how they
are manifested in real operating systems. The basic topics covered are:
- Structure, kernel, system calls
- Processes and threads
- Memory and input/output management
- File systems
- Case studies: Unix/Linux and Windows
- Some issues and problems in distributed systems
Programma
- Introduzione-Richiami struttura del calcolatore (2 ore)
- Processi e Thread (8 ore)
Modello a processi, stato, generazione e terminazione. Il
modello a thread, uso e
implementazione. Paradigmi di interazione: condivisione,
sincronizzazione, comunicazione. Scheduling di thread e
processi. Processi e thread in Unix/Windows.
- Le Risorse (4 ore)
Modelli di gestione delle risorse. Politiche elementari di
gestione. Il problema dello stallo: caratterizzazione, metodi
per evitarlo, impedirlo, riconoscerlo ed eliminarlo. Attesa
indefinita. Alcuni problemi classici.
- Gestione della memoria (8 ore)
Il problema di base. Swapping. Paginazione. Algoritmi di
sostituzione. Cenni di Segmentazione e di problematiche
implementative. La gestione della memoria in Unix/Windows.
- Gestione dei dispositivi di Ingresso/Uscita (6 ore)
Dispositivi e processi controller. Caratteristiche del software
di I/O, vari livelli di gestione: interruzioni, driver dei
dispositivi, I/O software indipendente dai
dispositivi. Gestione di alcuni dispositivi: dispositivi a
caratteri, clock, dischi magnetici.
Esempi di gestione dei dispositivi in Unix/Windows.
- File System (6 ore)
Modello logico del sistema di archiviazione, file,
directory. Implementazione di un file system. Esempi di file
system. Esempi di file systems nei sistemi reali.
- Casi di Studio (4 ore)
Struttura e caratteristiche dei sistemi Unix/Linux e Windows.
Le parti descritte nei moduli precedenti vengono riprese e
presentate in un quadro d'insieme.
- Cenni a problematiche avanzate (2 ore)
Approfondimento di un problema nell'ambito
sistemi operativi distribuiti, sicurezza.
Bibliografia
Testo di riferimento:
Andrew S. Tanenbaum. Modern Operating Systems: Second
Edition. Prentice Hall 2001 ISBN 0-13-031358-0
Testi di approfondimento:
Dave Solomon and Mark Russinovic. Inside Microsoft Windows 2000 3rd
Edition MICP ISBN: 0-7356-1021-5
Uresh Vahalia. Unix Internals: the new frontiers. PrenticeHall 1995
ISBN 0-13-101908-2
Modalità di esame
Scritto e orale