Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio21:esercitazionib:esercitazione10

Differenze

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

Link a questa pagina di confronto

Ultima revisione Entrambe le parti successive la revisione
informatica:sol:laboratorio21:esercitazionib:esercitazione10 [10/04/2021 alle 10:02 (3 anni fa)]
Massimo Torquati creata
informatica:sol:laboratorio21:esercitazionib:esercitazione10 [05/05/2021 alle 15:21 (3 anni fa)]
Massimo Torquati [Esercizio 2]
Linea 7: Linea 7:
 ===== Esercizio 2 ===== ===== Esercizio 2 =====
  
-Modificare l'Esercizio dell'[[informatica:sol:laboratorio21:esercitazionib:esercitazione9|Esercitazione 9]] in modo da gestire la terminazione del server a seguito della ricezione di un segnale di terminazione (SIGINT, SIGQUIT, SIGTERM, SIGHUP) con l'obiettivo di lasciare il sistema in uno stato consistente, cioè eliminare dal file system il socket AF_UNIX creato per accettare le connessioni, eventuali file temporanei e liberare la memoria allocata dinamicamente al fine di poter controllare eventuali memory leaks con ''valgrind''. Il segnale SIGPIPE deve essere invece ignorato. La gestione dei segnali deve essere effettuata installando un **signal-handler** con la SC ''sigaction''. Il signal-handler deve accedere solamente a variabili dichiarate ''volatile sig_atomic_t'' e deve usare solo chiamate //asynchronous-signal-safe// (vedere anche ''man 7 signal-safety''). \\+Modificare l'Esercizio dell'[[informatica:sol:laboratorio21:esercitazionib:esercitazione9|Esercitazione 9]] in modo da gestire la terminazione del server a seguito della ricezione di un segnale di terminazione (SIGINT, SIGQUIT, SIGTERM, SIGHUP) con l'obiettivo di lasciare il sistema in uno stato consistente, cioè eliminare dal file system il socket AF_UNIX creato per accettare le connessioni, eventuali file temporanei e liberare la memoria allocata dinamicamente al fine di poter controllare eventuali memory leaks con ''valgrind''. Il segnale SIGPIPE deve essere invece ignorato. La gestione dei segnali deve essere effettuata installando un **signal-handler** con la SC ''sigaction''. Il signal-handler deve accedere solamente a variabili dichiarate ''volatile sig_atomic_t'' e deve usare solo chiamate //asynchronous-signal-safe// (vedere anche ''man 7 signal-safety''). \\
 Testare l'esecuzione del server lanciandolo con il comando ''valgrind --leak-check=full'' e verficare che non ci siano messaggi di errore all'uscita dopo aver inviato un segnale di terminazione al termine del test. Testare l'esecuzione del server lanciandolo con il comando ''valgrind --leak-check=full'' e verficare che non ci siano messaggi di errore all'uscita dopo aver inviato un segnale di terminazione al termine del test.
  
informatica/sol/laboratorio21/esercitazionib/esercitazione10.txt · Ultima modifica: 06/05/2021 alle 10:19 (3 anni fa) da Alessio Conte