SISTEMI OPERATIVI A
cod. 13120

Anno accademico 2009/10
2° anno di corso - Secondo semestre
Docente
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Ingegneria informatica
Tipologia attività formativa
Caratterizzante
45 ore
di attività frontali
5 crediti
sede:
insegnamento
in - - -

Obiettivi formativi

<br />Il modulo presenta i principali strumenti metodologici per l'analisi del software di sistema, con particolare riferimento al S.O. UNIX.<br />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.

Prerequisiti

<br /><br />Fondamenti di Informatica A (consigliata)

Contenuti dell'insegnamento

<br />Parte I<br />Introduzione ai sistemi operativi. Sistemi batch, time-sharing, spooling. <br />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. <br />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. <br /> <br />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. <br />Il modello di interazione a scambio di messaggi e le primitive send/receive.<br />Algoritmi di scheduling della CPU. <br /> <br />Parte II<br /> <br />Introduzione a UNIX e Linux.<br />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. <br /> <br />Organizzazione fisica del file system. L'immagine in memoria di un processo UNIX. Sviluppo di programmi in UNIX/LINUX.<br />Primitive per la gestione dei file e dell'I/O.<br />Primitive per la gestione dei processi. Creazione, esecuzione e terminazione.<br />Sincronizzazione e comunicazione tra processi: segnali, pipe/fifo e socket.<br /> 

Programma esteso

- - -

Bibliografia

<br />A. Silbershatz, P. Galvin, G. Gagne, 'Sistemi Operativi ¿ Concetti ed esempi,' settima ed. 2006, Pearson Education Italia<br />http://gapil.firenze.linux.it/index.html Guida alla Programmazione in Linux (© Simone Piccardi)

Metodi didattici

<br />Modalita' di insegnamento <br />Lezioni in aula<br />Esercitazioni su PC Linux presso il Laboratorio Informatica di base.<br />Esercizi su comandi e shell. Esercizi <br />Modalita' di valutazione<br />Una prova scritta sulla parte di teoria (Parte I).<br />Una prova pratica al calcolatore costituita da un esercizio sulla interazione tra processi UNIX.<br />

Modalità verifica apprendimento

- - -

Altre informazioni

- - -