X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=simpltcp.tex;h=93a66e1445b8ea40223532ad04c4987df6551930;hp=c007bb0eb79694b62f6c24df9cf96900fe7b1c6c;hb=39154797992fca1134da0f4456dfbe2f37d82269;hpb=e2a1ad24365266ea8846b688addd4e7694428969 diff --git a/simpltcp.tex b/simpltcp.tex index c007bb0..93a66e1 100644 --- a/simpltcp.tex +++ b/simpltcp.tex @@ -408,26 +408,26 @@ Tutto questo riguarda la connessione, c' del procedimento di chiusura del processo figlio nel server (si veda quanto esaminato in \secref{sec:proc_termination}). In questo caso avremo l'invio del segnale \const{SIGCHLD} al padre, ma dato che non si è installato un -manipolatore e che l'azione predefinita per questo segnale è quella di essere +gestore e che l'azione predefinita per questo segnale è quella di essere ignorato, non avendo predisposto la ricezione dello stato di terminazione, -otterremo che il processo figlio entrerà nello stato di zombie (si riveda -quanto illustrato in \secref{sec:sig_sigchld}), come risulterà ripetendo il -comando \cmd{ps}: +otterremo che il processo figlio entrerà nello stato di zombie\index{zombie} +(si riveda quanto illustrato in \secref{sec:sig_sigchld}), come risulterà +ripetendo il comando \cmd{ps}: \begin{verbatim} 2356 pts/0 S 0:00 ./echod 2359 pts/0 Z 0:00 [echod ] \end{verbatim} -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 +Poiché non è possibile lasciare processi zombie\index{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 \const{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. +della terminazione dei processi figli attraverso l'uso di un gestore. Per questo useremo la funzione \code{Signal}, illustrata in -\figref{fig:sig_Signal_code}, per installare il semplice manipolatore che +\figref{fig:sig_Signal_code}, per installare il semplice gestore che riceve i segnali dei processi figli terminati già visto in \figref{fig:sig_sigchld_handl}; aggiungendo il seguente codice: \begin{lstlisting}{} @@ -441,7 +441,7 @@ riceve i segnali dei processi figli terminati gi \noindent all'esempio illustrato in \figref{fig:TCPsimpl_serv_code}, e linkando il tutto alla funzione \code{sigchld\_hand}, si risolverà completamente il problema -degli zombie. +degli zombie\index{zombie}.