( english version )
Sistemi operativi A ( 5 CFU )
Prof. Francesco Zanichelli
     Tel. 0521 905710 - Fax. 0521 905723           E-mail. francesco.zanichelli@unipr.it           Home page. http://www.ce.unipr.it/~mczane

Finalità
Il modulo presenta i principali strumenti metodologici per l'analisi del software di sistema, con particolare riferimento al S.O. UNIX.
Nella prima parte viene introdotto il modello a processi di un S.O., unitamente alla gestione delle risorse hardware di sistema. Nella seconda parte vengono illustrate le principali caratteristiche di UNIX sia come visione utente che come programmazione di sistema.

Programma
Parte I

Introduzione ai sistemi operativi. Sistemi batch, time-sharing, spooling.
Parallelizzazione di elaborazione e I/O. Il sistema di interruzione: interruzione da dispositivo e da timer. Gestione delle interruzioni. Modello di un semplice sistema operativo e tecniche di incremento delle prestazioni.
Multiprogrammazione e modello a processi. Sistema di protezione. Modi di funzionamento della CPU. Chiamate di sistema. Gestione dell'I/O. Struttura a livelli del sistema operativo.

Concetto di processo. Stato del processo. Descrittore del processo. Processi concorrenti. Modello di interazione a memoria condivisa. Mutua esclusione e sezioni critiche. Semafori e primitive di sincronizzazione. Cooperazione e competizione tra processi mediante semafori.
Il modello di interazione a scambio di messaggi e le primitive send/receive.
Algoritmi di scheduling della CPU.

Parte II

Introduzione a UNIX e Linux.
Struttura del file system di UNIX. Diritti e meccanismi di protezione. Principali comandi di sistema. Redirezione e piping di comandi. Interpreti comandi. Modalità di esecuzione foreground/background.

Organizzazione fisica del file system. L'immagine in memoria di un processo UNIX. Sviluppo di programmi in UNIX/LINUX.
Primitive per la gestione dei file e dell'I/O.
Primitive per la gestione dei processi. Creazione, esecuzione e terminazione.
Sincronizzazione e comunicazione tra processi: segnali, pipe/fifo e socket.

Attività d'esercitazione
Esercitazioni su PC Linux presso il Laboratorio Informatica di base.
Esercizi su comandi e shell. Esercizi sulla interazione di processi UNIX.

Modalità d'esame
Una prova intermedia sulla parte di teoria (Parte I).
Una prova scritta composta da due esercizi sulla interazione tra processi UNIX e da alcune domande di teoria.

Propedeuticità
Fondamenti di Informatica A (consigliata)

Testi consigliati
Come testo generale sui sistemi operativi
W. Stallings, "Sistemi Operativi", Jackson Libri, 2000

Per la programmazione di sistema in UNIX:
K. Wall, M. Watson, M. Whitis, "Programmare in Linux – Tutto & Oltre", Apogeo, 2000

Testi d'approfondimento
W.R. Stevens, "Advanced Programming in the UNIX Environment," Addison-Wesley, 1993
 
stampa il programma ~ torna indietro