| | | corso | | | | |
Laboratorio di programmazione di sistema B
Codice: | AA012 | Crediti: | 6 | Semestre: | 2 | Sigla: | LPs | |
|
Settore disciplinare: | INF/01 - Informatica |
Docente
Vincenzo Gervasi
Tel. 0502212773Prerequisiti
Laboratorio di programamzione 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
- Il linguaggio C (10 ore)
- Tipi, puntatori, strutture di controllo, il preprocessore C
- Differenze tra C e Java
- Supporti allo sviluppo del software:
- un debugger per C: gdb
- l'utility unix make
- Introduzione alla shell.
Funzionalità dell'interprete di tcsh (4 ore)
- Programmazione di sistema in Unix (26 ore)
- gestione file (open, read, write, close, dup, stat, seek)
- gestione directory (opendir, readdir, closedir)
- gestione processi (fork, exec, wait, exit, chiamate per
pid/gruppi)
- gestione interruzioni (sigaction, kill, alarm, pause)
- gestione pipe (pipe, mknod)
Bibliografia
- G. Glass, K. Ables. UNIX for Programmers and Users. Prentice
Hall, 1999.
- A. Kelley, I. Pohl. C: didattica e programmazione.
Addison-Wesley, 1996.
- S. Ruggieri, A. Sperduti. Programmazione di sistema in
linguaggio C: esempi ed esercizi. Dispensa, Servizio Editoriale
Universitario di Pisa, 2001.
- F. Scozzari. Introduzione al C (passando per Java). Dispensa,
Servizio Editoriale Universitario di Pisa, 2001.
- D.P. Bovet, M. Cesati. Understanding the Linux
Kernel. ÒReilly, 2001. (Solo per consultazione).
Modalità di esame
Scritto e orale