Reindicizzazioni varie e riscrittura totale della sezione sul
[gapil.git] / prochand.tex
index 1638ea8c089f6db0e0194eed48c5bfd41784f5f7..5c6a408dbc9500f8631e116b82753e2f3c8e5f71 100644 (file)
@@ -136,7 +136,7 @@ che è progenitore di tutti gli altri processi.\footnote{in realtà questo non 
 Il kernel mantiene una tabella dei processi attivi, la cosiddetta
 \itindex{process~table} \textit{process table}. Per ciascun processo viene
 mantenuta una voce in questa tabella, costituita da una struttura
 Il kernel mantiene una tabella dei processi attivi, la cosiddetta
 \itindex{process~table} \textit{process table}. Per ciascun processo viene
 mantenuta una voce in questa tabella, costituita da una struttura
-\struct{task\_struct}, che contiene tutte le informazioni rilevanti per quel
+\kstruct{task\_struct}, che contiene tutte le informazioni rilevanti per quel
 processo. Tutte le strutture usate a questo scopo sono dichiarate
 nell'\textit{header file} \file{linux/sched.h}, ed uno schema semplificato,
 che riporta la struttura delle principali informazioni contenute nella
 processo. Tutte le strutture usate a questo scopo sono dichiarate
 nell'\textit{header file} \file{linux/sched.h}, ed uno schema semplificato,
 che riporta la struttura delle principali informazioni contenute nella
@@ -208,7 +208,7 @@ riparte dal numero più basso disponibile a partire da un minimo di
   kernel, con il 2.6.x e la nuova interfaccia per i \itindex{thread}
   \textit{thread} anche il meccanismo di allocazione dei \acr{pid} è stato
   modificato ed il valore massimo è impostabile attraverso il file
   kernel, con il 2.6.x e la nuova interfaccia per i \itindex{thread}
   \textit{thread} anche il meccanismo di allocazione dei \acr{pid} è stato
   modificato ed il valore massimo è impostabile attraverso il file
-  \procfile{/proc/sys/kernel/pid\_max} e di default vale 32768.} che serve a
+  \sysctlfile{kernel/pid\_max} e di default vale 32768.} che serve a
 riservare i \acr{pid} più bassi ai processi eseguiti direttamente dal kernel.
 Per questo motivo, come visto in sez.~\ref{sec:proc_hierarchy}, il processo di
 avvio (\cmd{init}) ha sempre il \acr{pid} uguale a uno.
 riservare i \acr{pid} più bassi ai processi eseguiti direttamente dal kernel.
 Per questo motivo, come visto in sez.~\ref{sec:proc_hierarchy}, il processo di
 avvio (\cmd{init}) ha sempre il \acr{pid} uguale a uno.
@@ -1137,38 +1137,43 @@ anomala), uno per indicare se è stato generato un \itindex{core~dump}
     \textbf{Macro} & \textbf{Descrizione}\\
     \hline
     \hline
     \textbf{Macro} & \textbf{Descrizione}\\
     \hline
     \hline
-    \macro{WIFEXITED(s)}   & Condizione vera (valore non nullo) per un processo
-                             figlio che sia terminato normalmente. \\
-    \macro{WEXITSTATUS(s)} & Restituisce gli otto bit meno significativi dello
-                             stato di uscita del processo (passato attraverso
-                             \func{\_exit}, \func{exit} o come valore di
-                             ritorno di \func{main}); può essere valutata solo
-                             se \val{WIFEXITED} ha restituito un valore non
-                             nullo.\\ 
-    \macro{WIFSIGNALED(s)} & Condizione vera se il processo figlio è terminato
-                             in maniera anomala a causa di un segnale che non
-                             è stato catturato (vedi
-                             sez.~\ref{sec:sig_notification}).\\ 
-    \macro{WTERMSIG(s)}    & Restituisce il numero del segnale che ha causato
-                             la terminazione anomala del processo; può essere
-                             valutata solo se \val{WIFSIGNALED} ha restituito
-                             un valore non nullo.\\ 
-    \macro{WCOREDUMP(s)}   & Vera se il processo terminato ha generato un
-                             file di \itindex{core~dump} \textit{core
-                               dump}; può essere valutata solo se
-                             \val{WIFSIGNALED} ha restituito un valore non
-                             nullo.\footnotemark \\
-    \macro{WIFSTOPPED(s)}  & Vera se il processo che ha causato il ritorno di
-                             \func{waitpid} è bloccato; l'uso è possibile solo
-                             con \func{waitpid} avendo specificato l'opzione
-                             \const{WUNTRACED}.\\
-    \macro{WSTOPSIG(s)}    & Restituisce il numero del segnale che ha bloccato
-                             il processo; può essere valutata solo se
-                             \val{WIFSTOPPED} ha restituito un valore non
-                             nullo. \\ 
-    \macro{WIFCONTINUED(s)}& Vera se il processo che ha causato il ritorno è
-                             stato riavviato da un \signal{SIGCONT}
-                             (disponibile solo a partire dal kernel 2.6.10).\\
+    \macro{WIFEXITED}\texttt{(s)}   & Condizione vera (valore non nullo) per
+                                      un processo figlio che sia terminato
+                                      normalmente. \\ 
+    \macro{WEXITSTATUS}\texttt{(s)} & Restituisce gli otto bit meno
+                                      significativi dello stato di uscita del
+                                      processo (passato attraverso
+                                      \func{\_exit}, \func{exit} o come valore
+                                      di ritorno di \func{main}); può essere
+                                      valutata solo se \val{WIFEXITED} ha
+                                      restituito un valore non nullo.\\ 
+    \macro{WIFSIGNALED}\texttt{(s)} & Condizione vera se il processo figlio è
+                                      terminato in maniera anomala a causa di
+                                      un segnale che non è stato catturato
+                                      (vedi sez.~\ref{sec:sig_notification}).\\ 
+    \macro{WTERMSIG}\texttt{(s)}    & Restituisce il numero del segnale che ha
+                                      causato la terminazione anomala del
+                                      processo; può essere valutata solo se
+                                      \val{WIFSIGNALED} ha restituito un
+                                      valore non nullo.\\
+    \macro{WCOREDUMP}\texttt{(s)}   & Vera se il processo terminato ha
+                                      generato un file di \itindex{core~dump}
+                                      \textit{core dump}; può essere valutata
+                                      solo se \val{WIFSIGNALED} ha restituito
+                                      un valore non nullo.\footnotemark \\
+    \macro{WIFSTOPPED}\texttt{(s)}  & Vera se il processo che ha causato il
+                                      ritorno di \func{waitpid} è bloccato;
+                                      l'uso è possibile solo con
+                                      \func{waitpid} avendo specificato
+                                      l'opzione \const{WUNTRACED}.\\
+    \macro{WSTOPSIG}\texttt{(s)}    & Restituisce il numero del segnale che ha
+                                      bloccato il processo; può essere
+                                      valutata solo se \val{WIFSTOPPED} ha
+                                      restituito un valore non nullo. \\ 
+    \macro{WIFCONTINUED}\texttt{(s)}& Vera se il processo che ha causato il
+                                      ritorno è stato riavviato da un
+                                      \signal{SIGCONT} (disponibile solo a
+                                      partire dal kernel 2.6.10).\\
     \hline
   \end{tabular}
   \caption{Descrizione delle varie macro di preprocessore utilizzabili per 
     \hline
   \end{tabular}
   \caption{Descrizione delle varie macro di preprocessore utilizzabili per 
@@ -1437,7 +1442,7 @@ argomenti all'esecuzione del nuovo programma. I loro prototipi sono:
 \fdecl{int execvp(const char *file, char *const argv[])}
 \fdesc{Eseguono un programma.} 
 }
 \fdecl{int execvp(const char *file, char *const argv[])}
 \fdesc{Eseguono un programma.} 
 }
-{Le funzioni ritorna solo in caso di errore, restituendo $-1$, i codici di
+{Le funzioni ritornano solo in caso di errore, restituendo $-1$, i codici di
   errore sono gli stessi di \func{execve}.
 }
 \end{funcproto}
   errore sono gli stessi di \func{execve}.
 }
 \end{funcproto}
@@ -1654,7 +1659,7 @@ Infine nel caso il programma che si vuole eseguire sia uno script e non un
 binario, questo deve essere un file di testo che deve iniziare con una linea
 nella forma:
 \begin{Example}
 binario, questo deve essere un file di testo che deve iniziare con una linea
 nella forma:
 \begin{Example}
-\#!/path/to/interpreter [argomenti]
+#!/path/to/interpreter [argomenti]
 \end{Example}
 dove l'interprete indicato deve essere un eseguibile binario e non un altro
 script, che verrà chiamato come se si fosse eseguito il comando
 \end{Example}
 dove l'interprete indicato deve essere un eseguibile binario e non un altro
 script, che verrà chiamato come se si fosse eseguito il comando
@@ -2862,7 +2867,7 @@ stato \textit{runnable} viene sempre inserito in coda alla lista. Se la
 politica scelta è \const{SCHED\_FIFO} quando il processo viene eseguito viene
 automaticamente rimesso in coda alla lista, e la sua esecuzione continua
 fintanto che non viene bloccato da una richiesta di I/O, o non rilascia
 politica scelta è \const{SCHED\_FIFO} quando il processo viene eseguito viene
 automaticamente rimesso in coda alla lista, e la sua esecuzione continua
 fintanto che non viene bloccato da una richiesta di I/O, o non rilascia
-volontariamente la CPU (in tal caso, tornando nello stato \textbf{Runnable}
+volontariamente la CPU (in tal caso, tornando nello stato \textit{runnable}
 sarà reinserito in coda alla lista); l'esecuzione viene ripresa subito solo
 nel caso che esso sia stato interrotto da un processo a priorità più alta.
 
 sarà reinserito in coda alla lista); l'esecuzione viene ripresa subito solo
 nel caso che esso sia stato interrotto da un processo a priorità più alta.
 
@@ -3020,7 +3025,7 @@ l'introduzione del \textit{Completely Fair Scheduler} questo comportamento è
 cambiato ed un processo che chiama la funzione viene inserito nella lista dei
 processi inattivo, con un tempo molto maggiore.\footnote{è comunque possibile
   ripristinare un comportamento analogo al precedente scrivendo il valore 1
 cambiato ed un processo che chiama la funzione viene inserito nella lista dei
 processi inattivo, con un tempo molto maggiore.\footnote{è comunque possibile
   ripristinare un comportamento analogo al precedente scrivendo il valore 1
-  nel file \texttt{/proc/sys/kernel/sched\_compat\_yield}.}
+  nel file \sysctlfile{kernel/sched\_compat\_yield}.}
 
 L'uso delle funzione nella programmazione ordinaria può essere utile e
 migliorare le prestazioni generali del sistema quando si è appena rilasciata
 
 L'uso delle funzione nella programmazione ordinaria può essere utile e
 migliorare le prestazioni generali del sistema quando si è appena rilasciata
@@ -3167,12 +3172,12 @@ permette di identificare un insieme di processori. Il dato è normalmente una
 maschera binaria: nei casi più comuni potrebbe bastare un intero a 32 bit, in
 cui ogni bit corrisponde ad un processore, ma oggi esistono architetture in
 cui questo numero può non essere sufficiente, e per questo è stato creato
 maschera binaria: nei casi più comuni potrebbe bastare un intero a 32 bit, in
 cui ogni bit corrisponde ad un processore, ma oggi esistono architetture in
 cui questo numero può non essere sufficiente, e per questo è stato creato
-questo \itindex{tipo!opaco} tipo opaco e una interfaccia di gestione che
+questo \index{tipo!opaco} tipo opaco e una interfaccia di gestione che
 permette di usare a basso livello un tipo di dato qualunque rendendosi
 indipendenti dal numero di bit e dalla loro disposizione.  Per questo le
 funzioni richiedono anche che oltre all'insieme di processori si indichi anche
 permette di usare a basso livello un tipo di dato qualunque rendendosi
 indipendenti dal numero di bit e dalla loro disposizione.  Per questo le
 funzioni richiedono anche che oltre all'insieme di processori si indichi anche
-la dimensione dello stesso con l'argomento \param{setsize}, per il quale,
-se non si usa l'allocazione dinamica che vedremo a breve, ed è in genere
+la dimensione dello stesso con l'argomento \param{setsize}, per il quale, se
+non si usa l'allocazione dinamica che vedremo a breve, ed è in genere
 sufficiente passare il valore \code{sizeof(cpu\_set\_t)}.
 
 L'interfaccia di gestione degli insiemi di processori, oltre alla definizione
 sufficiente passare il valore \code{sizeof(cpu\_set\_t)}.
 
 L'interfaccia di gestione degli insiemi di processori, oltre alla definizione
@@ -3842,7 +3847,7 @@ Introdotta a partire dal kernel 2.4.21, solo su PowerPC.
 
   Il comportamento di default prevede che per tutti i processi si applichi la
   politica generale di sistema definita nel file
 
   Il comportamento di default prevede che per tutti i processi si applichi la
   politica generale di sistema definita nel file
-  \procfile{/proc/sys/vm/memory\_failure\_early\_kill}, ma specificando
+  \sysctlfile{vm/memory\_failure\_early\_kill}, ma specificando
   per \param{arg2} il valore \const{PR\_MCE\_KILL\_SET} è possibile impostare
   con il contenuto di \param{arg3} una politica specifica del processo
   chiamante. Si può tornare alla politica di default del sistema utilizzando
   per \param{arg2} il valore \const{PR\_MCE\_KILL\_SET} è possibile impostare
   con il contenuto di \param{arg3} una politica specifica del processo
   chiamante. Si può tornare alla politica di default del sistema utilizzando
@@ -3908,9 +3913,10 @@ indicare la unità di esecuzione generica messa a disposizione del kernel che
 Oltre a questo la funzione consente, ad uso delle nuove funzionalità di
 virtualizzazione dei processi, di creare nuovi \textit{namespace} per una
 serie di proprietà generali dei processi (come l'elenco dei PID, l'albero dei
 Oltre a questo la funzione consente, ad uso delle nuove funzionalità di
 virtualizzazione dei processi, di creare nuovi \textit{namespace} per una
 serie di proprietà generali dei processi (come l'elenco dei PID, l'albero dei
-file, i \textit{mount point}, la rete, ecc.), che consentono di creare gruppi
-di processi che vivono in una sorta di spazio separato dagli altri, che
-costituisce poi quello che viene chiamato un \textit{container}.
+file, i \itindex{mount~point} \textit{mount point}, la rete, ecc.), che
+consentono di creare gruppi di processi che vivono in una sorta di spazio
+separato dagli altri, che costituisce poi quello che viene chiamato un
+\textit{container}.
 
 La \textit{system call} richiede soltanto due argomenti: il
 primo, \param{flags}, consente di controllare le modalità di creazione del
 
 La \textit{system call} richiede soltanto due argomenti: il
 primo, \param{flags}, consente di controllare le modalità di creazione del