Dispense lezioni (in Italian)
- Introduzione corso (pdf)
- Calendario
- Modalità esame
- Introduzione al linguaggio C (pdf)
- Confronto con Java
- Preprocessore
- Tipi di dati
- Istruzioni e operatori
- Funzioni
- File
- Puntatori
- Memoria dinamica
- Librerie
- Compilazione
- Debugging
- Esempi
- Esercizi C (esercizi;
soluzioni)
- Introduzione alla bash (pdf)
- Introduzione
- I comandi di base
- I comandi per il file
system
- I comandi per i processi
- La programmazione della
shell
- Esempi
- Esercizi bash (esercizi;
soluzioni)
- Programmazione di sistema (pdf)
- Introduzione
- System
call per il file system
- Apertura e chiusura di
canali
- Scrittura, lettura e
riposizionamento
- Gestione delle
directory
- Gestione dei link
- Privilegi e accessi
- Stato di un file
- Controllo dei
dispositivi
- Esempi
- Esercizi gestione file
e directory (esercizi;
soluzioni)
- System call per la gestione dei processi
- Creazione di processi
- Esecuzione di
programmi
- Sincronizzazione tra
padre e figli
- Informazioni sui
processi
- Segnalazione tra
processi
- Allarmi e sospensione
- Esempi
- Esercizi gestione dei
processi (esercizi;
soluzioni)
- System call per la comunicazione tra processi
- System call per lo scambio di messaggi
- Caratteristiche comuni
ad altre primitive di IPC
- Creazione coda
- Controllo della coda
- Invio e ricezione di
messaggi
- Esempi
- Esercizi code di
messaggi (esercizi;
soluzioni)
- System call per gestione della memoria condivisa
- Creazione di aree di
memoria condivisa
- Controllo della
memoria condivisa
- Esempi
- System call per la sincronizzazione tramite semafori
- Creazione di semafori
- Operazioni sui
semafori
- Esercizi memoria condivisa
e semafori (esercizi;
soluzioni)
- Programmazione multithread (pdf)
- Creazione e
terminazione di thread
- Sincronizzazione tra thread
- Esercizi thread (esercizi;
soluzioni)
Useful documentation (in English)