X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=blobdiff_plain;f=simpltcp.tex;h=b024478486cfa3f02ea0f0df82b41adaaf1ee4a1;hb=80894586ca62d615c374e26f769d52143bb1ae77;hp=61013877ea457e43633ae7f8401e4af449b6582f;hpb=6e3e4f4d9d97e5643f85a13904412f4f4e46631f;p=gapil.git diff --git a/simpltcp.tex b/simpltcp.tex index 6101387..b024478 100644 --- a/simpltcp.tex +++ b/simpltcp.tex @@ -388,9 +388,24 @@ casi seguenti: \end{enumerate} - - +\subsection{La gestione dei procesi figli} +\label{sec:TCPsimpl_child_hand} + +Tutto questo riguarda la connessione, c'è però un'altro effetto del +procedimento di chiusura del processo figlio nel server, e cioè l'invio del +segnale \texttt{SIGCHILD} al padre. Dato che non si è installato un +manipolatore (vedi \secref{cap:signal} per le problematiche relative) e che +l'azione di default per questo segnale è quella di essere ignorato quello che +avremo è che il processo figlio entrerà nello stato di zombie, come risulta +una volta che ripetiamo il comando \texttt{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à gestire il segnale, per questo installeremo un +manipolatore usando la funzione \texttt{Signal} (trattata in dettaglio in +\secref{sec:sig_xxx}). +