Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio20:esercitazionib:start

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
informatica:sol:laboratorio20:esercitazionib:start [03/05/2020 alle 05:53 (5 anni fa)] Massimo Torquatiinformatica:sol:laboratorio20:esercitazionib:start [27/01/2021 alle 07:01 (4 anni fa)] (versione attuale) Massimo Torquati
Linea 9: Linea 9:
  
 ^  Numero  ^  Descrizione  ^  Materiale  ^  Altro  ^  Data  ^ ^  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). |{{:informatica:sol:laboratorio20:esercitazionib:gcccommandline.pdf| Compilazione con gcc.}}\\ {{:informatica:sol:laboratorio20:esercitazionib:variadicargs.pdf| Funzioni con argomenti variabili.}}\\ {{:informatica:sol:laboratorio20:esercitazionib:gestioneMemoriaC.pdf| Gestione della memoria in C}} \\ {{:informatica:sol:laboratorio20:esercitazionib:argcargv.pdf| Argc Argv}} \\ [[esercitazione1|Assegnamento1]]  {{:informatica:sol:laboratorio20:esercitazionib:es1.tgz|Possibile soluzione.}} |  [[https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Standards.html#C-Language|C standards in GCC]]  | 18/02/20 |\\+|  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). |{{:informatica:sol:laboratorio20:esercitazionib:gcccommandline.pdf| Compilazione con gcc.}}\\ {{:informatica:sol:laboratorio20:esercitazionib:variadicargs.pdf| Funzioni con argomenti variabili.}}\\ {{:informatica:sol:laboratorio20:esercitazionib:gestioneMemoriaC.pdf| Gestione della memoria in C}} \\ {{:informatica:sol:laboratorio20:esercitazionib:argcargv.pdf| Argc Argv}} \\ [[esercitazione1|Assegnamento1]]  {{|Possibile soluzione.}} |  [[https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Standards.html#C-Language|C standards in GCC]]  | 18/02/20 |\\
 |  2 |**Lezione**.  Richiami di C (puntatori a funzioni, struct/union). Preprocessore.  | {{:informatica:sol:laboratorio15:esercitazionib:c001puntatoriestringhe.pdf| Puntatori e stringhe}} \\  {{:informatica:sol:laboratorio17:esercitazionib:c003punfunzegenerico.pdf| Puntatori a funzione e 'void*'}}\\ {{:informatica:sol:laboratorio20:esercitazionib:structandunion.pdf| Strutture e Union}}\\ {{:informatica:sol:laboratorio15:esercitazionia:c004preprocessore.pdf| Preprocessore}}\\   | {{: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/20 |\\ |  2 |**Lezione**.  Richiami di C (puntatori a funzioni, struct/union). Preprocessore.  | {{:informatica:sol:laboratorio15:esercitazionib:c001puntatoriestringhe.pdf| Puntatori e stringhe}} \\  {{:informatica:sol:laboratorio17:esercitazionib:c003punfunzegenerico.pdf| Puntatori a funzione e 'void*'}}\\ {{:informatica:sol:laboratorio20:esercitazionib:structandunion.pdf| Strutture e Union}}\\ {{:informatica:sol:laboratorio15:esercitazionia:c004preprocessore.pdf| Preprocessore}}\\   | {{: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/20 |\\
-|  3 |**Esercitazione**. Funzioni rientranti. Tokenizzazione di stringhe e generazione di numeri pseudo casuali.   | {{:informatica:sol:laboratorio20:esercitazionib:reentrantfunc.pdf| Funzioni rientranti.}}\\ [[esercitazione2|Assegnamento2]] \\ {{:informatica:sol:laboratorio20:esercitazionib:es2.tgz|Possibile soluzione.}} \\ |{{:informatica:sol:laboratorio18:esercitazionib:gdb_valgrind.pdf| Note gdb e valgrind}}{{:informatica:sol:laboratorio19:esercitazionib:eserciziogdb.pdf| Esempio gdb}}  | 25/02/20 |\\ +|  3 |**Esercitazione**. Funzioni rientranti. Tokenizzazione di stringhe e generazione di numeri pseudo casuali.   | {{:informatica:sol:laboratorio20:esercitazionib:reentrantfunc.pdf| Funzioni rientranti.}}\\ [[esercitazione2|Assegnamento2]] \\ {{|Possibile soluzione.}} \\ |{{:informatica:sol:laboratorio18:esercitazionib:gdb_valgrind.pdf| Note gdb e valgrind}}{{:informatica:sol:laboratorio19:esercitazionib:eserciziogdb.pdf| Esempio gdb}}  | 25/02/20 |\\ 
 |  4 |** Lezione **: Compilazione e linking in C. Creazione di librerie statiche e dinamiche. Classi di memorizzazione: //static//, //extern//. | {{: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}} \\ |  | 25/02/20 |\\ |  4 |** Lezione **: Compilazione e linking in C. Creazione di librerie statiche e dinamiche. Classi di memorizzazione: //static//, //extern//. | {{: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}} \\ |  | 25/02/20 |\\
-|  5 |**Esercitazione**. Creazione di librerie statiche (.a) e dinamiche (.so). Utilizzo di macros. Utilizzo di static. | [[esercitazione3|Assegnamento3]] \\ {{:informatica:sol:laboratorio20:esercitazionib:es3.tgz|Possibile soluzione.}} \\ |  | 3/03/20 |\\+|  5 |**Esercitazione**. Creazione di librerie statiche (.a) e dinamiche (.so). Utilizzo di macros. Utilizzo di static. | [[esercitazione3|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. | {{:informatica:sol:laboratorio20:esercitazionib:dirfsunix.pdf|Gerarchia di directory.}} \\ {{:informatica:sol:laboratorio20:esercitazionib:c002libreriaio_c.pdf|Libreria di IO.}} | **CorsoB**: vedere anche il video LibreriaIO.mp4  | 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. | {{:informatica:sol:laboratorio20:esercitazionib:dirfsunix.pdf|Gerarchia di directory.}} \\ {{:informatica:sol:laboratorio20:esercitazionib:c002libreriaio_c.pdf|Libreria di IO.}} | **CorsoB**: vedere anche il video LibreriaIO.mp4  | 3/03/20 |\\
-|  7 |**Esercitazione**. I/O testuale e binario con la libreria standard. | [[esercitazione4|Assegnamento4]] \\ {{:informatica:sol:laboratorio20:esercitazionib:es4.tgz|Possibile soluzione.}} \\ |  | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram. |\\+|  7 |**Esercitazione**. I/O testuale e binario con la libreria standard. | [[esercitazione4|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| {{:informatica:sol:laboratorio16:esercitazionib:02c008makefile.pdf| Makefile}} \\ {{: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]] | **CorsoB**: vedere videolezioni Makefile{1,2}.mp4 e BashIntro{1,2}.mp4 |\\ |  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| {{:informatica:sol:laboratorio16:esercitazionib:02c008makefile.pdf| Makefile}} \\ {{: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]] | **CorsoB**: vedere videolezioni Makefile{1,2}.mp4 e BashIntro{1,2}.mp4 |\\
-|  9 |**Esercitazione**. Makefile e comandi bash. | [[esercitazione5|Assegnamento5]] \\ {{:informatica:sol:laboratorio20:esercitazionib:es5.tgz|Possibile soluzione.}} \\ |  | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram. |\\+|  9 |**Esercitazione**. Makefile e comandi bash. | [[esercitazione5|Assegnamento5]] \\ {{|Possibile soluzione.}} \\ |  | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram. |\\
 |  10 |**Lezione**. Script in bash.    | {{:informatica:sol:laboratorio20:esercitazionib:shell_scripting2.pdf| Scripting in bash}} | [[https://linuxacademy.com/blog/linux/conditions-in-bash-scripting-if-statements/|If statements in bash scripting]] | **CorsoB**: vedere videolezioni ScriptBash{1,2,3}.mp4 |\\ |  10 |**Lezione**. Script in bash.    | {{:informatica:sol:laboratorio20:esercitazionib:shell_scripting2.pdf| Scripting in bash}} | [[https://linuxacademy.com/blog/linux/conditions-in-bash-scripting-if-statements/|If statements in bash scripting]] | **CorsoB**: vedere videolezioni ScriptBash{1,2,3}.mp4 |\\
-|  11 |**Esercitazione**. Scripts in bash. | [[esercitazione6|Assegnamento6]] \\ {{:informatica:sol:laboratorio20:esercitazionib:es6.tgz|Possibile soluzione.}} \\ |  | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram. |\\+|  11 |**Esercitazione**. Scripts in bash. | [[esercitazione6|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. | {{:informatica:sol:laboratorio20:esercitazionib:scfiles.pdf|SCs per I/O}} | | **CorsoB**: vedere videolezione SystemCallIO.mp4 |\\ |  12 |** Lezione **:  Chiamate di sistema per la gestione di files e directories. | {{:informatica:sol:laboratorio20:esercitazionib:scfiles.pdf|SCs per I/O}} | | **CorsoB**: vedere videolezione SystemCallIO.mp4 |\\
-|  13 |**Esercitazione**. Esercizi su SC per la gestione di files e directories. |[[esercitazione7|Assegnamento7]] \\ {{:informatica:sol:laboratorio20:esercitazionib:es7.tgz|Possibile soluzione.}}    | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram. |\\+|  13 |**Esercitazione**. Esercizi su SC per la gestione di files e directories. |[[esercitazione7|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*. | {{:informatica:sol:laboratorio15:esercitazionib:07lcs_processi.pdf|Processi}} | | **CorsoB**: vedere videolezione SystemCallProcessi.mp4 |\\ |  14 |** Lezione **:  Processi: fork, wait/waitpid e differenziazione del codice con exec*. | {{:informatica:sol:laboratorio15:esercitazionib:07lcs_processi.pdf|Processi}} | | **CorsoB**: vedere videolezione SystemCallProcessi.mp4 |\\
-|  15 |**Esercitazione**. Esercizi con fork/waitpid/exec.  |[[esercitazione8|Assegnamento8]] \\ {{:informatica:sol:laboratorio20:esercitazionib:es8.tgz|Possibile soluzione.}}    | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram.|\\+|  15 |**Esercitazione**. Esercizi con fork/waitpid/exec.  |[[esercitazione8|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. |{{ :informatica:sol:laboratorio18:esercitazionib:c005_1lcs_threadposix.pdf |PThreads.}} |  | **CorsoB**: vedere videolezione PThreads.mp4 |\\ |  16 |**Lezione**. Gestione dei threads POSIX: creazione/distruzione, mutex, condition variables, gestione terminazione. |{{ :informatica:sol:laboratorio18:esercitazionib:c005_1lcs_threadposix.pdf |PThreads.}} |  | **CorsoB**: vedere videolezione PThreads.mp4 |\\
-|  17 |**Esercitazione**. Esercizi con processi e threads.  |[[esercitazione9|Assegnamento9]] \\ {{:informatica:sol:laboratorio20:esercitazionib:es9.tgz|Possibile soluzione.}}    | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram.  |\\+|  17 |**Esercitazione**. Esercizi con processi e threads.  |[[esercitazione9|Assegnamento9]] \\ {{|Possibile soluzione.}}    | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram.  |\\
 |  18 |** Lezione **: Comunicazione tra processi: pipe senza nome.  | {{informatica:sol:laboratorio15:esercitazionib:09lcs_pipe.pdf|Pipe}} | [[SCExamples| Alcuni esempi con processi e pipe]]\\ {{ fifo_server.tgz | Esempio di protocollo client/server con named pipe }} | **CorsoB**: vedere videolezione UnnamedPipe.mp4 |\\ |  18 |** Lezione **: Comunicazione tra processi: pipe senza nome.  | {{informatica:sol:laboratorio15:esercitazionib:09lcs_pipe.pdf|Pipe}} | [[SCExamples| Alcuni esempi con processi e pipe]]\\ {{ fifo_server.tgz | Esempio di protocollo client/server con named pipe }} | **CorsoB**: vedere videolezione UnnamedPipe.mp4 |\\
-|  19 |**Esercitazione**. Esercizi con processi, pipe e threads. | [[esercitazione10|Assegnamento10]] \\ {{:informatica:sol:laboratorio20:esercitazionib:es10.tgz|Possibile soluzione.}}    | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram.  |\\+|  19 |**Esercitazione**. Esercizi con processi, pipe e threads. | [[esercitazione10|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''). | {{:informatica:sol:laboratorio15:esercitazionib:10lcs_sockets.pdf|Socket}}| | **CorsoB**: vedere videolezione SocketAF_UNIX.mp4 |\\ |  20 |** Lezione **:  Comunicazione tra processi: socket AF_UNIX. Multiplexing di più sockets con ''select'' (accenni a ''poll''). | {{:informatica:sol:laboratorio15:esercitazionib:10lcs_sockets.pdf|Socket}}| | **CorsoB**: vedere videolezione SocketAF_UNIX.mp4 |\\
 |  21 |**Esercitazione**. Esercizi con socket. Comunicazioni client-server ed uso della ''select''. | [[esercitazione11|Assegnamento11]] \\ {{|Possibile soluzione.}}    | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram.|\\ |  21 |**Esercitazione**. Esercizi con socket. Comunicazioni client-server ed uso della ''select''. | [[esercitazione11|Assegnamento11]] \\ {{|Possibile soluzione.}}    | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram.|\\
-|  22 |** Lezione **:  Gestione dei segnali. | {{:informatica:sol:laboratorio15:esercitazionib:11lcs_segnali.pdf|Segnali}} | | **CorsoB**: |\\ +|  22 |** Lezione **:  Gestione dei segnali. Discussione sull'uso di "readn" e "writen". | {{:informatica:sol:laboratorio15:esercitazionib:11lcs_segnali.pdf|Segnali}} | [[https://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html | Nota su "partial read/write" (aka "short read/write")]] [[readnwriten | 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''. | [[esercitazione12|Assegnamento12]] \\ {{|Possibile soluzione.}}    | **CorsoB**: |\\ +|  23 |**Esercitazione**. Esercizi con gestione dei segnali con signal-handler e con ''sigwait''. | [[esercitazione12|Assegnamento12]] \\ {{|Possibile soluzione.}}    | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram. |\\ 
-|  24 |**Esercitazione**. Esercizi con thread e segnali, ed implementazione di server concorrenti. | [[esercitazione13|Assegnamento13]] \\ {{|Possibile soluzione.}}   |  | **CorsoB**: |\\+|  24 |** Lezione **. Pattern di implementazione di server concorrenti. | {{:informatica:sol:laboratorio20:esercitazionib:servermultithreaded.pdf|Note su server concorrenti}}  |  | **CorsoB**: vedere videolezione NoteServerMultiThreaded.mp4 |\\ 
 +|  25 |**Esercitazione**. Esercizi con thread e segnali, e schemi di implementazione di server concorrenti. | [[esercitazione13|Assegnamento13]]  |  | **CorsoB**: vedere il video con il commento degli esercizi sul gruppo Telegram. |\\ 
 +|  26 |**Esercitazione**. Question time sugli argomenti del corso.  |    |  |\\
informatica/sol/laboratorio20/esercitazionib/start.1588485210.txt.gz · Ultima modifica: 03/05/2020 alle 05:53 (5 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki