Laboratorio di Sistemi Operativi II

Tecnologie Informatiche

Anno Accademico 2006-2007

Docente: Massimo Bernaschi (massimo@iac.cnr.it)

Ricevimento studenti: martedì/giovedì 10.30 c/o IAC (durante il corso) oppure previo appuntamento

Mailing list: sistemioperativi@di.uniroma1.it


Descrizione del corso

Il corso ha l'obiettivo di far apprendere, principalmente per mezzo di sperimentazione in laboratorio, alcuni concetti fondamentali della programmazione di sistema, con particolare riferimento alle problematiche legate allo sviluppo di applicazioni parallele e/o multi-threaded.

Programma

  • Introduzione
    • Scopo del Corso, Administratrivia, Modalità di Esame
    • Errori comuni nella programmazione C e di sistema
  • Thread
    • Processi vs. Thread
    • Thread Libraries
    • pthread vs. kthread
    • Primitive su thread
    • Mutua Esclusione
    • Performance
  • Inter Process Communication
    • Pipe, Named Pipe, Segnali
    • Problemi legati alla gestione dei segnali in applicazioni multithreaded
    • Memoria Condivisa
    • Semafori
    • Message Queue
    • Confronto fra meccanismi IPC
  • Sockets
    • Introduzione, Socket Types & Domains
    • Chiamate di sistema
    • Strutture dati
    • Endiannes
  • Alcuni modi di usare i thread/processi
    • Pipeline.
    • Work crew.
    • Client/server

Testo di riferimento

Trattandosi di un corso di laboratorio, non dovrebbe essere necessario il ricorso ad uno specifico libro di testo. In generale il materiale reperibile su questa pagine o direttamente su internet, unito alla documentazione ed alle man pages del sistema operativo, sono sufficienti per lo svolgimento del progetto. Si può fare riferimento ai libri di testo consigliati per l'esame di Sistemi Operativi II

Altri testi consigliati

  • David R. Butenhof, Programming with POSIX(R) Threads . Addison-Wesley 1997

  • Kay A. Robbins and Steven Robbins, Unix Systems Programming: Communication, Concurrency, and Threads . Prentice Hall, 2003.

Un ottimo testo, anche se un pò datato è

  • Uresh Vahalia, Unix Internals, The new Frontier. Prentice Hall 1995

Tutorials

Tutorial sulla Programmazione di Sistema

Socket Communication

Modalità d'esame

Per poter sostenere l'esame di Laboratorio di Sistemi Operativi II è necessario consegnare il progetto 2006-2007 e la relazione entro la scadenza fissata per ogni appello (in genere qualche giorno prima dell'appello stesso). Il progetto e' un lavoro individuale ed originale . Non e' quindi possibile condividere parti di codice o relazione con altri studenti, o copiare parte del progetto da altre fonti. Discussioni tra studenti, scambi di idee ed in genere tutto ciò che vi aiuta ad apprendere è invece legittimo ed apprezzato. Se avete dei dubbi riguardo a quali forme di collaborazione sono considerate legittime, chiedete liberamente. Fate attenzione: effettuerò una verifica utilizzando un tool automatico, ed i casi di copiatura saranno sanzionati.

E' anche possibile superare il corso consegnando il progettone , coordinato con il corso di Sistemi Operativi II di Massimo Bernaschi. Il progettone, una volta discusso in sede d'esame con esito positivo, fa conseguire allo studente il superamento di entrambi gli esami. Trattandosi di un lavoro sicuramente più complesso, da sviluppare sia in ambiente Unix che Windows, per il progettone è possibile lavorare anche in gruppi di (massimo) due persone. Ovviamente verrà opportunamente valutato il lavoro individuale.

Per l'iscrizione alle sessioni di esame di LSOII, contattare Massimo Bernaschi (massimo@iac.cnr.it).

In generale, prima di presentarsi all'appello, si consiglia di verificare lo stato del progetto (o del progettone), tramite un incontro da concordarsi tramite email.

Domande ricorrenti

TBD
Edit | Attach | Watch | Print version | History: r52 < r51 < r50 < r49 < r48 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r52 - 2006-12-18 - MassimoBernaschi






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback