| | | corso | | | | |
Sistemi Operativi B
Codice: | AA015 | Crediti: | 6 | Semestre: | 2 | Sigla: | SO | |
|
Settore disciplinare: | INF/01 - Informatica |
Docente
Prerequisiti
La frequenza dei corsi: Algoritmica, Architetture degli elaboratori, Laboratorio di programmazione concorrente è raccomandata
Obiettivi di apprendimento
Il corso introduce i principi ed i concetti su cui si basano i sistemi operativi e analizza la loro realizzazione nei sistemi reali. In particolare, vengono presentate 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.
Conoscenze. Lo studente raggiungerà la conoscenza delle problematiche dei sistemi operativi e delle caratteristiche dei sistemi attualmente più usati.
Capacità. Lo studente saprà progettare un sistema operativo e saprà valutare la tecnologia dei sistemi operativi commerciali sulla base della piena comprensione delle soluzioni tecniche utilizzate.
Comportamenti. Lo studente saprà essere indipendente nella valutazione delle tecnologie e degli strumenti forniti dai sistemi operativi. Sarà inoltre cosciente delle problematiche relative alla loro realizzazione.
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 (2 0re)
- Il sistema operativo: ruolo, funzionalità e struttura;
- Evoluzione dei sistemi operativi: batch, multiprogrammazione, time-sharing
- Richiami sul funzionamento dell’elaboratore: interruzioni e loro gestione, I/O,
- Stato del processore, chiamate di sistema.
Organizzazione dei Sistemi Operativi (2 ore)
- Funzionalità
- Struttura: sistemi monolitici e modulari; sistemi stratificati; microkernel
- Organizzazione e funzionalità dei sistemi operativi Unix e Windows.
I processi (6 ore)
- Il concetto di processo
- Stati dei processi
- Realizzazione dei processi nel Sistema Operativo
- Operazioni sui processi
- Processi e thread
- La gestione dei processi e dei thread in Unix e in Windows: stati, rappresentazione, gestione (scheduling), operazioni e comandi
Interazione tra processi (6 ore)
- Interazione mediante memoria condivisa: sincronizzazione; sezioni critiche e mutua esclusione; i semafori; strumenti hardware per la sincronizzazione: test-and-set
- Interazione mediante scambio di messaggi: comunicazione diretta/indiretta,simmetrica/asimmetrica; buffering.
- Interazione tra processi in Unix: comunicazione mediante pipe e fifo; sincronizzazione mediante segnali
- Interazione tra processi in Windows
Gestione del processore (4 ore)
- Concetti generali e politiche di scheduling
- Algoritmi di scheduling: FCFS,SJF, con priorità, Round Robin, con code multiple.
- Scheduling in Unix e in Windows.
Gestione della Memoria (8 ore)
- Concetti generali: spazio degli indirizzi logico/fisico; collegamento
- Allocazione della memoria: contigua: a partizione singola e partizioni multiple; frammentazione;
- Allocazione della memoria non contigua: paginazione e segmentazione
- Memoria virtuale
- Gestione della memoria in Unix e in Windows.
Gestione dei dispositivi di I/O (4 ore)
- I dispositivi di I/O e la loro gestione: concetti generali
- Organizzazione e gestione dei dischi
- Dischi RAID
Gestione degli Archivi (6 ore)
- File system e sua realizzazione
- Struttura logica; metodi di accesso
- Struttura fisica; allocazione dei file
- Protezione
- Il file system di Unix: organizzazione logica e fisica, comandi e system calls per la gestione e l’accesso a file e directories
- Il file system di Windows
Cenni sui sistemi operativi di rete (2 ore)
- Modello OSI e rete Internet
- Modello cliente-servente
- Esecuzione remota di comandi
- Il caso di Unix: socket
Ore lezione: | 24 | Ore esercitazione: | 24 | | | |
Bibliografia
Libro di testo
- Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari: Sistemi operativi, Mc Graw-Hill, 2004.
Altri Testi Consigliati:
- Andrew S. Tanenbaum. Modern Operating Systems: Second Edition. Prentice Hall
- Silbershatz, P. Galvin: Sistemi Operativi (5^ edizione), Addison Wesley, 1998.
- P. Maestrini, Sistemi Operativi, Mc Graw-Hill, 1994.
- Uresh Vahalia. Unix Internals: the new frontiers. PrenticeHall 1995.
- Dave Solomon and Mark Russinovic. Inside Microsoft Windows 2000, 3rd Edition MICP ISBN: 0-7356-1021-5.
Modalità di esame
Scritto e orale
Prova scritta sostituibile con due prove scritte intermedie.