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}.
 
 (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}
   \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.
 
 \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
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\codesamplewidth}
   \includecodesample{listati/ForkTest.c}
   \end{minipage}
   \normalsize
   \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.
 
 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}
   \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.  
 
 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
   \footnotesize \centering
-  \begin{minipage}[c]{15cm}
+  \begin{minipage}[c]{\textwidth}
     \includestruct{listati/sched_param.c}
   \end{minipage} 
   \normalsize 
     \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
   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}
 \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
 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 è:
   \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
 
 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à
 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
 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},
 
 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
 
 
 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}
 
 \subsection{L'accesso alle porte di I/O}
 \label{sec:process_io_port}