Revisioni varie, introdotto nuovo capitolo sulle funzioni di gestione
[gapil.git] / prochand.tex
index 90e2e9f65806c5947bc4624d55cedf2324459031..c2af15d637ce024f93bd9c344060da9445b84e20 100644 (file)
@@ -537,8 +537,8 @@ sequenza impredicibile. Le modalit
 \end{enumerate}
 
 Oltre ai file aperti i processi figli ereditano dal padre una serie di altre
-proprietà comuni; in dettaglio avremo che dopo l'esecuzione di una \func{fork}
-padre e figlio avranno in comune:
+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).
@@ -558,7 +558,7 @@ padre e figlio avranno in comune:
 \item i limiti sulle risorse
 \item le variabili di ambiente (vedi \secref{sec:proc_environ}).
 \end{itemize*}
-le differenze invece sono:
+le differenze fra padree figlio dopo la \func{fork} invece sono:
 \begin{itemize*}
 \item il valore di ritorno di \func{fork}.
 \item il \textit{process id}. 
@@ -760,7 +760,7 @@ di terminare il processo che li ha generati, in modo che \cmd{init} possa
 adottarli e provvedere a concludere la terminazione.
 
 
-\subsection{Le funzioni \texttt{wait} e  \texttt{waitpid}}
+\subsection{Le funzioni \func{wait} e  \func{waitpid}}
 \label{sec:proc_wait}
 
 Abbiamo già accennato come uno degli usi possibili delle capacità multitasking
@@ -791,6 +791,7 @@ caso di errore; \var{errno} pu
   \item \macro{EINTR} la funzione è stata interrotta da un segnale.
   \end{errlist}
 \end{functions}
+
 è presente fin dalle prime versioni di unix; la funzione ritorna alla
 conclusione del primo figlio (o immediatamente se un figlio è già uscito). Nel
 caso un processo abbia più figli il valore di ritorno permette di identificare
@@ -963,6 +964,7 @@ accessibili definendo la costante \macro{\_USE\_BSD}, sono:
   Prima versione, equivalente a \func{wait4(-1, \&status, opt, rusage)} è
   ormai deprecata in favore di \func{wait4}.
 \end{functions}
+\noindent 
 la struttura \type{rusage} è definita in \file{sys/resource.h}, e viene
 utilizzata anche dalla funzione \func{getrusage} per ottenere le risorse di
 sistema usate dal processo; in Linux è definita come:
@@ -992,7 +994,7 @@ struct rusage {
     \end{lstlisting}
   \end{minipage} 
   \normalsize 
-  \caption{La struttura \texttt{rusage} per la lettura delle informazioni dei 
+  \caption{La struttura \var{rusage} per la lettura delle informazioni dei 
     delle risorse usate da un processo.}
   \label{fig:proc_rusage_struct}
 \end{figure}
@@ -1004,7 +1006,7 @@ sono mantenuti sono: \var{ru\_utime}, \var{ru\_stime}, \var{ru\_minflt},
 \var{ru\_majflt}, e \var{ru\_nswap}.
 
 
-\subsection{Le funzioni \texttt{exec}}
+\subsection{Le funzioni \func{exec}}
 \label{sec:proc_exec}
 
 Abbiamo già detto che una delle modalità principali con cui si utilizzano i
@@ -1609,24 +1611,22 @@ Gli utenti normali possono settare l'\textit{effective id} solo al valore del
 \textit{real id} o del \textit{saved id}, l'amministratore può specificare
 qualunque valore. Queste funzioni sono usate per permettere a root di settare
 solo l'\textit{effective id}, dato che l'uso normale di \func{setuid} comporta
-il settagio di tutti gli identificatori.
+il settaggio di tutti gli identificatori.
  
 
-
 \subsection{Le funzioni \func{setfsuid} e \func{setfsgid}}
 \label{sec:proc_setfsuid}
 
 Queste funzioni sono usate per settare gli identificatori usati da Linux per
 il controllo dell'accesso ai file. Come già accennato in
-\secref{sec:proc_user_group} Linux definisce questo ulteriore gruppo di
-identificatori che di norma sono assolutamente equivalenti agli
-\textit{effective id} (ed in seguito faremo sempre riferimento a questi
-ultimi), dato che ogni cambiamento di questi ultimi viene immediatamente
-riportato sui \textit{filesystem id}.
+\secref{sec:proc_user_group} in Linux è definito questo ulteriore gruppo di
+identificatori, che di norma sono assolutamente equivalenti agli
+\textit{effective id}, dato che ogni cambiamento di questi ultimi viene
+immediatamente riportato sui \textit{filesystem id}.
 
 C'è un solo caso in cui si ha necessità di introdurre una differenza fra
-\textit{effective id} e i \textit{filesystem id}, che è per ovviare ad un
-problema di sicurezza che si presneta quando si deve implementare un server
+\textit{effective id} e \textit{filesystem id}, ed è per ovviare ad un
+problema di sicurezza che si presenta quando si deve implementare un server
 NFS. Il server NFS infatti deve poter cambiare l'identificatore con cui accede
 ai file per assumere l'identità del singolo utente remoto, ma se questo viene
 fatto cambiando l'\textit{effective id} o il \textit{real id} il server si
@@ -1636,8 +1636,8 @@ ha temporaneamente assunto l'identit
 quelli originari per quanto riguarda tutti gli altri controlli di accesso.
 
 Le due funzioni usate per cambiare questi identificatori sono \func{setfsuid}
-e \func{setfsgid}, sono specifiche di Linux e non devono essere usate se si
-intendono scrivere programmi portabili; i loro prototipi sono:
+e \func{setfsgid}, ovviamenete sono specifiche di Linux e non devono essere
+usate se si intendono scrivere programmi portabili; i loro prototipi sono:
 
 \begin{functions}
 \headdecl{sys/fsuid.h}
@@ -1653,36 +1653,30 @@ l'unico errore possibile 
 \end{functions}
 
 Queste funzioni hanno successo solo se il processo chiamante ha i privilegi di
-amministratore o se il valore specificato coincide con uno dei
-\textit{real}, \textit{effective} o \textit{saved id}.
-
-
+amministratore o, per gli altri utenti, se il valore specificato coincide con
+uno dei \textit{real}, \textit{effective} o \textit{saved id}.
 
 
 \section{Problematiche di programmazione multitasking}
 \label{sec:proc_multi_prog}
 
 Benché i processi siano strutturati in modo da apparire il più possibile come
-independenti l'uno dall'altro, nella programmazione in un sistema multiutente
+indipendenti l'uno dall'altro, nella programmazione in un sistema multiutente
 occorre tenere conto di tutta una serie di problematiche che normalmente non
 esistono quando si ha a che fare con un sistema in cui viene eseguito un solo
 programma alla volta. 
 
-
 Pur non essendo tutto questo direttamente legato alla modalità specifica in
-cui il multitasking è implementato in un sistema unix-like, avendo affrontato
-la gestione dei processi in questo capitolo, tratteremo queste problematiche,
-e relative precauzioni ed accorgimenti, in questa sezione conclusiva.
+cui il multitasking è implementato in un sistema unix-like, siccome la
+gestione dei processi è stata affrontata in questo capitolo, tratteremo in
+questa sezione conclusiva anche queste problematiche, esaminandone le
+caratteristiche fondamentali e le modalità con cui si affrontano.
 
 
 \subsection{Le funzioni rientranti}
 \label{sec:proc_reentrant}
 
 
-\subsection{I \textit{deadlock}}
-\label{sec:proc_deadlock}
-
-
 \subsection{Le operazioni atomiche}
 \label{sec:proc_atom_oper}
 
@@ -1699,3 +1693,6 @@ fonti di errori molto subdoli, che possono verificarsi solo in condizioni
 particolari e quindi difficilmente riproducibili.
 
 
+\subsection{I \textit{deadlock}}
+\label{sec:proc_deadlock}
+