Diploma in Ingegneria Informatica
SISTEMI OPERATIVI
(Anno Accademico 1997-98)
Domenico Talia
OBIETTIVI E ORGANIZZAZIONE DEL CORSO
Il corso di Sistemi Operativi ha lo scopo di introdurre i concetti ed i
meccanismi fondamentali per la gestione dei processi, della memoria,
dell'I/O e del file system
sui cui sono basati i sistemi operativi moderni e di spiegare come questi
concetti e meccanismi sono utilizzati nei sistemi operativi oggi in uso.
Una parte del corso è dedicata allo studio del sistema
operativo UNIX come caso studio. Nel corso si pone una particolare enfasi
sui meccanismi di cooperazione e
comunicazione tra processi e vengono presentati e discussi esempi di
programmazione concorrente in ambiente UNIX tramite l'utilizzo delle
le system call offerte da questo sistema operativo.
CONTENUTI DEL CORSO
Introduzione
- Concetti fondamentali
- Dai Sistemi Batch ai Sistemi Operativi Moderni
- Struttura del sistema operativo
- Componenti di un Sistema Operativo
- System Calls
Gestione dei Processi
- Processi, Threads
- Creazione, interazione e terminazione di processi
- Schedulazione dei processi
- Diagramma di Stato
- Algoritmi di scheduling
Cooperazione tra Processi
- Sincronizzazione e Comunicazione
- Modelli di programmazione concorrente
- Meccanismi di cooperazione: semafori, monitor, scambio messaggi
- Deadlock
Gestione della Memoria Principale
- Tecniche per la gestione della memoria
- Swapping
- Paginazione e Segmentazione: Concetti ed Algoritmi
- Memoria Virtuale
File System
- Caratteristiche del File System
- File e Directory
- Protezione
- Implementazione del file system
Gestione dei dispositivi di Input/Output
- Principi dell'hardware di I/O
- Il software per la gestione dell' I/O
- Dischi, clock, terminali
Protezione e sicurezza
- Meccanismi di protezione
- Sicurezza
Introduzione a Unix
- Una sessione di login
- Comandi principali
- La shell di Unix
- Programmi di utilità
Concetti fondamentali di Unix
- I Processi in Unix: creazione e cooperazione
- Il Modello di Memoria di Unix
- Il File System di Unix
- L'I/O in Unix
Chiamate di sistema di Unix
- Primitive per la gestione dei processi
- Primitive per la gestione della memoria
- Primitive per la manipolazione di file e directory
- Primitive per la manipolazione dell'I/O
- Programmazione concorrente con le system call di Unix
Cenni su altri sistemi operativi
Libri di testo
- A. Silberschatz, P. Galvin, Sistemi Operativi, Addison-Wesley,
4a ed., oppure
- A.S. Tanenbaum, I moderni Sistemi Operativi, Jackson Libri,
1994.
Testi consigliati
- B.W. Kernighan, Rob Pike, Unix, Zanichelli, 1985.
- A. Burns, G. Davies, Concurrent Programming, Addison-Wesley,
1993.
- P. Andleigh, Introduzione all'architettura di sistema UNIX,
Gruppo editoriale Jackson, 1992
- N. Barkakati, I segreti di Linux, Apogeo, 1996.
Orario del Corso:
- Lunedi, 16.30-19.30, aula I2.
- Mercoledi, 11.30-13.30, aula I1.
Esame
L'esame consiste in una prova scritta
e di una orale. La prova scritta consiste in un esercizio di
programmazione concorrente utilizzando il linguaggio C e le system call di
UNIX. Nella prova orale veranno
discussi i vari argomenti del corso nonché gli svolgimenti della
prova scritta.
Prenotazione
Esame