Corretta figura e sistemata la footnote su chi parte prima dopo una fork
[gapil.git] / prochand.tex
index 579ab48afaf4eba943a7ce7bbb16c3a7d7853a09..70d7eb1d2e90ce7d0fd54c5b4f30b6eb6efb4483 100644 (file)
@@ -109,9 +109,10 @@ Dato che tutti i processi attivi nel sistema sono comunque generati da
   kernel, (come \cmd{keventd}, \cmd{kswapd}, etc.)} si possono classificare i
 processi con la relazione padre/figlio in una organizzazione gerarchica ad
 albero, in maniera analoga a come i file sono organizzati in un albero di
   kernel, (come \cmd{keventd}, \cmd{kswapd}, etc.)} si possono classificare i
 processi con la relazione padre/figlio in una organizzazione gerarchica ad
 albero, in maniera analoga a come i file sono organizzati in un albero di
-directory (si veda \secref{sec:file_file_struct}); in \curfig\ si è mostrato il
-risultato del comando \cmd{pstree} che permette di mostrare questa struttura,
-alla cui base c'è \cmd{init} che è progenitore di tutti gli altri processi.
+directory (si veda \secref{sec:file_organization}); in \curfig\ si è mostrato
+il risultato del comando \cmd{pstree} che permette di mostrare questa
+struttura, alla cui base c'è \cmd{init} che è progenitore di tutti gli altri
+processi.
 
 
 Il kernel mantiene una tabella dei processi attivi, la cosiddetta
 
 
 Il kernel mantiene una tabella dei processi attivi, la cosiddetta
@@ -436,15 +437,16 @@ Go to next child
 
 Esaminiamo questo risultato: una prima conclusione che si può trarre è non si
 può dire quale processo fra il padre ed il figlio venga eseguito per
 
 Esaminiamo questo risultato: una prima conclusione che si può trarre è non si
 può dire quale processo fra il padre ed il figlio venga eseguito per
-primo\footnote{anche se nel kernel 2.4.x era stato introdotto un meccanismo
-  che metteva in esecuzione sempre il xxx per primo (TODO recuperare le
-  informazioni esatte)} dopo la chiamata a \func{fork}; dall'esempio si può
-notare infatti come nei primi due cicli sia stato eseguito per primo il padre
-(con la stampa del \acr{pid} del nuovo processo) per poi passare
-all'esecuzione del figlio (completata con i due avvisi di esecuzione ed
-uscita), e tornare all'esecuzione del padre (con la stampa del passaggio al
-ciclo successivo), mentre la terza volta è stato prima eseguito il figlio
-(fino alla conclusione) e poi il padre.
+primo\footnote{a partire dal kernel 2.5.2-pre10 è stato introdotto il nuovo
+  scheduler di Ingo Molnar che esegue sempre per primo il figlio; per
+  mantenere la portabilità è opportuno non fare comunque affidamento su questo
+  comportamento} dopo la chiamata a \func{fork}; dall'esempio si può notare
+infatti come nei primi due cicli sia stato eseguito per primo il padre (con la
+stampa del \acr{pid} del nuovo processo) per poi passare all'esecuzione del
+figlio (completata con i due avvisi di esecuzione ed uscita), e tornare
+all'esecuzione del padre (con la stampa del passaggio al ciclo successivo),
+mentre la terza volta è stato prima eseguito il figlio (fino alla conclusione)
+e poi il padre.
 
 In generale l'ordine di esecuzione dipenderà, oltre che dall'algoritmo di
 scheduling usato dal kernel, dalla particolare situazione in si trova la
 
 In generale l'ordine di esecuzione dipenderà, oltre che dall'algoritmo di
 scheduling usato dal kernel, dalla particolare situazione in si trova la
@@ -584,12 +586,10 @@ comune dopo l'esecuzione di una \func{fork} 
 \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} ed i \textit{supplementary group id} (vedi
 \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} ed i \textit{supplementary group id} (vedi
-  \secref{sec:proc_user_group}).
+  \secref{sec:proc_access_id}).
 \item gli identificatori per il controllo di sessione: il \textit{process
     group id} e il \textit{session id} ed il terminale di controllo (vedi
   \secref{sec:sess_xxx} e \secref{sec:sess_xxx}).
 \item gli identificatori per il controllo di sessione: il \textit{process
     group id} e il \textit{session id} ed il terminale di controllo (vedi
   \secref{sec:sess_xxx} e \secref{sec:sess_xxx}).
-\item gli identificatori per il controllo di accesso (vedi
-  \secref{sec:proc_user_group}).
 \item la directory di lavoro e la directory radice (vedi
   \secref{sec:file_work_dir} e \secref{sec:file_chroot}).
 \item la maschera dei permessi di creazione (vedi \secref{sec:file_umask}).
 \item la directory di lavoro e la directory radice (vedi
   \secref{sec:file_work_dir} e \secref{sec:file_chroot}).
 \item la maschera dei permessi di creazione (vedi \secref{sec:file_umask}).
@@ -1183,8 +1183,8 @@ la lista completa 
 \item il \textit{process id} (\acr{pid}) ed il \textit{parent process id}
   (\acr{ppid}).
 \item il \textit{real user id} ed il \textit{real group id} (vedi
 \item il \textit{process id} (\acr{pid}) ed il \textit{parent process id}
   (\acr{ppid}).
 \item il \textit{real user id} ed il \textit{real group id} (vedi
-  \secref{sec:proc_user_group}).
-\item i \textit{supplementary group id} (vedi \secref{sec:proc_user_group}).
+  \secref{sec:proc_access_id}).
+\item i \textit{supplementary group id} (vedi \secref{sec:proc_access_id}).
 \item il \textit{session id} ed il \textit{process group id} (vedi
   \secref{sec:sess_xxx}).
 \item il terminale di controllo (vedi \secref{sec:sess_xxx}).
 \item il \textit{session id} ed il \textit{process group id} (vedi
   \secref{sec:sess_xxx}).
 \item il terminale di controllo (vedi \secref{sec:sess_xxx}).
@@ -1261,8 +1261,8 @@ nuovi processi, e le varie funzioni per la loro manipolazione diretta e tutte
 le problematiche connesse ad una gestione accorta dei privilegi.
 
 
 le problematiche connesse ad una gestione accorta dei privilegi.
 
 
-\subsection{Utente e gruppo di un processo}
-\label{sec:proc_user_group}
+\subsection{Gli identificatori del controllo di accesso}
+\label{sec:proc_access_id}
 
 Come accennato in \secref{sec:intro_multiuser} il modello base\footnote{in
   realtà già esistono estensioni di questo modello base, che lo rendono più
 
 Come accennato in \secref{sec:intro_multiuser} il modello base\footnote{in
   realtà già esistono estensioni di questo modello base, che lo rendono più
@@ -1424,7 +1424,7 @@ di utente e gruppo associati dal kernel ad ogni processo, 
 
 Le due funzioni che vengono usate per cambiare identità (cioè utente e gruppo
 di appartenenza) ad un processo sono rispettivamente \func{setuid} e
 
 Le due funzioni che vengono usate per cambiare identità (cioè utente e gruppo
 di appartenenza) ad un processo sono rispettivamente \func{setuid} e
-\func{setgid}; come accennato in \secref{sec:proc_user_group} in Linux esse
+\func{setgid}; come accennato in \secref{sec:proc_access_id} in Linux esse
 seguono la semantica POSIX che prevede l'esistenza del \textit{saved user id}
 e del \textit{saved group id}; i loro prototipi sono:
 \begin{functions}
 seguono la semantica POSIX che prevede l'esistenza del \textit{saved user id}
 e del \textit{saved group id}; i loro prototipi sono:
 \begin{functions}
@@ -1664,7 +1664,7 @@ specificati come puntatori (
 
 Queste funzioni sono usate per settare gli identificatori usati da Linux per
 il controllo dell'accesso ai file. Come già accennato in
 
 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} in Linux è definito questo ulteriore gruppo di
+\secref{sec:proc_access_id} 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}.
 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}.
@@ -1954,3 +1954,8 @@ varie funzioni di libreria, che sono identificate aggiungendo il suffisso
 \code{\_r} al nome della versione normale.
 
 
 \code{\_r} al nome della versione normale.
 
 
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: "gapil"
+%%% End: