(Per il programma dettagliato e l'ordine corretto di presentazione degli argomenti consultare la sezione lezioni ed esercitazioni dell'anno in corso)
Il corso intende fornire le conoscenze di base relative alla programmazione C con chiamate di sistema Unix/POSIX. In particolare, vengono prese in considerazione le chiamate standard per il trattamento di file e directory, processi, thread, segnali, pipe, socket e vari meccanismi di sincronizzazione.
Prerequisiti:
Una buona conoscenza di C
Argomenti Trattati
C e la programmazione di sistema
I file
concetti base dei FS Unix
operazioni di base (open, read, write, close, lseek)
differenza tra chiamate di libreria e system call (write vs fwrite)
link: concetti e system call per la gestione
manipolare e accedere alle informazioni sui file (stat, fcntl, ioctl)
gestione delle directory (opendir,readdir,…,closedir)
duplicazione di descrittori (dup e dup2)
I processi
I thread POSIX
Maccanismi di IPC : Pipe e Socket
Pipe anonime
Cenni alle pipe con nome (FIFO)
Modello client-server
Socket per comunicazione locale (AF_UNIX)
Cenni ai socket per comunicazione in rete (AF_INET)
Segnali
Concetti generali: eventi asincroni, gestori di eventi
Ignorare, gestire, mascherare ed attendere i segnali
Gestione dei segnali con i processi e con i thread
Utilizzo di sigwait
Pattern tipici di server concorrenti