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 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 sulla parte di teoria (Parte I).
Una prova scritta composta da esercizi UNIX.

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


Ultimo aggiornamento: 26-07-2006


Chiudi la finestra