Inizio revisione capitolo 3 e solite indicizzazioni e aggiornamento
[gapil.git] / signal.tex
index b4e869f818714f40360ff416284cad7b27ca10e0..302b5e35f7031e15ecd249fa5593730e2000c223 100644 (file)
@@ -806,14 +806,15 @@ gestore; viene mantenuto invece ogni eventuale impostazione dell'azione a
 programmi eseguiti in background, che altrimenti sarebbero interrotti da una
 successiva pressione di \texttt{C-c} o \texttt{C-y}.
 
-Per quanto riguarda il comportamento di tutte le altre system call si danno
-sostanzialmente due casi, a seconda che esse siano \index{system~call~lente}
-\textsl{lente} (\textit{slow}) o \textsl{veloci} (\textit{fast}). La gran
-parte di esse appartiene a quest'ultima categoria, che non è influenzata
-dall'arrivo di un segnale. Esse sono dette \textsl{veloci} in quanto la loro
-esecuzione è sostanzialmente immediata; la risposta al segnale viene sempre
-data dopo che la system call è stata completata, in quanto attendere per
-eseguire un gestore non comporta nessun inconveniente.
+Per quanto riguarda il comportamento di tutte le altre \textit{system call} si
+danno sostanzialmente due casi, a seconda che esse siano
+\index{system~call~lente} \textsl{lente} (\textit{slow}) o \textsl{veloci}
+(\textit{fast}). La gran parte di esse appartiene a quest'ultima categoria,
+che non è influenzata dall'arrivo di un segnale. Esse sono dette
+\textsl{veloci} in quanto la loro esecuzione è sostanzialmente immediata; la
+risposta al segnale viene sempre data dopo che la \textit{system call} è stata
+completata, in quanto attendere per eseguire un gestore non comporta nessun
+inconveniente.
 
 In alcuni casi però alcune system call (che per questo motivo vengono chiamate
 \textsl{lente}) possono bloccarsi indefinitamente. In questo caso non si può
@@ -1438,24 +1439,25 @@ conclusione di un processo è quella di inviare questo segnale al
 padre.\footnote{in realtà in SVr4 eredita la semantica di System V, in cui il
   segnale si chiama \signal{SIGCLD} e viene trattato in maniera speciale; in
   System V infatti se si imposta esplicitamente l'azione a \const{SIG\_IGN} il
-  segnale non viene generato ed il sistema non genera \index{zombie} zombie
-  (lo stato di terminazione viene scartato senza dover chiamare una
-  \func{wait}).  L'azione predefinita è sempre quella di ignorare il segnale,
-  ma non attiva questo comportamento. Linux, come BSD e POSIX, non supporta
-  questa semantica ed usa il nome di \signal{SIGCLD} come sinonimo di
+  segnale non viene generato ed il sistema non genera \itindex{zombie}
+  \textit{zombie} (lo stato di terminazione viene scartato senza dover
+  chiamare una \func{wait}).  L'azione predefinita è sempre quella di ignorare
+  il segnale, ma non attiva questo comportamento. Linux, come BSD e POSIX, non
+  supporta questa semantica ed usa il nome di \signal{SIGCLD} come sinonimo di
   \signal{SIGCHLD}.} In generale dunque, quando non interessa elaborare lo
 stato di uscita di un processo, si può completare la gestione della
 terminazione installando un gestore per \signal{SIGCHLD} il cui unico compito
 sia quello di chiamare \func{waitpid} per completare la procedura di
-terminazione in modo da evitare la formazione di \index{zombie} zombie.
+terminazione in modo da evitare la formazione di \itindex{zombie}
+\textit{zombie}.
 
 In fig.~\ref{fig:sig_sigchld_handl} è mostrato il codice contenente una
-implementazione generica di una funzione di gestione per \signal{SIGCHLD}, (che
-si trova nei sorgenti allegati nel file \file{SigHand.c}); se ripetiamo i test
-di sez.~\ref{sec:proc_termination}, invocando \cmd{forktest} con l'opzione
-\cmd{-s} (che si limita ad effettuare l'installazione di questa funzione come
-gestore di \signal{SIGCHLD}) potremo verificare che non si ha più la creazione
-di \index{zombie} zombie.
+implementazione generica di una funzione di gestione per \signal{SIGCHLD},
+(che si trova nei sorgenti allegati nel file \file{SigHand.c}); se ripetiamo i
+test di sez.~\ref{sec:proc_termination}, invocando \cmd{forktest} con
+l'opzione \cmd{-s} (che si limita ad effettuare l'installazione di questa
+funzione come gestore di \signal{SIGCHLD}) potremo verificare che non si ha
+più la creazione di \itindex{zombie} \textit{zombie}.
 
 \begin{figure}[!htbp]
   \footnotesize  \centering
@@ -1495,7 +1497,8 @@ rimosso verrà recapitato un solo segnale.
 Allora, nel caso della terminazione dei processi figli, se si chiamasse
 \func{waitpid} una sola volta, essa leggerebbe lo stato di terminazione per un
 solo processo, anche se i processi terminati sono più di uno, e gli altri
-resterebbero in stato di \index{zombie} zombie per un tempo indefinito.
+resterebbero in stato di \itindex{zombie} \textit{zombie} per un tempo
+indefinito.
 
 Per questo occorre ripetere la chiamata di \func{waitpid} fino a che essa non
 ritorni un valore nullo, segno che non resta nessun processo di cui si debba
@@ -1814,8 +1817,8 @@ tab.~\ref{tab:sig_sa_flag}.
                            \var{sa\_sigaction} al posto di
                            \var{sa\_handler}.\\
     \const{SA\_NOCLDWAIT}& Se il segnale è \signal{SIGCHLD} allora i processi
-                           figli non diventano \textit{zombie} quando
-                           terminano.\footnotemark \\ 
+                           figli non diventano \itindex{zombie}
+                           \textit{zombie} quando terminano.\footnotemark \\ 
     \hline
   \end{tabular}
   \caption{Valori del campo \var{sa\_flag} della struttura \struct{sigaction}.}