17926 - SISTEMI OPERATIVI L-A

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