Sistemi operativi A - (5 cfu)

Prof. Alberto Broggi Tel. 0521.905707 - Fax. 0521.905723
  E-mail. broggi@ce.unipr.it
  Home page. http://www.ce.unipr.it/broggi/


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 ad alcune versioni attuali (Solaris 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. Primitive per la gestione dei file e dell'I/O.
L'immagine in memoria di un processo UNIX. 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 server 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 programmazione di sistema in UNIX.
Una prova scritta composta di un esercizio sulla interazione tra processi UNIX e da 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.


Ultimo aggiornamento: 24-06-2002


Stampa il programma - Torna alla pagina precedente