Risistemata introduzione e login
[gapil.git] / prochand.tex
index 90b1e2ca6ffb436a615aa6450afe31bf30127f8c..ef75e52dd8c52b2235666884701029c885a738a7 100644 (file)
@@ -695,7 +695,7 @@ eseguite alla chiusura di un processo 
 \item se la conclusione di un processo rende orfano un \textit{process
     group} ciascun membro del gruppo viene bloccato, e poi gli vengono
   inviati in successione i segnali \macro{SIGHUP} e \macro{SIGCONT}
-  (vedi \secref{sec:sess_xxx}).
+  (vedi \secref{sec:sess_ctrl_term}).
 \end{itemize*}
 
 Oltre queste operazioni è però necessario poter disporre di un meccanismo
@@ -767,15 +767,15 @@ informazioni riguardo ai processi che sta terminando.
 
 Questo viene fatto mantenendo attiva la voce nella tabella dei processi, e
 memorizzando alcuni dati essenziali, come il \acr{pid}, i tempi di CPU usati
-dal processo (vedi \secref{sec:sys_unix_time}) e lo stato di
-terminazione\footnote{NdA verificare esattamente cosa c'è!}, mentre la memoria
-in uso ed i file aperti vengono rilasciati immediatamente. I processi che sono
-terminati, ma il cui stato di terminazione non è stato ancora ricevuto dal
-padre sono chiamati \textit{zombie}, essi restano presenti nella tabella dei
-processi ed in genere possono essere identificati dall'output di \cmd{ps} per
-la presenza di una \texttt{Z} nella colonna che ne indica lo stato. Quando il
-padre effettuerà la lettura dello stato di uscita anche questa informazione,
-non più necessaria, verrà scartata e la terminazione potrà dirsi completamente
+dal processo (vedi \secref{sec:sys_unix_time}) e lo stato di terminazione,
+mentre la memoria in uso ed i file aperti vengono rilasciati immediatamente. I
+processi che sono terminati, ma il cui stato di terminazione non è stato
+ancora ricevuto dal padre sono chiamati \textit{zombie}, essi restano presenti
+nella tabella dei processi ed in genere possono essere identificati
+dall'output di \cmd{ps} per la presenza di una \texttt{Z} nella colonna che ne
+indica lo stato (vedi \tabref{tab:proc_proc_states}). Quando il padre
+effettuerà la lettura dello stato di uscita anche questa informazione, non più
+necessaria, verrà scartata e la terminazione potrà dirsi completamente
 conclusa.
 
 Possiamo utilizzare il nostro programma di prova per analizzare anche questa
@@ -907,7 +907,7 @@ specchietto riportato in \tabref{tab:proc_waidpid_pid}:
     \hline
     \hline
     $<-1$& -- & attende per un figlio il cui \textit{process group} (vedi
-    \ref{sec:sess_proc_group}) è uguale al
+    \secref{sec:sess_proc_group}) è uguale al
     valore assoluto di \var{pid}. \\
     $-1$ & \macro{WAIT\_ANY} & attende per un figlio qualsiasi, usata in
     questa maniera è equivalente a \func{wait}.\\ 
@@ -925,12 +925,16 @@ specchietto riportato in \tabref{tab:proc_waidpid_pid}:
 Il comportamento di \func{waitpid} può inoltre essere modificato passando
 delle opportune opzioni tramite l'argomento \param{option}. I valori possibili
 sono il già citato \macro{WNOHANG}, che previene il blocco della funzione
-quando il processo figlio non è terminato, e \macro{WUNTRACED} (usata per il
-controllo di sessione, trattato in \secref{sec:sess_job_control}) che fa
-ritornare la funzione anche per i processi figli che sono bloccati ed il cui
-stato non è stato ancora riportato al padre. Il valore dell'opzione deve
-essere specificato come maschera binaria ottenuta con l'OR delle suddette
-costanti con zero.
+quando il processo figlio non è terminato, e \macro{WUNTRACED}. Quest'ultimo
+viene generalmente usato per il controllo di sessione, (trattato in
+\secref{sec:sess_job_control}) in quanto permette di identificare i processi
+bloccati. La funzione infatti in tal caso ritorna, restituendone il \acr{pid},
+se c'è un processo figlio che è entrato in stato di sleep (vedi
+\tabref{tab:proc_proc_states}) di cui non si è ancora letto lo stato (con
+questa stessa opzione). Il valore dell'opzione deve essere specificato come
+maschera binaria ottenuta con l'OR delle suddette costanti con zero. In Linux
+sono previste altre opzioni non standard relative al comportamento con i
+thread, che saranno trattate in \secref{sec:thread_xxx}.
 
 La terminazione di un processo figlio è chiaramente un evento asincrono
 rispetto all'esecuzione di un programma e può avvenire in un qualunque
@@ -1184,7 +1188,7 @@ indicato dal parametro \var{path}, che viene interpretato come il
 
 \begin{figure}[htb]
   \centering
-  \includegraphics[width=13cm]{img/exec_rel}
+  \includegraphics[width=15cm]{img/exec_rel}
   \caption{La interrelazione fra le sei funzioni della famiglia \func{exec}.}
   \label{fig:proc_exec_relat}
 \end{figure}
@@ -1206,7 +1210,7 @@ la lista completa 
     supplementari} (vedi \secref{sec:proc_access_id}).
 \item il \textit{session id} (\acr{sid}) ed il \textit{process groupid}
   (\acr{pgid}), vedi \secref{sec:sess_proc_group}.
-\item il terminale di controllo (vedi \secref{sec:sess_xxx}).
+\item il terminale di controllo (vedi \secref{sec:sess_ctrl_term}).
 \item il tempo restante ad un allarme (vedi \secref{sec:sig_alarm_abort}).
 \item la directory radice e la directory di lavoro corrente (vedi
   \secref{sec:file_work_dir}).
@@ -1287,8 +1291,12 @@ problematiche connesse ad una gestione accorta dei privilegi.
 Come accennato in \secref{sec:intro_multiuser} il modello base\footnote{in
   realtà già esistono estensioni di questo modello base, che lo rendono più
   flessibile e controllabile, come le \textit{capabilities}, le ACL per i file
-  o il \textit{Mandatory Access Control} di SELinux.} di sicurezza di un
-sistema unix-like è fondato sui concetti di utente e gruppo, e sulla
+  o il \textit{Mandatory Access Control} di SELinux; inoltre basandosi sul
+  lavoro effettuato con SELinux, a partire dal kernel 2.5.x, è iniziato lo
+  sviluppo di una infrastruttura di sicurezza, il \textit{Linux Security
+    Modules}, ol LSM, in grado di fornire diversi agganci a livello del kernel
+  per modularizzare tutti i possibili controlli di accesso.} di sicurezza di
+un sistema unix-like è fondato sui concetti di utente e gruppo, e sulla
 separazione fra l'amministratore (\textsl{root}, detto spesso anche
 \textit{superuser}) che non è sottoposto a restrizioni, ed il resto degli
 utenti, per i quali invece vengono effettuati i vari controlli di accesso.