====== Sommario lezioni ed esercitazioni (Corso A) ====== **"valgrind: the 'impossible' happened: Killed by fatal signal"** A questo [[ http://unimap.unipi.it/registri/dettregistriNEW.php?re=171272::::&ri=050214 | link]] il registro ufficiale delle lezioni. ---- ^ Numero ^ Descrizione ^ Materiale ^ Commenti ^ Data ^ | 1 |** Introduzione al corso **\\ **Esercitazione**: Editor ''emacs'' e cenni a ''vi''. Compilazione con gcc: flags di base. Uso del C99. Uso dei manuali in linea. Debugging con gdb di un semplice programma.| {{:informatica:sol:laboratorio16:esercitazionia:01lso2016_corsoa_intro.pdf | Lucidi Introduttivi}}\\ [[esercitazione1|Assegnamento1]] | {{:informatica:sol:laboratorio:esercitazioni:c-refcard.pdf| Pieghevole comandi C}}\\ {{:informatica:sol:laboratorio:esercitazioni:gdbcheatsheet.pdf| Pieghevole comandi GDB}} \\ {{:informatica:sol:laboratorio15:esercitazionia:emacs-refcard.pdf| Pieghevole comandi Emacs}} | 24/02/16 |\\ | 2 |**Lezione**. Richiami di C (stringhe, argc, argv, allocazione dinamica della memoria, puntatori a funzioni, funzioni con argomenti variabili, struct/union). Libreria standard di IO. | {{:informatica:sol:laboratorio15:esercitazionib:c002libreriaio_c.pdf|Libreria di IO.}}\\ {{:informatica:sol:laboratorio15:esercitazionib:c001puntatoriestringhe.pdf| Puntatori e stringhe}} \\ {{:informatica:sol:laboratorio15:esercitazionib:c003punfunzegenerico.pdf| Puntatori a funzione e 'void*'}} \\ {{:informatica:sol:laboratorio15:esercitazionia:gestioneMemoriaC.pdf| Gestione della memoria in C}} \\ {{:informatica:sol:laboratorio15:esercitazionia:variadicargs.pdf| Funzioni con argomenti variabili.}} |{{:informatica:sol:laboratorio15:esercitazionia:structandunion.pdf| Strutture e Union}}\\ {{:informatica:sol:laboratorio15:esercitazionia:argcargv.pdf| Argc Argv}} | 26/02/16 |\\ | 3 |** Esercitazione **: Creazione librerie statiche e dinamiche in C. Esercizi su stringhe e su I/O utilizzando la librerie standard. Valgrind. | {{:informatica:sol:laboratorio15:esercitazionia:librerieC.pdf| Librerie statiche e dinamiche}}\\ [[esercitazione2|Assegnamento2]] \\ {{| Possibile soluzione esercizi.}} | [[http://valgrind.org/docs/manual/manual.html | Valgrind user manual]]| 02/03/16 |\\ | 4 |** Lezione **: Preprocessing, compilazione e linking in C. Classi di memorizzazione: static, extern. | {{:informatica:sol:laboratorio15:esercitazionia:c004preprocessore.pdf| Preprocessore}} \\ {{:informatica:sol:laboratorio15:esercitazionib:c006prepcomplinkong.pdf| Compilazione e linking.}} \\ {{:informatica:sol:laboratorio15:esercitazionib:c007classimemc.pdf| Classi di memorizzazione}} | | 04/03/16 |\\ | 5 |** Esercitazione **: C e librerie standard di IO, manipolazione di file testuali. Macros, creazione di librerie statiche. Utilizzo di static ed extern. | [[esercitazione3|Assegnamento3]] \\ {{| Possibile soluzione esercizi.}}| [[ http://stackoverflow.com/questions/1433204/how-do-i-use-extern-to-share-variables-between-source-files-in-c | Post interessante su extern e global variable]] | 09/03/16 |\\ | 6 |** Lezione **: Makefile, introduzione a Bash | {{:informatica:sol:laboratorio16:esercitazionib:02c008makefile.pdf| Lucidi makefile}} \\ {{:informatica:sol:laboratorio16:esercitazionib:004bash.pdf| Lucidi unix e bash}} | [[ http://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/makefileexample | Esempi di Makefile]] \\ [[ 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]]| 11/03/16 |\\ | 7 |** Esercitazione **: Creare un semplice Makefile, primi esercizi su Bash. Introduzione al primo progetto. | [[esercitazione4|Assegnamento4]] \\ {{|Possibile soluzione esercizi.}}| [[ http://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/bashscriptexamples| Esempi di script Bash]] \\ Vedi il primo kit alla pagina del [[informatica:sol:laboratorio16:progetto|progetto]] | 16/03/16 |\\ | 8 |** Lezione **: Bash scripting (completamento) |{{:informatica:sol:laboratorio16:esercitazionib:004bash.pdf| Lucidi unix e bash}} | | 18/03/16 |\\ | 9 |** Esercitazione **: Script Bash. | [[esercitazione5|Assegnamento5]] \\ {{|Possibile soluzione esercizi.}} | | 23/03/16 |\\ | 10 |** Lezione+Esercitazione **: File System Unix: struttura. System Calls (SC) introduzione e gestione degli errori (errno). SCs: open,close,read,write,lseek,umask,fsync,stat,unlink. Esercizi su SC relative ai files. | {{:informatica:sol:laboratorio15:esercitazionib:06lso_scintroefiles.pdf|Lucidi System call}} \\ [[esercitazione6|Assegnamento6]] {{|Possibile soluzione esercizi.}} | [[https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard| Linux File System Hierarchy]] | 06/04/16 |\\ | 11 |** Lezione **: Maschere di bit in umask: sticky bit SUID/SGID. Chiamate di sistema e di libreria per la gestione delle directories. Introduzione ai processi: fork, wait/waitpid e differenziazione del codice con exec*. | {{:informatica:sol:laboratorio15:esercitazionib:06lso_scintroefiles.pdf|Lucidi System call}} \\ {{:informatica:sol:laboratorio15:esercitazionib:07lcs_processi.pdf|Introduzione processi}} | | 08/04/16 |\\ | 12 |** Esercitazione **: System Calls su file e directory. Processi: fork/wait/waitpid/exec, processi zombie. | [[esercitazione7|Assegnamento7]] \\ {{|Possibile soluzione esercizi.}} | | 13/04/16 |\\ | 13 |**Lezione**. Ancora su processi e differenziazione del codice con exec*. Pipe con nome e senza nome. | {{informatica:sol:laboratorio15:esercitazionib:09lcs_pipe.pdf|Pipe}} | [[SCExamples| Alcuni esempi con processi e pipe]] \\ [[FIFOExample| Client/Server named pipe]] | 15/04/16|\\ | 14 |** Esercitazione **: Creazione di processi, comunicazione tramite pipe senza nome. | [[esercitazione8|Assegnamento8]] \\ {{|Possibile soluzione esercizi.}} | | 20/04/16 |\\ | 15 |**Lezione**. POSIX Threads. | {{{{:informatica:sol:laboratorio16:esercitazionib:08lcs_threadposix.pdf| Lucidi Threads}} | | 22/04/16|\\ | 16 |** Esercitazione **: Threads e mutua esclusione. | [[esercitazione9|Assegnamento9]] \\ {{|Possibile soluzione esercizi.}} | | 27/04/16 |\\ | 17 |**Lezione**. Socket. | {{:informatica:sol:laboratorio15:esercitazionib:10lcs_sockets.pdf|Lucidi su socket}} | | 29/04/16|\\ | 18 |** Esercitazione **: Ancora su POSIX Threads. Comunicazione tra processi via Socket. | [[esercitazione10|Assegnamento10]] \\ {{|Possibile soluzione esercizi.}} | | 04/05/16 |\\ | 19 |**Lezione**. Segnali. | {{:informatica:sol:laboratorio15:esercitazionib:11lcs_segnali.pdf|Lucidi Segnali}} | LEZIONE NON TENUTA PER SCIOPERO PERSONALE NON DOCENTE | 06/05/16|\\ | 19bis |**Lezione**. Segnali. | {{:informatica:sol:laboratorio15:esercitazionib:11lcs_segnali.pdf|Lucidi Segnali}} | | 10/05/16|\\ | 20 |** Esercitazione **: Introduzione al progetto e primi esercizi sui segnali senza thread. | [[esercitazione11|Assegnamento11]] \\ {{|Possibile soluzione esercizi.}}\\ Discussione sul secondo frammento del progetto didattico | Vedi il secondo kit alla pagina del [[informatica:sol:laboratorio16:progetto|progetto]] | 11/05/16 |\\ | 21 |**Lezione**. Completamento Segnali. Commento di alcuni esercizi assegnati. | {{:informatica:sol:laboratorio15:esercitazionib:11lcs_segnali.pdf|Lucidi Segnali}} | | 13/05/16|\\ | 22 |** Esercitazione **: Threads Socket e Segnali. | [[esercitazione12|Assegnamento12]] \\ {{|Possibile soluzione esercizi.}} | | 18/05/16 |\\ | 23 |** Lezione **: Discussione su esercizi assegnati e su gli argomenti principali del corso. Discussione sul progetto didattico. | | | 20/05/16 |\\