| | | corso | | | | |
Laboratorio di programmazione di sistema A
Codice: | AA012 | Crediti: | 6 | Semestre: | 2 | Sigla: | LPs | |
|
Settore disciplinare: | INF/01 - Informatica |
Docente
Salvatore Ruggieri
Tel. 0502212782Prerequisiti
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