====== Sommario lezioni ed esercitazioni ====== ---- **"valgrind: the 'impossible' happened: Killed by fatal signal"** ---- ^ Numero ^ Descrizione ^ Materiale ^ Commenti ^ Data ^ | 1 |** Introduzione al corso **\\ **Lezione**: Compilazione con gcc: flags di base. Uso del C99 vs Ansi C. Richiami di C (stringhe, //argc//, //argv//, allocazione dinamica della memoria, puntatori a funzioni, funzioni con argomenti variabili, struct/union). Preprocessore. | {{:informatica:sol:laboratorio17:esercitazionib:01lso2017_intro.pdf | Lucidi Introduttivi}}\\ {{:informatica:sol:laboratorio15:esercitazionib:c001puntatoriestringhe.pdf| Puntatori e stringhe}} \\ {{:informatica:sol:laboratorio17: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}} \\ {{:informatica:sol:laboratorio15:esercitazionia:c004preprocessore.pdf| Preprocessore}} | | 21/02/17 |\\ | 2 |**Esercitazione**. Debugging con gdb di un semplice programma. Esercizi di ripasso del linguaggio C. | [[esercitazione1|Assegnamento1]] {{|Possibile soluzione.}} \\ | {{: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}} | 22/02/17 |\\ | 3 |** 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:laboratorio15:esercitazionib:c006prepcomplinkong.pdf| Compilazione e linking.}} \\ {{:informatica:sol:laboratorio15:esercitazionia:librerieC.pdf| Librerie statiche e dinamiche}} \\ {{:informatica:sol:laboratorio17:esercitazionib:c007classimemc.pdf| Classi di memorizzazione}} \\ {{:informatica:sol:laboratorio17:esercitazionib:c002libreriaio_c.pdf|Libreria di IO.}} | | 28/02/17 |\\ | 4 |**Esercitazione**. Uso dei manuali in linea. Funzioni rientranti. Tokenizzazione di stringhe e generazione di numeri pseudo casuali. Creazione di librerie statiche e dinamiche. Accesso in lettura/scrittura a file testuali. | [[esercitazione2|Assegnamento2]] \\ {{|Possibile soluzione.}} \\ | | 01/03/17 |\\ | 5 |** Lezione **: Completamento argomenti lezione precedente. Makefile: che cos'e' e come si usa. Introduzione alla shell bash: concetto di shell, comandi principali. | {{:informatica:sol:laboratorio16:esercitazionib:02c008makefile.pdf| Makefile}} \\ {{:informatica:sol:laboratorio17:esercitazionib:shell_intro.pdf| Introduzione alla Shell}} | | 7/03/17 |\\ | 6 |**Esercitazione**. IO testuale e binario. Utilizzo di macros. Utilizzo di static. Makefile. | [[esercitazione3|Assegnamento3]] \\ {{|Possibile soluzione.}} | | 08/03/17 |\\ | 7 |** Lezione **: Scripting Bash | {{:informatica:sol:laboratorio17:esercitazionib:shell_scripting.pdf| Scripting in bash}} | [[ 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]] | 14/03/17 |\\ | 8 |**Esercitazione**. Ancora su Makefile, semplici script bash. | [[esercitazione4|Assegnamento4]] \\ {{|Possibile soluzione.}} | | 15/03/17 |\\ | 9 |** Lezione **: Completamento slides Bash Scripting. Struttura delle directories del FS Unix. Gestione sistematica degli errori. System Calls (SC) per la gestione dei files. | {{:informatica:sol:laboratorio15:esercitazionib:06lso_scintroefiles.pdf|Lucidi System call}} | | 21/03/17 |\\ | 10 |**Esercitazione**. Ancora scripting bash. Esercizi su SC per la gestione di files e directories. |[[esercitazione5|Assegnamento5]] \\ {{|Possibile soluzione.}} | | 22/03/17 |\\ | 11 |** Lezione **: Maschere di bit in umask: sticky bit SUID/SGID. SC 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}} | | 28/03/17 |\\ | 12 |**Esercitazione**. Esercizi su file e directory. Primi esercizi sui processi. |[[esercitazione6|Assegnamento6]] \\ {{|Possibile soluzione.}} | | 29/03/17 |\\ | 13 |** Lezione **: Threads POSIX: mutex e condition variables, modello produttore consumatore. | {{{{:informatica:sol:laboratorio16:esercitazionib:08lcs_threadposix.pdf| Lucidi Threads}} | | 4/04/17 |\\ | 14 |**Esercitazione**. Esercizi su processi e threads. |[[esercitazione7|Assegnamento7]] \\ {{|Possibile soluzione.}} | | 5/04/17 |\\ | 15 |**Esercitazione**. Esercizi con i threads. |[[esercitazione8|Assegnamento8]] \\ {{|Possibile soluzione.}} | | 26/04/17 |\\ | 16 |** Lezione **: Comunicazione tra processi: pipe senza nome, accenno alle pipe con nome, socket AF_UNIX. | {{informatica:sol:laboratorio15:esercitazionib:09lcs_pipe.pdf|Pipe}} \\ {{:informatica:sol:laboratorio15:esercitazionib:10lcs_sockets.pdf|Socket}} | [[SCExamples| Alcuni esempi con processi e pipe]] \\ [[FIFOExample| Client/Server con named pipe]] | 2/05/17 |\\ | 17 |**Esercitazione**. Esercizi su pipe senza nome e threads. |[[esercitazione9|Assegnamento9]] \\ {{|Possibile soluzione.}} | | 3/05/17 |\\ | 18 |** Lezione **: Sockets e server concorrenti. Breve introduzione al [[informatica:sol:laboratorio17:progetto| progetto]]. | {{:informatica:sol:laboratorio15:esercitazionib:10lcs_sockets.pdf|Socket}} \\ {{:informatica:sol:laboratorio17:esercitazionib:servermultithreaded.pdf|Server multithreaded}}| | 9/05/17 |\\ | 19 |**Esercitazione**. Esercizi su socket e server concorrenti. |[[esercitazione10|Assegnamento10]] \\ {{|Possibile soluzione.}} | | 10/05/17 |\\ | 20 |** Lezione **: Gestione dei segnali. | {{:informatica:sol:laboratorio15:esercitazionib:11lcs_segnali.pdf|Segnali}} | | 16/05/17 |\\ | 21 |**Esercitazione**. Esercizi sulla gestione dei segnali. |[[esercitazione11|Assegnamento11]] \\ {{|Possibile soluzione.}} | | 17/05/17 |\\ | 22 |** Lezione **: Segnali e threads. Discussione su protocolli di comunicazione client-server. | {{:informatica:sol:laboratorio15:esercitazionib:11lcs_segnali.pdf|Segnali}} | | 23/05/17 |\\ | 23 |**Esercitazione**. Server multi threaded, sockets e gestione dei segnali. |[[esercitazione12|Assegnamento12]] | | 24/05/17 |\\ | 24 |** Lezione **: Discussione sul progetto. | [[informatica:sol:laboratorio17:progetto|]]| | 30/05/17 |\\