Sommario lezioni ed esercitazioni


“valgrind: the 'impossible' happened: Killed by fatal signal”


Numero Descrizione Materiale Altro Data
1 Introduzione al corso
Lezione/Esercitazione: Compilazione con gcc: descrizione di alcuni parametri tipici (-g -c -o -I -O). Uso del C99 vs Ansi C. Richiami di C (stringhe, argc, argv, allocazione dinamica della memoria).
Compilazione con gcc.
Funzioni con argomenti variabili.
Gestione della memoria in C
Argc Argv
Assegnamento1 Possibile soluzione.
C standards in GCC 18/02/20
2 Lezione. Richiami di C (puntatori a funzioni, struct/union). Preprocessore. Puntatori e stringhe
Puntatori a funzione e 'void*'
Strutture e Union
Preprocessore
Pieghevole comandi C
GDB User Manual (gziped)
Pieghevole comandi GDB
Pieghevole comandi Emacs
18/02/20
3 Esercitazione. Funzioni rientranti. Tokenizzazione di stringhe e generazione di numeri pseudo casuali. Funzioni rientranti.
Assegnamento2
Possibile soluzione.
Note gdb e valgrind Esempio gdb 25/02/20
4 Lezione : Compilazione e linking in C. Creazione di librerie statiche e dinamiche. Classi di memorizzazione: static, extern. Compilazione e linking.
Librerie statiche e dinamiche
Classi di memorizzazione
25/02/20
5 Esercitazione. Creazione di librerie statiche (.a) e dinamiche (.so). Utilizzo di macros. Utilizzo di static. Assegnamento3
Possibile soluzione.
3/03/20
6 Lezione : Struttura a directory del FS Linux/Unix, principali directory, path assoluto e relativo. Utilizzo di gdb e valgrind. Libreria standard di I/O. Gerarchia di directory.
Libreria di IO.
CorsoB: vedere anche il video LibreriaIO.mp4 3/03/20
7 Esercitazione. I/O testuale e binario con la libreria standard. Assegnamento4
Possibile soluzione.
CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
8 Lezione : Utilizzo di make e sintassi del makefile/Makefile. Introduzione alla shell bash: concetto di shell, alcuni semplici comandi (cut, cat, find, chmod, etc…). Creazione di semplici script in bash Makefile
Introduzione alla Shell
Bash reference manual
Bash guide for Beginners
CorsoB: vedere videolezioni Makefile{1,2}.mp4 e BashIntro{1,2}.mp4
9 Esercitazione. Makefile e comandi bash. Assegnamento5
Possibile soluzione.
CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
10 Lezione. Script in bash. Scripting in bash If statements in bash scripting CorsoB: vedere videolezioni ScriptBash{1,2,3}.mp4
11 Esercitazione. Scripts in bash. Assegnamento6
Possibile soluzione.
CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
12 Lezione : Chiamate di sistema per la gestione di files e directories. SCs per I/O CorsoB: vedere videolezione SystemCallIO.mp4
13 Esercitazione. Esercizi su SC per la gestione di files e directories. Assegnamento7
Possibile soluzione.
CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
14 Lezione : Processi: fork, wait/waitpid e differenziazione del codice con exec*. Processi CorsoB: vedere videolezione SystemCallProcessi.mp4
15 Esercitazione. Esercizi con fork/waitpid/exec. Assegnamento8
Possibile soluzione.
CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
16 Lezione. Gestione dei threads POSIX: creazione/distruzione, mutex, condition variables, gestione terminazione. PThreads. CorsoB: vedere videolezione PThreads.mp4
17 Esercitazione. Esercizi con processi e threads. Assegnamento9
Possibile soluzione.
CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
18 Lezione : Comunicazione tra processi: pipe senza nome. Pipe Alcuni esempi con processi e pipe
Esempio di protocollo client/server con named pipe
CorsoB: vedere videolezione UnnamedPipe.mp4
19 Esercitazione. Esercizi con processi, pipe e threads. Assegnamento10
Possibile soluzione.
CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
20 Lezione : Comunicazione tra processi: socket AF_UNIX. Multiplexing di più sockets con select (accenni a poll). Socket CorsoB: vedere videolezione SocketAF_UNIX.mp4
21 Esercitazione. Esercizi con socket. Comunicazioni client-server ed uso della select. Assegnamento11
Possibile soluzione.
CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
22 Lezione : Gestione dei segnali. Discussione sull'uso di “readn” e “writen”. Segnali Nota su "partial read/write" (aka "short read/write") Implementazione di readn e writen (by R. Stevens et al.) CorsoB: vedere videolezione Segnali.mp4
23 Esercitazione. Esercizi con gestione dei segnali con signal-handler e con sigwait. Assegnamento12
Possibile soluzione.
CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
24 Lezione . Pattern di implementazione di server concorrenti. Note su server concorrenti CorsoB: vedere videolezione NoteServerMultiThreaded.mp4
25 Esercitazione. Esercizi con thread e segnali, e schemi di implementazione di server concorrenti. Assegnamento13 CorsoB: vedere il video con il commento degli esercizi sul gruppo Telegram.
26 Esercitazione. Question time sugli argomenti del corso.