====== Sommario lezioni ed esercitazioni (Corso A) ====== A questo [[ http://unimap.unipi.it/registri/dettregistriNEW.php?re=157197::::&ri=050214 | link]] il registro ufficiale delle lezioni. ---- ^ Numero ^ Descrizione ^ Materiale ^ Commenti ^ Data ^ | 1 |**Lezione**. Introduzione del corso. Richiami di C: puntatori, stringhe, puntatori a funzione, gestione della memoria (''malloc'', ''calloc'', ''realloc'', ''free''), funzioni con argomenti variabile, ''struct'' and ''union''. Uso dei manuali in linea. | {{:informatica:sol:laboratorio15:esercitazionia:intro_a_sol15.pdf|Lucidi introduttivi}}\\ {{: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:structandunion.pdf| Strutture e Union}} \\ {{:informatica:sol:laboratorio15:esercitazionia:variadicargs.pdf| Funzioni con argomenti variabili.}}| | 24/02/15|\\ | 2 |**Esercitazione**. Editor ''emacs'' e ''vi''. Compilazione con gcc: flags di base. Programmazione C con puntatori. Debugging con gdb. | [[esercitazione1|Assegnamento1]] \\ {{ | Possibile soluzione Es. 2-6}}\\ {{| Possibile soluzione Es. 7-9}} | {{: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/15|\\ | 3 |**Lezione**. Discussione su assegnamenti esercitazione precedente. Richiami di C: argc and argv. libreria standard di I/O. Spazio di indirizzamento di un programma C. | {{:informatica:sol:laboratorio15:esercitazionia:argcargv.pdf| Argc e Argv}} \\ {{:informatica:sol:laboratorio15:esercitazionib:c002libreriaio_c.pdf| Libreria standard I/O}} \\ {{:informatica:sol:laboratorio15:esercitazionib:c005funzionicilframe.pdf|Chiamata di funzione e frame}} | | 03/03/15|\\ | 4 |**Lezione**. Preprocessore C. Preprocessing, compilazione e linking. | {{:informatica:sol:laboratorio15:esercitazionia:c004preprocessore.pdf| Preprocessore}} \\ {{:informatica:sol:laboratorio15:esercitazionib:c006prepcomplinkong.pdf| Compilazione e linking.}} | | 03/03/15|\\ | 5 |**Esercitazione**. Utilizzo di ''mtrace'' e ''valgrind''. Discussione sulle problematiche incontrate nell'Assegnamento1. Esercitazione sulla libreria di I/O. | [[esercitazione2|Assegnamento2]] \\ {{|Possibile soluzione esercizi}} | |10/03/15|\\ | 6 |**Esercitazione**. Esercitazione sulla libraria di I/O. | | | 10/03/15|\\ | 7 |**Lezione**. Discussione sulle problematiche incontrate nell'Assegnamento2. Classi di memorizzazione C (extern,static). Creazione di librerie C statiche e condivise. Makefile. | {{:informatica:sol:laboratorio15:esercitazionib:c007classimemc.pdf| Classi di memorizzazione}}\\ {{:informatica:sol:laboratorio15:esercitazionia:librerieC.pdf| Librerie statiche e dinamiche}}\\ {{:informatica:sol:laboratorio15:esercitazionib:c008makefile.pdf| Makefile}} | [[MakefileExample|Esempio di Makefile]] | 17/03/15|\\ | 8 |**Esercitazione**. Introduzione al progetto. Esercizi su macro C. Creazione di una libreria statica. Creazione di semplici Makefile. | [[esercitazione3|Assegnamento3]] \\ {{|Possibile soluzione esercizi}} | Vedi il primo kit alla pagina del [[informatica:sol:laboratorio15:progetto|progetto]] | 17/03/15|\\ | 9 |**Lezione**. Shell bash introduzione. bash approfondimento1. | {{informatica:sol:laboratorio15:esercitazionib:asolab_bash1.0.pdf|Lucidi unix e bash (parte 1)}} \\ {{informatica:sol:laboratorio15:esercitazionib:asolab_bash2.0.pdf|Lucidi unix e bash (parte 2)}} | [[http://www.tldp.org/LDP/abs/html/|Advanced Bash Scripting Guide]] | 24/03/15|\\ | 10 |**Esercitazione**. Utilizzo di comandi in pipeline. Primi script bash. | [[esercitazione4|Assegnamento4]] \\ {{|Possibile soluzione esercizi}} | [[BashScriptExamples| Esempi di script bash]] | 24/03/15|\\ | 11 |**Lezione**. bash approfondimento2: signals, trap, quoting, functions, expressions. | {{informatica:sol:laboratorio15:esercitazionib:asolab_bash3.0.pdf|Lucidi Unix e Bash (terza ed ultima parte)}} | | 31/03/15|\\ | 12 |**Esercitazione**. Esercizi su script bash | [[esercitazione5|Assegnamento5]] \\ {{|Possibile soluzione esercizi}}| [[ http://mywiki.wooledge.org/BashFAQ/031|Differenze tra test '[' and test '[[']] \\ [[http://www.thegeekstuff.com/2010/06/bash-array-tutorial/|Esempi di utilizzo di array bash]] | 31/03/15|\\ | 13 |**Lezione**. File system Unix: inode, dyrectory. Chiamate di sistema (SC):open,close,read,write,lseek,umask,fsync,stat,unlink. Operazioni di libreria e SC su directory:opendir,closedir,readdir,rewinddir,getcwd,chdir. \\ Introduzione ai processi: fork, wait/waitpid. | {{:informatica:sol:laboratorio15:esercitazionib:06lso_scintroefiles.pdf|Lucidi System call: SC che lavorano su file regolari e directory}} \\ {{:informatica:sol:laboratorio15:esercitazionib:07lcs_processi.pdf|Introduzione processi}} | | 21/04/15|\\ | 14 |**Esercitazione**. Utilizzo delle chiamate di sistema per la lettura/scrittura di files e directories. Prima esperienza con ''fork'' e ''wait''. | [[esercitazione6|Assegnamento6]] \\ {{|Possibile soluzione esercizi}} | | 21/04/15|\\ | 15 |**Lezione**. Processi Unix, differenziazione del codice con exec*. Pipe con nome e senza nome. | {{:informatica:sol:laboratorio15:esercitazionib:07lcs_processi.pdf|Processi}} \\ {{informatica:sol:laboratorio15:esercitazionib:09lcs_pipe.pdf|Pipe}} | [[SCExamples| Alcuni esempi con processi e pipe]] \\ [[FIFOExample| Client/Server named pipe]] | 28/04/15|\\ | 16 |**Esercitazione**. Esercizi con processi e pipe senza nome. | [[esercitazione7|Assegnamento7]] \\ {{|Possibile soluzione esercizi}} | | 28/04/15|\\ | 17 |**Lezione**. POSIX threads, esecuzione concorrente. | {{:informatica:sol:laboratorio15:esercitazionib:08lcs_threadposix.pdf| Lucidi Thread Posix }} | Breve panoramica sul modello a thread\\ {{informatica:sol:laboratorio15:esercitazionib:08threadintro.pdf|Lucidi sul modello a thread}} | 05/05/15|\\ | 18 |**Esercitazione** Creazione di threads. Comunicazione tra threads, mutua esclusione. | [[esercitazione8|Assegnamento8]] \\ {{|Possibile soluzione esercizi}}| Vedi il secondo kit alla pagina del [[informatica:sol:laboratorio15:progetto|progetto]] | 05/05/15|\\ | 19 |**Lezione**. Socket. Comunicazione client-server. | {{:informatica:sol:laboratorio15:esercitazionib:10lcs_sockets.pdf|Lucidi su socket}} | | 12/05/15|\\ | 20 |**Esercitazione**. Esercizi su client e server (multithreaded) implementati con socket AF_UNIX. | [[esercitazione9|Assegnamento9]] \\ {{|Possibile soluzione esercizi}}| | 12/05/15|\\ | 21 |**Lezione**. Segnali. Gestione dei segnali in programmi multithreaded. | {{:informatica:sol:laboratorio15:esercitazionib:11lcs_segnali.pdf|Lucidi Segnali}} | | 19/05/15|\\ | 22 |**Esercitazione**. Gestione dei segnali con i thread. | [[esercitazione10|Assegnamento10]] \\ {{|Possibile soluzione esercizi}}| | 19/05/15|\\ | 23 |**Esercitazione**. Recupero esercitazioni precedenti e discussione sul progetto. | | | 26/05/15|\\ | 24 |**Esercitazione**. Discussione sul progetto. | | Vedi il terzo kit alla pagina del [[informatica:sol:laboratorio15:progetto|progetto]] | 26/05/15|\\