elenco    
        corso    

Laboratorio di programmazione di sistema A

Codice: AA012Crediti: 6Semestre: 2Sigla: LPs 
 
Settore disciplinare: INF/01 - Informatica

Docente

Salvatore Ruggieri   ruggieri@di.unipi.it  Stanza 321  Tel. 0502212782

Prerequisiti

Laboratorio di programmazione concorrente

Obiettivi di apprendimento

Il corso intende fornire le conoscenze di base relative alla programmazione con chiamate di sistema Unix/POSIX. In particolare, vengono prese in considerazione le chiamate standard per il trattamento di file e directory, processi, segnali e pipe.

Descrizione

Il corso affronta la problematica della programmazione di sistema via system calls, in ambiente Unix/POSIX. Vengono presentate le chiamate di sistema relative a file, directory, processi, segnali e pipe. Tutta l'attività di laboratorio è svolta in ambiente Linux e il linguaggio di programmazione usato per gli esercizi è ANSI C (una breve introduzione al linguaggio C è prevista all'inizio del corso). Alla fine del corso viene assegnato un progetto da svolgere a gruppi che rappresenta il test di fine corso.

English Description

The aim is to introduce the student to the system programming via system calls, for a Unix/POSIX system. Particular attention will be devoted to the system calls for files, directories, processes, pipes and signals. The whole activity of the laboratory is done with Linux systems and the programming language will be ANSI C.

Programma

a.. Il linguaggio C (10 ore)
a.. Tipi, puntatori, strutture di controllo, il preprocessore C
b.. Differenze tra C e Java
c.. Supporti allo sviluppo del software:
a.. un debugger per C: gdb
b.. l'utility unix make
b.. Introduzione alla shell. Funzionalità dell'interprete di tcsh (4 ore)
c.. Programmazione di sistema in Unix (26 ore)
a.. gestione file (open, read, write, close, dup, stat, seek)
b.. gestione directory (opendir, readdir, closedir)
c.. gestione processi (fork, exec, wait, exit, chiamate per pid/gruppi)
d.. gestione interruzioni (sigaction, kill, alarm, pause)
e.. gestione pipe (pipe, mknod)
     

Bibliografia

a.. G. Glass, K. Ables. UNIX for Programmers and Users. Prentice Hall,
1999.
b.. A. Kelley, I. Pohl. C: didattica e programmazione. Addison-Wesley,
1996.
c.. S. Ruggieri, A. Sperduti. Programmazione di sistema in linguaggio C:
esempi ed esercizi. Dispensa, Servizio Editoriale Universitario di Pisa,
2001.
d.. F. Scozzari. Introduzione al C (passando per Java). Dispensa, Servizio
Editoriale Universitario di Pisa, 2001.
e.. D.P. Bovet, M. Cesati. Understanding the Linux Kernel. ÒReilly, 2001.
(Solo per consultazione).

Modalità di esame

Scritto e orale

Ulteriore pagina web del corso: http://www.di.unipi.it/~ruggieri/didattica/lps/


home


email