Aggiunta implementazione di Signal e riferimenti nel capitolo relativo
[gapil.git] / simpltcp.tex
index f210f219e3114717d0138eab1bea059b441f98ad..4da8e81d70e17c58fea92b2fc1415d02df77ab49 100644 (file)
@@ -29,11 +29,11 @@ caratteri dallo standard input e la scrive sul server, il server legger
 linea dalla connessione e la riscriverà all'indietro; sarà compito del client
 leggere la risposta del server e stamparla sullo standard output.
 
-Si è scelto di usare questo servizio, seguendo lo Stevens, perché costituisce
-il prototipo ideale di una generica applicazione di rete in cui un server
-risponde alle richieste di un client; tutto quello che cambia nel caso si una
-applicazione più complessa è la elaborazione dell'input del client da parte
-del server nel fornire le risposte in uscita. 
+Si è scelto di usare questo servizio, seguendo l'esempio di \cite{UNP1},
+perché costituisce il prototipo ideale di una generica applicazione di rete in
+cui un server risponde alle richieste di un client; tutto quello che cambia
+nel caso si una applicazione più complessa è la elaborazione dell'input del
+client da parte del server nel fornire le risposte in uscita.
 
 Partiremo da un'implementazione elementare che dovrà essere rimaneggiata di
 volta in volta per poter tenere conto di tutte le evenienze che si possono
@@ -329,11 +329,11 @@ un risultato del tipo:
 tre processi, tutti in stato di \textit{sleep} (S).
 
 Se a questo punto si inizia a scrivere qualcosa sul client niente sarà
-trasmesso fin tanto che non si prema il ritorno carrello, allora la
-\func{fgets} ritornerà e a questo punto il client scriverà quanto immesso
-sul socket, poi rileggerà quanto gli viene inviato all'indietro dal server, e
-questo sarà inviato sullo standard output, che nel caso ne provoca
-l'immediatamente stampa a video.
+trasmesso fin tanto che non si prema il ritorno carrello (si ricordi quanto
+trattato in \secref{sec:file_line_io}), allora la \func{fgets} ritornerà e a
+questo punto il client scriverà quanto immesso sul socket, poi rileggerà
+quanto gli viene inviato all'indietro dal server, e questo sarà inviato sullo
+standard output, che nel caso ne provoca l'immediatamente stampa a video.
 
 
 \subsection{La conclusione normale}
@@ -407,9 +407,13 @@ ripetendo il comando \cmd{ps}:
 Poiché non è possibile lasciare processi zombie che pur inattivi occupano
 spazio nella tabella dei processi e a lungo andare saturerebbero le risorse
 del kernel, occorrerà ricevere opportunamente lo stato di terminazione del
-processo (si veda \secref{sec:proc_wait}), cosa che faremo utilizzando il
-segnale, per questo installeremo un manipolatore usando la funzione
-\func{Signal} (trattata in dettaglio in \secref{sec:sig_signal}).
+processo (si veda \secref{sec:proc_wait}), cosa che faremo utilizzando
+\macro{SIGCHLD} secondo quanto illustrato in \secref{sec:sig_sigchld}.
+
+La prima modifica al nostro server è pertanto quella di inserire la gestione
+della terminazione dei processi figli attraverso l'uso di un manipolatore.
+Per questo usiamo la funzione \code{Signal} illustrata in
+\figref{fig:sig_Signal_code}. 
 
 
 %%% Local Variables: