Rimasti indietro
[gapil.git] / prochand.tex
index cb4c1158992133a4a47229ec592f349e20f79fda..76b801cf579002a154d005149b8a08a0ed2d7dce 100644 (file)
@@ -668,7 +668,7 @@ una \func{fork} invece sono:\footnote{a parte le ultime quattro, relative a
 \end{itemize*}
 
 Una seconda funzione storica usata per la creazione di un nuovo processo è
 \end{itemize*}
 
 Una seconda funzione storica usata per la creazione di un nuovo processo è
-\func{vfork}, che è esattamente identica a \func{fork} ed ha la stessa
+\funcm{vfork}, che è esattamente identica a \func{fork} ed ha la stessa
 semantica e gli stessi errori; la sola differenza è che non viene creata la
 tabella delle pagine né la struttura dei task per il nuovo processo. Il
 processo padre è posto in attesa fintanto che il figlio non ha eseguito una
 semantica e gli stessi errori; la sola differenza è che non viene creata la
 tabella delle pagine né la struttura dei task per il nuovo processo. Il
 processo padre è posto in attesa fintanto che il figlio non ha eseguito una
@@ -700,7 +700,7 @@ di vista di come il sistema gestisce la conclusione dei processi.
 Abbiamo visto in sez.~\ref{sec:proc_conclusion} le tre modalità con cui un
 programma viene terminato in maniera normale: la chiamata di \func{exit}, che
 esegue le funzioni registrate per l'uscita e chiude gli \textit{stream} e poi
 Abbiamo visto in sez.~\ref{sec:proc_conclusion} le tre modalità con cui un
 programma viene terminato in maniera normale: la chiamata di \func{exit}, che
 esegue le funzioni registrate per l'uscita e chiude gli \textit{stream} e poi
-esegue \func{\_exit}, il ritorno dalla funzione \func{main} equivalente alla
+esegue \func{\_exit}, il ritorno dalla funzione \code{main} equivalente alla
 chiamata di \func{exit}, e la chiamata diretta a \func{\_exit}, che passa
 direttamente alle operazioni di terminazione del processo da parte del kernel.
 
 chiamata di \func{exit}, e la chiamata diretta a \func{\_exit}, che passa
 direttamente alle operazioni di terminazione del processo da parte del kernel.
 
@@ -746,7 +746,7 @@ Nel caso di conclusione normale, abbiamo visto in
 sez.~\ref{sec:proc_conclusion} che lo stato di uscita del processo viene
 caratterizzato tramite il valore del cosiddetto \textit{exit status}, cioè il
 valore passato come argomento alle funzioni \func{exit} o \func{\_exit} o il
 sez.~\ref{sec:proc_conclusion} che lo stato di uscita del processo viene
 caratterizzato tramite il valore del cosiddetto \textit{exit status}, cioè il
 valore passato come argomento alle funzioni \func{exit} o \func{\_exit} o il
-valore di ritorno per \func{main}.  Ma se il processo viene concluso in
+valore di ritorno per \code{main}.  Ma se il processo viene concluso in
 maniera anomala il programma non può specificare nessun \textit{exit status},
 ed è il kernel che deve generare autonomamente il \textit{termination status}
 per indicare le ragioni della conclusione anomala.
 maniera anomala il programma non può specificare nessun \textit{exit status},
 ed è il kernel che deve generare autonomamente il \textit{termination status}
 per indicare le ragioni della conclusione anomala.
@@ -1146,7 +1146,7 @@ anomala), uno per indicare se è stato generato un \itindex{core~dump}
                                       significativi dello stato di uscita del
                                       processo (passato attraverso
                                       \func{\_exit}, \func{exit} o come valore
                                       significativi dello stato di uscita del
                                       processo (passato attraverso
                                       \func{\_exit}, \func{exit} o come valore
-                                      di ritorno di \func{main}); può essere
+                                      di ritorno di \code{main}); può essere
                                       valutata solo se \val{WIFEXITED} ha
                                       restituito un valore non nullo.\\ 
     \macro{WIFSIGNALED}\texttt{(s)} & Condizione vera se il processo figlio è
                                       valutata solo se \val{WIFEXITED} ha
                                       restituito un valore non nullo.\\ 
     \macro{WIFSIGNALED}\texttt{(s)} & Condizione vera se il processo figlio è
@@ -1419,7 +1419,7 @@ La funzione \func{execve} esegue il programma o lo script indicato dal
 da \param{argv} e come ambiente la lista di stringhe indicata
 da \param{envp}. Entrambe le liste devono essere terminate da un puntatore
 nullo. I vettori degli argomenti e dell'ambiente possono essere acceduti dal
 da \param{argv} e come ambiente la lista di stringhe indicata
 da \param{envp}. Entrambe le liste devono essere terminate da un puntatore
 nullo. I vettori degli argomenti e dell'ambiente possono essere acceduti dal
-nuovo programma quando la sua funzione \func{main} è dichiarata nella forma
+nuovo programma quando la sua funzione \code{main} è dichiarata nella forma
 \code{main(int argc, char *argv[], char *envp[])}. Si tenga presente per il
 passaggio degli argomenti e dell'ambiente esistono comunque dei limiti, su cui
 torneremo in sez.~\ref{sec:sys_res_limits}).
 \code{main(int argc, char *argv[], char *envp[])}. Si tenga presente per il
 passaggio degli argomenti e dell'ambiente esistono comunque dei limiti, su cui
 torneremo in sez.~\ref{sec:sys_res_limits}).
@@ -1487,7 +1487,7 @@ illustrata in fig.~\ref{fig:proc_exec_relat}.
 
 La prima differenza fra le funzioni riguarda le modalità di passaggio dei
 valori che poi andranno a costituire gli argomenti a linea di comando (cioè i
 
 La prima differenza fra le funzioni riguarda le modalità di passaggio dei
 valori che poi andranno a costituire gli argomenti a linea di comando (cioè i
-valori di \param{argv} e \param{argc} visti dalla funzione \func{main} del
+valori di \param{argv} e \param{argc} visti dalla funzione \code{main} del
 programma chiamato). Queste modalità sono due e sono riassunte dagli mnemonici
 ``\texttt{v}'' e ``\texttt{l}'' che stanno rispettivamente per \textit{vector}
 e \textit{list}.
 programma chiamato). Queste modalità sono due e sono riassunte dagli mnemonici
 ``\texttt{v}'' e ``\texttt{l}'' che stanno rispettivamente per \textit{vector}
 e \textit{list}.
@@ -3216,7 +3216,7 @@ Si tenga presente che trattandosi di macro l'argomento \param{cpu} può essere
 valutato più volte. Questo significa ad esempio che non si può usare al suo
 posto una funzione o un'altra macro, altrimenti queste verrebbero eseguite più
 volte, l'argomento cioè non deve avere \textsl{effetti collaterali} (in gergo
 valutato più volte. Questo significa ad esempio che non si può usare al suo
 posto una funzione o un'altra macro, altrimenti queste verrebbero eseguite più
 volte, l'argomento cioè non deve avere \textsl{effetti collaterali} (in gergo
-\itindex{side!effects} \textit{side effects}).\footnote{nel linguaggio C si
+\itindex{side~effects} \textit{side effects}).\footnote{nel linguaggio C si
   parla appunto di \textit{side effects} quando si usano istruzioni la cui
   valutazione comporta effetti al di fuori dell'istruzione stessa, come il
   caso indicato in cui si passa una funzione ad una macro che usa l'argomento
   parla appunto di \textit{side effects} quando si usano istruzioni la cui
   valutazione comporta effetti al di fuori dell'istruzione stessa, come il
   caso indicato in cui si passa una funzione ad una macro che usa l'argomento
@@ -3758,7 +3758,7 @@ Introdotta a partire dal kernel 2.4.21, solo su PowerPC.
   impostato ad 1. Una volta abilitato il \itindex{secure~computing~mode}
   \textit{secure computing mode} il processo potrà utilizzare soltanto un
   insieme estremamente limitato di \textit{system call}: \func{read},
   impostato ad 1. Una volta abilitato il \itindex{secure~computing~mode}
   \textit{secure computing mode} il processo potrà utilizzare soltanto un
   insieme estremamente limitato di \textit{system call}: \func{read},
-  \func{write}, \func{\_exit} e \func{sigreturn}. Ogni altra \textit{system
+  \func{write}, \func{\_exit} e \funcm{sigreturn}. Ogni altra \textit{system
     call} porterà all'emissione di un \signal{SIGKILL} (vedi
   sez.~\ref{sec:sig_termination}).  Il \textit{secure computing mode} è stato
   ideato per fornire un supporto per l'esecuzione di codice esterno non fidato
     call} porterà all'emissione di un \signal{SIGKILL} (vedi
   sez.~\ref{sec:sig_termination}).  Il \textit{secure computing mode} è stato
   ideato per fornire un supporto per l'esecuzione di codice esterno non fidato
@@ -3901,9 +3901,9 @@ processi, che poi è stata utilizzata anche per fornire supporto per le
 tecnologie di virtualizzazione dei processi (i cosiddetti \textit{container}).
 
 Per questo l'interfaccia per la creazione di un nuovo processo è stata
 tecnologie di virtualizzazione dei processi (i cosiddetti \textit{container}).
 
 Per questo l'interfaccia per la creazione di un nuovo processo è stata
-delegata ad una nuova \textit{system call}, \func{sys\_clone}, che consente di
-reimplementare anche la tradizionale \func{fork}. In realtà in questo caso più
-che di nuovi processi si può parlare della creazioni di nuovi
+delegata ad una nuova \textit{system call}, \funcm{sys\_clone}, che consente
+di reimplementare anche la tradizionale \func{fork}. In realtà in questo caso
+più che di nuovi processi si può parlare della creazioni di nuovi
 ``\textit{task}'' del kernel che possono assumere la veste sia di un processo
 classico isolato dagli altri come quelli trattati finora, che di un
 \textit{thread} in cui la memoria viene condivisa fra il processo chiamante ed
 ``\textit{task}'' del kernel che possono assumere la veste sia di un processo
 classico isolato dagli altri come quelli trattati finora, che di un
 \textit{thread} in cui la memoria viene condivisa fra il processo chiamante ed
@@ -4062,6 +4062,9 @@ elenco, che illustra quelle attualmente disponibili:\footnote{si fa
 \end{basedescript}
 
 
 \end{basedescript}
 
 
+%TODO trattare unshare
+
+
 \subsection{La funzione \func{ptrace}}
 \label{sec:process_ptrace}
 
 \subsection{La funzione \func{ptrace}}
 \label{sec:process_ptrace}