====== Sommario lezioni ed esercitazioni ====== ---- **"valgrind: the 'impossible' happened: Killed by fatal signal"** ---- ^ Numero ^ Descrizione ^ Materiale ^ Commenti ^ Data ^ | 1 |** Introduzione al corso **\\ **Lezione/Esercitazione**: Compilazione con gcc: flags di base. Uso del C99 vs Ansi C. Richiami di C (stringhe, //argc//, //argv//, allocazione dinamica della memoria). Preprocessore. | {{:informatica:sol:laboratorio15:esercitazionia:variadicargs.pdf| Funzioni con argomenti variabili.}}\\ {{:informatica:sol:laboratorio15:esercitazionia:gestioneMemoriaC.pdf| Gestione della memoria in C}} \\ {{:informatica:sol:laboratorio15:esercitazionia:argcargv.pdf| Argc Argv}} \\ {{:informatica:sol:laboratorio15:esercitazionia:c004preprocessore.pdf| Preprocessore}}\\ [[esercitazione1|Assegnamento1]] {{|Possibile soluzione.}} | | 18/02/19 |\\ | 2 |**Lezione**. Richiami di C (puntatori a funzioni, struct/union, classi di memorizzazione). Debugging di programming C con gdb (esempi di uso di gdb con i comandi principali). Esecuzione con valgrind. | {{:informatica:sol:laboratorio15:esercitazionib:c001puntatoriestringhe.pdf| Puntatori e stringhe}} \\ {{:informatica:sol:laboratorio17:esercitazionib:c003punfunzegenerico.pdf| Puntatori a funzione e 'void*'}}\\ {{:informatica:sol:laboratorio15:esercitazionia:structandunion.pdf| Strutture e Union}} | {{:informatica:sol:laboratorio:esercitazioni:c-refcard.pdf| Pieghevole comandi C}}\\ [[http://sourceware.org/gdb/current/onlinedocs/gdb.pdf.gz|GDB User Manual (gziped)]] \\ {{:informatica:sol:laboratorio:esercitazioni:gdbcheatsheet.pdf| Pieghevole comandi GDB}} \\ {{:informatica:sol:laboratorio15:esercitazionia:emacs-refcard.pdf| Pieghevole comandi Emacs}} | 18/02/19 |\\ | 3 |**Esercitazione**. Uso dei manuali in linea. Funzioni rientranti. Tokenizzazione di stringhe e generazione di numeri pseudo casuali. | [[esercitazione2|Assegnamento2]] \\ {{|Possibile soluzione.}} \\ |{{:informatica:sol:laboratorio18:esercitazionib:gdb_valgrind.pdf| Note gdb e valgrind}}{{:informatica:sol:laboratorio19:esercitazionib:eserciziogdb.pdf| Esempio gdb}} | 26/02/19 |\\ | 4 |** Lezione **: Compilazione e linking in C. Creazione librerie statiche e dinamiche in C. Classi di memorizzazione: //static//, //extern//. Accenni a //volatile//. Introduzione alla libreria standard di IO. | {{:informatica:sol:laboratorio19:esercitazionib:c002_2prepcomplinkong.pdf| Compilazione e linking.}} \\ {{:informatica:sol:laboratorio19:esercitazionib:c002_4libreriec.pdf| Librerie statiche e dinamiche}} \\ {{:informatica:sol:laboratorio19:esercitazionib:c002_3classimemc.pdf| Classi di memorizzazione}} \\ {{:informatica:sol:laboratorio17:esercitazionib:c002libreriaio_c.pdf|Libreria di IO.}} | | 26/02/19 |\\ | 5 |**Esercitazione**. Creazione di librerie statiche e dinamiche. Utilizzo di macros. Utilizzo di static. Accesso in lettura a file testuali. | [[esercitazione3|Assegnamento3]] \\ {{|Possibile soluzione.}} \\ | | 5/03/19 |\\ | 6 |** Lezione **: Struttura a directory del FS Linux, principali directory, path assoluto e relativo. Libreria standard di I/O. Makefile: che cos'e' e come si usa. | {{:informatica:sol:laboratorio17:esercitazionib:c002libreriaio_c.pdf|Libreria di IO.}} \\ {{:informatica:sol:laboratorio16:esercitazionib:02c008makefile.pdf| Makefile}} | | 5/03/19 |\\ | 7 |**Esercitazione**. I/O testuale e binario con la libreria standard. Creazione di Makefile. | [[esercitazione4|Assegnamento4]] \\ {{|Possibile soluzione.}} \\ | | 12/03/19 |\\ | 8 |** Lezione **: Introduzione alla shell bash: concetto di shell, alcuni semplici comandi (cut, cat, find, chmod, etc...). Creazione dei primi script in bash| {{:informatica:sol:laboratorio17:esercitazionib:shell_intro.pdf| Introduzione alla Shell}}\\ | [[ http://www.gnu.org/software/bash/manual/bash.html|Bash reference manual]]\\ [[http://www.tldp.org/LDP/Bash-Beginners-Guide/html/index.html | Bash guide for Beginners]] \\ [[https://linuxacademy.com/blog/linux/conditions-in-bash-scripting-if-statements/|If statements in bash scripting]] | 12/03/19 |\\ | 8 |**Esercitazione**. Makefile. Comandi bash e semplici script. | [[esercitazione5|Assegnamento5]] \\ {{|Possibile soluzione.}} \\ | | 19/03/19 |\\ | 9 |**Lezione**. Bash script. | {{:informatica:sol:laboratorio17:esercitazionib:shell_scripting.pdf| Scripting in bash}} | | 19/03/19 |\\ | 10 |**Esercitazione**. Semplici script bash. | [[esercitazione6|Assegnamento6]] \\ {{|Possibile soluzione.}} \\ | | 26/03/19 |\\ | 11 |**Lezione**. Completamento bash + discussione pre compitino. | | | 26/03/19 |\\ | 12 |**Esercitazione**. Discussione su compitino parte di laboratorio. Esercizi su SC per la gestione di files e directories. |[[esercitazione7|Assegnamento7]] \\ {{|Possibile soluzione.}} | | 09/04/19 |\\ | 13 |** Lezione **: SC per la gestione delle directories. Processi: fork, wait/waitpid e differenziazione del codice con exec*. | {{:informatica:sol:laboratorio19:esercitazionib:c004_1lso_scintroefiles.pdf|Lucidi System call}} \\ {{:informatica:sol:laboratorio15:esercitazionib:07lcs_processi.pdf|Introduzione processi}} | | 09/04/19 |\\ | 14 |**Esercitazione**. Esercizi con fork/waitpid/exec. |[[esercitazione8|Assegnamento8]] \\ {{|Possibile soluzione.}} | | 16/04/19 |\\ | 15 |**Lezione/Esercitazione**. Gestione dei threads:creazione/distruzione, mutex, condition variables. Primi esercizi con i threads. |{{ :informatica:sol:laboratorio18:esercitazionib:c005_1lcs_threadposix.pdf |Gestione Thread.}}\\ [[esercitazione9|Assegnamento9]] \\ {{|Possibile soluzione.}} | | 30/04/19 |\\ | 16 |** Lezione **: Comunicazione tra processi: pipe senza nome. | {{informatica:sol:laboratorio15:esercitazionib:09lcs_pipe.pdf|Pipe}} | [[SCExamples| Alcuni esempi con processi e pipe]] | 30/04/19 |\\ | 17 |**Esercitazione**. Esercizi con processi, pipe e threads. | [[esercitazione10|Assegnamento10]] \\ {{|Possibile soluzione.}} | | 07/05/19 |\\ | 18 |** Lezione **: Comunicazione tra processi: socket AF_UNIX. Multiplexing di piĆ¹ sockets con ''select'' (accenni a ''pool''). | {{:informatica:sol:laboratorio15:esercitazionib:10lcs_sockets.pdf|Socket}}| | 07/05/19 |\\ | 19 |**Esercitazione**. Esercizi con i socket. Server concorrenti. |[[esercitazione11|Assegnamento11]] \\ {{|Possibile soluzione.}} | | 14/05/19 |\\ | 20 |** Lezione **: Gestione dei segnali. | {{:informatica:sol:laboratorio15:esercitazionib:11lcs_segnali.pdf|Segnali}} | | 14/05/19 |\\ | 21 |**Esercitazione**. Esercizi su segnali e ''select''. |[[esercitazione12|Assegnamento12]] \\ {{|Possibile soluzione.}} | | 21/05/19 |\\ | 22 |** Lezione **: Ancora su segnali e server concorrenti: discussione. | | | 21/05/19 |\\ | 23 |**Esercitazione**. |[[esercitazione13|Assegnamento13]] \\ {{|Sketch di soluzione.}} | | 28/05/19 |\\ | 24 |** Lezione **: Question time, discussione libera su argomenti principali del corso. Discussione del progetto. | | | 28/05/19 |\\