Home Page

 

Corso di Laboratorio di Sistemi Operativi A.A. 2006/2007

 

Obiettivo
Il corso ha l'obiettivo di fornire allo studente di Sistemi Operativi strumenti pratici per giungere ad una migliore comprensione del materiale proposto in tale corso, in particolare per quanto riguarda l'utilizzo da programmatore del sistema UNIX, e la programmazione concorrente.

 

Metodo
Le lezioni del corso sono costituite in prevalenza da esercitazioni guidate dal docente sui sistemi di calcolo dei Laboratori (Sistema Operativo UNIX e sue varianti, e sue principali applicazioni).

 

Docenti

 

Programma del corso
1.

Il sistema Operativo UNIX: struttura, interfaccia utente, varianti (Solaris, Linux).
La shell UNIX:

  • ruolo e varianti,
  • procedura di login,
  • organizzazione del file system,
  • manuale online,
  • la shell bash: espansione del pathname, ridirezione del I/O, pipe, job in background, il comando history, editing della linea di comando, completamento di comandi,
  • gli editor vi e (X)Emacs,
  • il comando make.

Comandi principali della shell:

  • gestione di file,
  • gestione di processi,
  • monitoraggio della memoria,
  • comandi filtro: ricerca, ordinamento, editing.
Shell script:
  • variabili,
  • passaggio dei parametri,
  • strutture di controllo,
  • login script.

2. Basi di Linguaggio C.
 
3. Programmazione di sistema:
  • controllo di processi,
  • file system,
  • comunicazione tra processi,
  • threads e multithreading.

 

Bibliografia
1. G. Glass, K. Ables, "UNIX for Programmers and Users", Prentice Hall, 2a edizione, 1999.
2. P. Cornes, "The Linux A-Z", Prentice Hall, 1997.
3. B.W. Kernighan, D.M. Ritchie, "Linguaggio C", Jackson, 2a edizione, 1989.
4. K. Haviland, D. Gray, B. Salama, "UNIX System Programming", Addison Wesley, 2a edizione, 1999.

 

Lucidi delle lezioni (formato PDF)

 

Modalità di superamento del Corso di Laboratorio

Si ricorda che per superare il corso di laboratorio è necessario svolgere i tre progetti assegnati durante le lezioni. I progetti possono essere discussi sia durante queste ultime che fissando un appuntamento con i docenti del corso (inviando i sorgenti opportunamente commentati tramite e-mail). La votazione riportata per ogni progetto sarà espressa in trentesimi. Alla fine la media dei tre voti costituirà il voto finale del corso di laboratorio e concorrerà alla formulazione del voto dell'esame di Sistemi Operativi. Si consiglia di svolgere i progetti in gruppi di due o tre persone (i gruppi non devono necessariamente essere gli stessi per ogni progetto).

Progetto I (la shell UNIX)
Progetto II (Il C e le chiamate di sistema)
Progetto III (Programmazione concorrente)