Ulteriori revisioni, finita l'introduzione con vari spostamenti e
[gapil.git] / prochand.tex
index 3738800c138f61869ccc3870b0342f11263857f0..7e882abcd86f9ebdc60a8a247c572a1ebe8160e0 100644 (file)
@@ -136,9 +136,8 @@ struttura delle principali informazioni contenute nella \struct{task\_struct}
 (che in seguito incontreremo a più riprese), è mostrato in
 fig.~\ref{fig:proc_task_struct}.
 
-\begin{figure}[htb]
-  \centering
-  \includegraphics[width=14cm]{img/task_struct}
+\begin{figure}[!htb]
+  \centering \includegraphics[width=14cm]{img/task_struct}
   \caption{Schema semplificato dell'architettura delle strutture usate dal
     kernel nella gestione dei processi.}
   \label{fig:proc_task_struct}
@@ -372,9 +371,9 @@ sempre un solo padre (il cui \acr{pid} può sempre essere ottenuto con
 \func{getppid}, vedi sez.~\ref{sec:proc_pid}) per cui si usa il valore nullo,
 che non è il \acr{pid} di nessun processo.
 
-\begin{figure}[!htb]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
   \includecodesample{listati/ForkTest.c}
   \end{minipage}
   \normalsize
@@ -1456,9 +1455,8 @@ Le altre quattro funzioni si limitano invece a cercare di eseguire il file
 indicato dall'argomento \param{path}, che viene interpretato come il
 \itindex{pathname} \textit{pathname} del programma.
 
-\begin{figure}[htb]
-  \centering
-  \includegraphics[width=12cm]{img/exec_rel}
+\begin{figure}[!htb]
+  \centering \includegraphics[width=12cm]{img/exec_rel}
   \caption{La interrelazione fra le sei funzioni della famiglia \func{exec}.}
   \label{fig:proc_exec_relat}
 \end{figure}
@@ -2694,9 +2692,9 @@ priorità statica da assegnare al processo; lo standard prevede che questo
 debba essere assegnato all'interno di un intervallo fra un massimo ed un
 minimo che nel caso di Linux sono rispettivamente 1 e 99.  
 
-\begin{figure}[!bht]
+\begin{figure}[!htbp]
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\textwidth}
     \includestruct{listati/sched_param.c}
   \end{minipage} 
   \normalsize 
@@ -3110,7 +3108,7 @@ di I/O.\footnote{se usate in corrispondenza ad uno scheduler diverso il loro
   utilizzo non avrà alcun effetto.} Dato che non esiste una interfaccia
 diretta nelle \acr{glibc} per queste due funzioni occorrerà invocarle tramite
 la funzione \func{syscall} (come illustrato in
-sez.~\ref{sec:intro_syscall}). Le due funzioni sono \funcd{ioprio\_get} ed
+sez.~\ref{sec:proc_syscall}). Le due funzioni sono \funcd{ioprio\_get} ed
 \funcd{ioprio\_set}; i rispettivi prototipi sono:
 \begin{functions}
   \headdecl{linux/ioprio.h}
@@ -3373,7 +3371,7 @@ Dato che l'uso principale della nuova \textit{system call} è quello relativo
 alla creazione dei \textit{thread}, le \acr{glibc} definiscono una funzione di
 libreria con una sintassi diversa, orientata a questo scopo, e la
 \textit{system call} resta accessibile solo se invocata esplicitamente come
-visto in sez.~\ref{sec:intro_syscall}.\footnote{ed inoltre per questa
+visto in sez.~\ref{sec:proc_syscall}.\footnote{ed inoltre per questa
   \textit{system call} non è disponibile la chiamata veloce con
   \texttt{vsyscall}.} La funzione di libreria si chiama semplicemente
 \funcd{clone} ed il suo prototipo è:
@@ -3404,7 +3402,7 @@ visto in sez.~\ref{sec:intro_syscall}.\footnote{ed inoltre per questa
 
 La funzione prende come primo argomento il puntatore alla funzione che verrà
 messa in esecuzione nel nuovo processo, che può avere un unico argomento di
-tipo puntatore a \ctype{void}, il cui valore viene passato dal terzo
+tipo puntatore a \ctyp{void}, il cui valore viene passato dal terzo
 argomento \param{arg}; per quanto il precedente prototipo possa intimidire
 nella sua espressione, in realtà l'uso è molto semplice basterà definire una
 qualunque funzione \param{fn} del tipo indicato, e \code{fn(arg)} sarà
@@ -3416,7 +3414,7 @@ di ritorno della funzione (o quello specificato con \func{exit}) verrà
 utilizzato come stato di uscita della funzione.
 
 I tre argomenti \param{ptid}, \param{tls} e \param{ctid} sono opzionali e sono
-presenti solo a partire dal kernel 2.6. 
+presenti solo a partire dal kernel 2.6.
 
 Il comportamento di \func{clone}, che si riflette sulle caratteristiche del
 nuovo processo da essa creato, è controllato dall'argomento \param{flags},
@@ -3730,6 +3728,9 @@ predefinite del seguente elenco, che illustra quelle disponibili al momento:
 
 Da fare
 
+% TODO: trattare PTRACE_SEIZE, aggiunta con il kernel 3.1
+
+
 \subsection{L'accesso alle porte di I/O}
 \label{sec:process_io_port}