Altre sostituzioni routine-funzione
[gapil.git] / process.tex
index da8710e51a6220e6a7dedab88aed3d427513140a..1c71789bde591f672d9261c6e9f8e74d5f0e36cc 100644 (file)
@@ -41,7 +41,7 @@ tutti gli altri.\footnote{questo non 
 \subsection{La funzione \func{main}} 
 \label{sec:proc_main}
 
-Quando un programma viene lanciato il kernel esegue un'opportuna routine di
+Quando un programma viene lanciato il kernel esegue un opportuno codice di
 avvio, usando il programma \cmd{ld-linux.so}.  Questo programma prima carica
 le librerie condivise che servono al programma, poi effettua il collegamento
 dinamico del codice e alla fine lo esegue. Infatti, a meno di non aver
@@ -77,7 +77,7 @@ modalit
 direttamente la funzione \func{exit} (che viene comunque chiamata
 automaticamente quando \func{main} ritorna).  Una forma alternativa è quella
 di chiamare direttamente la system call \func{\_exit}, che restituisce il
-controllo direttamente alla routine di conclusione dei processi del kernel.
+controllo direttamente alla funzione di conclusione dei processi del kernel.
 
 Oltre alla conclusione ``\textsl{normale}'' esiste anche la possibilità di una
 conclusione ``\textsl{anomala}'' del programma a causa della ricezione di un
@@ -555,7 +555,7 @@ assegnare sempre a \val{NULL} ogni puntatore liberato con \func{free}, dato
 che, quando l'argomento è un puntatore nullo, \func{free} non esegue nessuna
 operazione.
 
-Le \acr{glibc} hanno un'implementazione delle routine di allocazione che è
+Le \acr{glibc} hanno un'implementazione delle funzioni di allocazione che è
 controllabile dall'utente attraverso alcune variabili di ambiente, in
 particolare diventa possibile tracciare questo tipo di errori usando la
 variabile di ambiente \val{MALLOC\_CHECK\_} che quando viene definita mette in
@@ -571,7 +571,7 @@ tollerante nei confronti di piccoli errori come quello di chiamate doppie a
 \end{itemize}
 
 Il problema più comune e più difficile da risolvere che si incontra con le
-routine di allocazione è quando non viene opportunamente liberata la memoria
+funzioni di allocazione è quando non viene opportunamente liberata la memoria
 non più utilizzata, quello che in inglese viene chiamato \textit{memory
   leak}\itindex{memory~leak}, cioè una \textsl{perdita di memoria}.
 
@@ -616,13 +616,13 @@ genere va a scapito delle prestazioni dell'applicazione in esecuzione.
 % allocata da un oggetto.
 
 Per limitare l'impatto di questi problemi, e semplificare la ricerca di
-eventuali errori, l'implementazione delle routine di allocazione delle
+eventuali errori, l'implementazione delle funzioni di allocazione delle
 \acr{glibc} mette a disposizione una serie di funzionalità che permettono di
 tracciare le allocazioni e le disallocazioni, e definisce anche una serie di
 possibili \textit{hook} (\textsl{ganci}) che permettono di sostituire alle
 funzioni di libreria una propria versione (che può essere più o meno
 specializzata per il debugging). Esistono varie librerie che forniscono dei
-sostituti opportuni delle routine di allocazione in grado, senza neanche
+sostituti opportuni delle funzioni di allocazione in grado, senza neanche
 ricompilare il programma,\footnote{esempi sono \textit{Dmalloc}
   \href{http://dmalloc.com/}{\textsf{http://dmalloc.com/}} di Gray Watson ed
   \textit{Electric Fence} di Bruce Perens.} di eseguire diagnostiche anche
@@ -694,7 +694,7 @@ Le due funzioni seguenti\footnote{le due funzioni sono state definite con BSD
   esplicitamente escluse dallo standard POSIX.} vengono utilizzate soltanto
 quando è necessario effettuare direttamente la gestione della memoria
 associata allo spazio dati di un processo, ad esempio qualora si debba
-implementare la propria versione delle routine di allocazione della memoria
+implementare la propria versione delle funzioni di allocazione della memoria
 viste in sez.~\ref{sec:proc_mem_malloc}. La prima funzione è \funcd{brk}, ed
 il suo prototipo è:
 \begin{prototype}{unistd.h}{int brk(void *end\_data\_segment)}
@@ -1328,7 +1328,7 @@ del passaggio pu
 Il passaggio di una variabile \textit{by value} significa che in realtà quello
 che viene passato alla subroutine è una copia del valore attuale di quella
 variabile, copia che la subroutine potrà modificare a piacere, senza che il
-valore originale nella routine chiamante venga toccato. In questo modo non
+valore originale nella funzione chiamante venga toccato. In questo modo non
 occorre preoccuparsi di eventuali effetti delle operazioni della subroutine
 sulla variabile passata come argomento.
 
@@ -1337,13 +1337,13 @@ vale per qualunque variabile, puntatori compresi; quando per
 subroutine si usano dei puntatori (ad esempio per scrivere in un buffer) in
 realtà si va a modificare la zona di memoria a cui essi puntano, per cui anche
 se i puntatori sono copie, i dati a cui essi puntano sono sempre gli stessi, e
-le eventuali modifiche avranno effetto e saranno visibili anche nella routine
+le eventuali modifiche avranno effetto e saranno visibili anche nella funzione
 chiamante.
 
 Nella maggior parte delle funzioni di libreria e delle system call i puntatori
 vengono usati per scambiare dati (attraverso buffer o strutture) e le
 variabili semplici vengono usate per specificare argomenti; in genere le
-informazioni a riguardo dei risultati vengono passate alla routine chiamante
+informazioni a riguardo dei risultati vengono passate alla funzione chiamante
 attraverso il valore di ritorno.  È buona norma seguire questa pratica anche
 nella programmazione normale.
 
@@ -1598,9 +1598,10 @@ Quando viene eseguita direttamente la funzione ritorna sempre zero, un valore
 diverso da zero viene restituito solo quando il ritorno è dovuto ad una
 chiamata di \func{longjmp} in un'altra parte del programma che ripristina lo
 \itindex{stack} stack effettuando il salto non-locale. Si tenga conto che il
-contesto salvato in \param{env} viene invalidato se la routine che ha chiamato
-\func{setjmp} ritorna, nel qual caso un successivo uso di \func{longjmp} può
-comportare conseguenze imprevedibili (e di norma fatali) per il processo.
+contesto salvato in \param{env} viene invalidato se la funzione che ha
+chiamato \func{setjmp} ritorna, nel qual caso un successivo uso di
+\func{longjmp} può comportare conseguenze imprevedibili (e di norma fatali)
+per il processo.
   
 Come accennato per effettuare un salto non-locale ad
 un punto precedentemente stabilito con \func{setjmp} si usa la funzione