Correzioni di Algol
[gapil.git] / prochand.tex
index f5decd7429d5e028e978b0980fef1d5961f26f57..d476db8c3ea5ccdfc18d719bcb76b7f50b23cd01 100644 (file)
@@ -196,7 +196,7 @@ ottenuti da programma usando le funzioni:
 
 Entrambe le funzioni non riportano condizioni di errore. 
 \end{functions}
-esempi dell'uso di queste funzioni sono riportati in
+\noindent esempi dell'uso di queste funzioni sono riportati in
 \figref{fig:proc_fork_code}, nel programma di esempio \file{ForkTest.c}.
 
 Il fatto che il \acr{pid} sia un numero univoco per il sistema lo rende il
@@ -537,7 +537,8 @@ Oltre ai file aperti i processi figli ereditano dal padre una serie di altre
 proprietà; la lista dettagliata delle proprietà che padre e figlio hanno in
 comune dopo l'esecuzione di una \func{fork} è la seguente:
 \begin{itemize*}
-\item i file aperti e gli eventuali flag di \textit{close-on-exec} se settati.
+\item i file aperti e gli eventuali flag di \textit{close-on-exec} (vedi
+\secref{sec:proc_exec} e \secref{sec:file_fcntl}) se settati.
 \item gli identificatori per il controllo di accesso: il \textit{real user
     id}, il \textit{real group id}, l'\textit{effective user id},
   l'\textit{effective group id} e i \textit{supplementary group id} (vedi
@@ -549,9 +550,11 @@ comune dopo l'esecuzione di una \func{fork} 
 \item la directory di lavoro e la directory radice (vedi
   \secref{sec:file_work_dir}).
 \item la maschera dei permessi di creazione (vedi \secref{sec:file_umask}).
-\item la maschera dei segnali bloccati e le azioni installate.
-\item i segmenti di memoria condivisa agganciati al processo. 
-\item i limiti sulle risorse.
+\item la maschera dei segnali bloccati e le azioni installate  (vedi
+\secref{sec:sig_xxx}).
+\item i segmenti di memoria condivisa agganciati al processo (vedi
+\secref{sec:ipc_xxx}). 
+\item i limiti sulle risorse (vedi  \secref{sec:sys_xxx}).
 \item le variabili di ambiente (vedi \secref{sec:proc_environ}).
 \end{itemize*}
 le differenze fra padre e figlio dopo la \func{fork} invece sono:
@@ -562,8 +565,8 @@ le differenze fra padre e figlio dopo la \func{fork} invece sono:
   \acr{pid} del padre).
 \item i valori dei tempi di esecuzione (\var{tms\_utime}, \var{tms\_stime},
   \var{tms\_cutime}, \var{tms\_uetime}) che nel figlio sono posti a zero.
-\item i \textit{file lock}, che non vengono ereditati dal figlio.
-\item gli allarmi ed i segnali pendenti, che per il figlio vengono cancellati.
+\item i \textit{file lock} (vedi \secref{sec:file_locking}, che non vengono ereditati dal figlio.
+\item gli allarmi ed i segnali pendenti (vedi \secref{sec:sig_xxx}), che per il figlio vengono cancellati.
 \end{itemize*}
 
 
@@ -1135,7 +1138,7 @@ indicato dal parametro \var{path}, che viene interpretato come il
 
 \begin{figure}[htb]
   \centering
-  \includegraphics[width=13cm]{img/exec_rel.eps}
+  \includegraphics[width=13cm]{img/exec_rel}
   \caption{La interrelazione fra le sei funzioni della famiglia \func{exec}}
   \label{fig:proc_exec_relat}
 \end{figure}
@@ -1331,8 +1334,7 @@ possono essere letti dal processo attraverso delle opportune funzioni, i cui
 prototipi sono i seguenti:
 \begin{functions}
   \headdecl{unistd.h}
-  \headdecl{sys/types.h}
-  
+  \headdecl{sys/types.h}  
   \funcdecl{uid\_t getuid(void)} restituisce il \textit{real user ID} del
   processo corrente.
 
@@ -1345,7 +1347,7 @@ prototipi sono i seguenti:
   \funcdecl{gid\_t getegid(void)} restituisce l'\textit{effective group ID} del
   processo corrente.
   
-  Queste funzioni non riportano condizioni di errore. 
+  \noindent Queste funzioni non riportano condizioni di errore. 
 \end{functions}
 
 In generale l'uso di privilegi superiori deve essere limitato il più
@@ -1690,11 +1692,11 @@ non possono essere interrotte (o subire interferenze pericolose) da altri
 processi.
 
 Nel caso dei segnali invece la situazione è molto più delicata, in quanto lo
-stesso processo può essere interrotto in qualunque momento, e le operazioni di
-un eventuale \textit{signal handler} saranno compiute nello stesso spazio di
-indirizzi. Per questo anche solo il solo accesso o l'assegnazione di una
-variabile possono non essere più operazioni atomiche (torneremo su questi
-aspetti in \secref{sec:sign_xxx}).
+stesso processo, e pure alcune system call, possono essere interrotti in
+qualunque momento, e le operazioni di un eventuale \textit{signal handler}
+sono compiute nello stesso spazio di indirizzi del processo. Per questo anche
+solo il solo accesso o l'assegnazione di una variabile possono non essere più
+operazioni atomiche (torneremo su questi aspetti in \secref{sec:sign_xxx}).
 
 In questo caso il sistema provvede un tipo di dato, il \type{sig\_atomic\_t},
 il cui accesso è assicurato essere atomico.  In pratica comunque si può
@@ -1728,9 +1730,9 @@ condivise siano opportunamente protette da meccanismi di sincronizzazione
 Un caso particolare di \textit{race condition} sono poi i cosiddetti
 \textit{deadlock}; l'esempio tipico è quello di un flag di ``occupazione'' che
 viene rilasciato da un evento asincrono fra il controllo (in cui viene trovato
-occupato) e la successiva messa in attesa, attesa che a questo punto diventerà
+occupato) e la successiva messa in attesa, che a questo punto diventerà
 perpetua (da cui il nome di \textit{deadlock}) in quanto l'evento di sblocco
-di questa è stato perso.
+del flag è stato perso fra il controllo e la messa in attesa.
 
 
 \subsection{Le funzioni rientranti}