Anno Accademico 2007/2008
- Docente: Alessandro Ricci
- Crediti formativi: 6
- SSD: ING-INF/05
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Cesena
- Corso: Laurea in Ingegneria elettronica e delle telecomunicazioni (cod. 0649)
Conoscenze e abilità da conseguire
Il corso di Sistemi Operativi LA fornisce un'introduzione agli
aspetti fondamentali che concernono i sistemi operativi (S.O.)
moderni, dall'architettura al loro funzionamento, programmazione e
utilizzo, bilanciando teoria e pratica.
Allo scopo, i contenuti teorici del corso vengono da un lato
esemplificati prendendo come riferimento i sistemi operativi
moderni per PC più diffusi - sistemi Unix / Linux-based, famiglia
Windows (2000/XP) e Mac OS X -, dall'altro sperimentati in pratica
mediante il sistema operativo MINIX, S.O. 'accademico'
compatibile-Unix, minimale, open-source, adottato da tempo in varie
Università del mondo come mezzo efficace per toccar con mano e
sperimentare l'implementazione concreta di un sistema operativo
moderno.
Dal punto di vista della programmazione, il corso introduce il
linguaggio C come linguaggio di riferimento per la programmazione
di sistema e l'implementazione dei sistemi operativi, a partire dal
sistema operativo MINIX stesso.
Oltre alla descrizione di aspetti tradizionali di sistemi
operativi, il corso fornisce infine principi introduttivi relativi
alla programmazione concorrente, multithreaded in particolare,
utilizzando Java come linguaggio di programmazione di riferimento
per la pratica.
Contenuti
Il corso è suddiviso nelle seguenti parti:
* Concetti introduttivi
- principali funzioni di un sistema operativo
- struttura dei sistemi operativi moderni
* Gestione dei processi
- scheduling dei processi
- interazioni fra processi
- sincronizzazione fra processi
- programmazione concorrenti e multi-threading
* Gestione della memoria
- aspetti generali
- tecniche di gestione della memoria
- memoria virtuale
* Gestione dell'I/O
- organizzazione del sottosistema di I/O
- gestione dei dispositivi di I/O
- gestione e organizzazione dei dischi
* Gestione del File System
- organizzazione del file systemù
- struttura logica del file system
- accesso al file system
- organizzazione fisica
* Protezione e sicurezza
- domini e matrice degli accessi
Per la parte pratica:
* Programmazione di sistema
- linguaggio C
- shell comandi UNIX e file comandi
* Progettazione e implementazione di un sistema operativo:
MINIX
- architettura del kernel e analisi dell'implementazione di alcune
parti fondamentali
- estensione di parti e ricompilazione del kernel
* Introduzione alla programmazione concorrente
- programmazione multithreaded in Java
Testi/Bibliografia
Il testo di riferimento del corso per la parte di teoria è:
"Sistemi Operativi" (Ancillotti, Boari, Ciampolini, Lipari),
McGraw-Hill, 2004
Per la parte pratica:
"Operating Systems - Design and Implementation"
(Tanenmaum,Woodhull), Prentice-Hall, 2006
Metodi didattici
Il corso si sviluppa in sei ore settimanali, quattro di teoria e due di pratica.
Modalità di verifica e valutazione dell'apprendimento
L'esame finale prevede due parti:
1) uno scritto, con domande aperte ed esercizi di analisi
2) una prova pratica, che concerne lo sviluppo di un insieme di
programmi, da svolgere a casa
I programmi possono essere consegnati durante il corso - per chi
frequenta -, oppure essere assegnati, svolti e consegnati nella
settimana successiva alla prova scritta.
Come peso sul voto finale, all'incirca:
- 50% scritto
- 50% pratica
Strumenti a supporto della didattica
Durante le lezioni verranno proiettati lucidi, disponibili in
formato PDF sul sito ufficiale del corso.
A supporto delle attività pratiche, verrà utilizzato il laboratorio
di informatica di base ove gli studenti troveranno gli strumenti
necessari per svolgere le esercitazioni.
Tutto il materiale è disponibile sul sito di riferimento del corso:
http://corsi.ing2.unibo.it/SISOP0708
Link ad altre eventuali informazioni
http://corsi.ing2.unibo.it/SISOP0708
Orario di ricevimento
Consulta il sito web di Alessandro Ricci