Correzioni varie piu una nuova figura e il nuovo capitolo che credevo di
[gapil.git] / prochand.tex
index da3f662021d8f128c993022dc049309a62bbe29a..699b0407c3ac4a6d16be73e283cb9fe130a8da4b 100644 (file)
@@ -187,7 +187,6 @@ Tutti i processi inoltre memorizzano anche il \acr{pid} del genitore da cui
 sono stati creati, questo viene chiamato in genere \acr{ppid} (da
 \textit{parent process id}).  Questi due identificativi possono essere
 ottenuti da programma usando le funzioni:
-
 \begin{functions}
 \headdecl{sys/types.h}
 \headdecl{unistd.h}
@@ -231,7 +230,6 @@ processi: come si 
 attraverso l'uso di questa funzione, essa quindi riveste un ruolo centrale
 tutte le volte che si devono scrivere programmi che usano il multitasking.  Il
 prototipo della funzione è:
-
 \begin{functions}
   \headdecl{sys/types.h} 
   \headdecl{unistd.h} 
@@ -770,7 +768,6 @@ conclusione dei vari processi figli onde evitare di riempire di
 \textit{zombie} la tabella dei processi; le funzioni deputate a questo compito
 sono sostanzialmente due, \func{wait} e \func{waitpid}. La prima, il cui
 prototipo è:
-
 \begin{functions}
 \headdecl{sys/types.h}
 \headdecl{sys/wait.h}
@@ -806,7 +803,6 @@ che effettua lo stesso servizio, ma dispone di una serie di funzionalit
 ampie, legate anche al controllo di sessione.  Dato che è possibile ottenere
 lo stesso comportamento di \func{wait} si consiglia di utilizzare sempre
 questa funzione; il suo prototipo è:
-
 \begin{functions}
 \headdecl{sys/types.h}
 \headdecl{sys/wait.h}
@@ -916,7 +912,6 @@ certezza che la chiamata a \func{wait} non si bloccher
   \label{tab:proc_status_macro}
 \end{table}
 
-
 Entrambe le funzioni restituiscono lo stato di terminazione del processo
 tramite il puntatore \var{status} (se non interessa memorizzare lo stato si
 può passare un puntatore nullo). Il valore restituito da entrambe le funzioni
@@ -947,7 +942,6 @@ lettura dello stato di terminazione di un processo, analoghe a \func{wait} e
 kernel può restituire al processo padre ulteriori informazioni sulle risorse
 usate dal processo terminato e dai vari figli.  Queste funzioni, che diventano
 accessibili definendo la costante \macro{\_USE\_BSD}, sono:
-
 \begin{functions}
   \headdecl{sys/times.h} 
   \headdecl{sys/types.h} 
@@ -1020,7 +1014,6 @@ Ci sono sei diverse versioni di \func{exec} (per questo la si 
 famiglia di funzioni) che possono essere usate per questo compito, che in
 realtà (come mostrato in \figref{fig:proc_exec_relat}), costituiscono un
 front-end a \func{execve}. Il prototipo  di quest'ultima è:
-
 \begin{prototype}{unistd.h}
 {int execve(const char * filename, char * const argv [], char * const envp[])}
   
@@ -1057,7 +1050,6 @@ front-end a \func{execve}. Il prototipo  di quest'ultima 
 Le altre funzioni della famiglia servono per fornire all'utente una serie
 possibile di diverse interfacce per la creazione di un nuovo processo. I loro
 prototipi sono:
-
 \begin{functions}
 \headdecl{unistd.h}
 \funcdecl{int execl(const char *path, const char *arg, ...)} 
@@ -1277,7 +1269,6 @@ utente per un limitato insieme di operazioni. Per questo motivo in generale
 tutti gli unix prevedono che i processi abbiano almeno due gruppi di
 identificatori, chiamati rispettivamente \textit{real} ed \textit{effective}.
 
-
 \begin{table}[htb]
   \footnotesize
   \centering
@@ -1338,7 +1329,6 @@ un'altro (o dell'amministratore).
 Come nel caso del \acr{pid} e del \acr{ppid} tutti questi identificatori
 possono essere letti dal processo attraverso delle opportune funzioni, i cui
 prototipi sono i seguenti:
-
 \begin{functions}
   \headdecl{unistd.h}
   \headdecl{sys/types.h}
@@ -1406,7 +1396,6 @@ di appartenenza) ad un processo sono rispettivamente \func{setuid} e
 \func{setgid}; come accennato in \secref{sec:proc_user_group} in Linux esse
 seguono la semantica POSIX che prevede l'esistenza di \textit{saved user id} e
 \textit{saved group id}; i loro prototipi sono:
-
 \begin{functions}
 \headdecl{unistd.h}
 \headdecl{sys/types.h}
@@ -1506,7 +1495,6 @@ Queste due funzioni derivano da BSD che non supportando\footnote{almeno fino
   alla versione 4.3+BSD TODO, verificare e aggiornare la nota} i \textit{saved
   id} le usava per poter scambiare fra di loro effective e real id. I
 prototipi sono:
-
 \begin{functions}
 \headdecl{unistd.h}
 \headdecl{sys/types.h}
@@ -1561,7 +1549,6 @@ sempre settato al valore dell'\textit{effective id}.
 Queste due funzioni sono una estensione introdotta in Linux dal kernel 2.1.44,
 e permettono un completo controllo su tutti gli identificatori (\textit{real},
 \textit{effective} e \textit{saved}), i prototipi sono:
-
 \begin{functions}
 \headdecl{unistd.h}
 \headdecl{sys/types.h}
@@ -1594,7 +1581,6 @@ l'identificatore corrispondente.
 Queste funzioni sono un'estensione allo standard POSIX.1 (ma sono comunque
 supportate dalla maggior parte degli unix) e usate per cambiare gli
 \textit{effective id}; i loro prototipi sono:
-
 \begin{functions}
 \headdecl{unistd.h}
 \headdecl{sys/types.h}
@@ -1640,7 +1626,6 @@ 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}, ovviamente 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}