Riorganizzazione delle sezioni sulla gestione della memoria e
authorSimone Piccardi <piccardi@gnulinux.it>
Fri, 1 Sep 2006 17:13:26 +0000 (17:13 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Fri, 1 Sep 2006 17:13:26 +0000 (17:13 +0000)
inserimento degli argomenti da trattare.

ipc.tex
process.tex

diff --git a/ipc.tex b/ipc.tex
index 080d33bcc4e37f35a6bc79d01d612b3911120e7d..5c1453d23a53472c3272da9fffc13f8e28650392 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -2556,7 +2556,7 @@ direttamente, la situazione dopo l'esecuzione di \func{shmat} 
 fig.~\ref{fig:ipc_shmem_layout} (per la comprensione del resto dello schema si
 ricordi quanto illustrato al proposito in sez.~\ref{sec:proc_mem_layout}). In
 particolare l'indirizzo finale del segmento dati (quello impostato da
 fig.~\ref{fig:ipc_shmem_layout} (per la comprensione del resto dello schema si
 ricordi quanto illustrato al proposito in sez.~\ref{sec:proc_mem_layout}). In
 particolare l'indirizzo finale del segmento dati (quello impostato da
-\func{brk}, vedi sez.~\ref{sec:proc_mem_sbrk_alloca}) non viene influenzato.
+\func{brk}, vedi sez.~\ref{sec:proc_mem_alloc}) non viene influenzato.
 Si tenga presente infine che la funzione ha successo anche se il segmento è
 stato marcato per la cancellazione.
 
 Si tenga presente infine che la funzione ha successo anche se il segmento è
 stato marcato per la cancellazione.
 
index 2cca5986b9c0f08ed8f83f3d296e492e77119ef9..ae8cb03172edbb5b9e7a771e7a15a9c01b757699 100644 (file)
@@ -467,10 +467,6 @@ attraverso i puntatori alla memoria loro riservata che si sono ottenuti dalle
 funzioni di allocazione.
 
 
 funzioni di allocazione.
 
 
-\subsection{Le funzioni \func{malloc}, \func{calloc}, \func{realloc} e
-  \func{free}}
-\label{sec:proc_mem_malloc}
-
 Le funzioni previste dallo standard ANSI C per la gestione della memoria sono
 quattro: \funcd{malloc}, \funcd{calloc}, \funcd{realloc} e \funcd{free}, i
 loro prototipi sono i seguenti:
 Le funzioni previste dallo standard ANSI C per la gestione della memoria sono
 quattro: \funcd{malloc}, \funcd{calloc}, \funcd{realloc} e \funcd{free}, i
 loro prototipi sono i seguenti:
@@ -562,13 +558,13 @@ variabile di ambiente \val{MALLOC\_CHECK\_} che quando viene definita mette in
 uso una versione meno efficiente delle funzioni suddette, che però è più
 tollerante nei confronti di piccoli errori come quello di chiamate doppie a
 \func{free}.  In particolare:
 uso una versione meno efficiente delle funzioni suddette, che però è più
 tollerante nei confronti di piccoli errori come quello di chiamate doppie a
 \func{free}.  In particolare:
-\begin{itemize}
+\begin{itemize*}
 \item se la variabile è posta a zero gli errori vengono ignorati;
 \item se è posta ad 1 viene stampato un avviso sullo \textit{standard error}
   (vedi sez.~\ref{sec:file_std_stream});
 \item se è posta a 2 viene chiamata \func{abort}, che in genere causa
   l'immediata conclusione del programma.
 \item se la variabile è posta a zero gli errori vengono ignorati;
 \item se è posta ad 1 viene stampato un avviso sullo \textit{standard error}
   (vedi sez.~\ref{sec:file_std_stream});
 \item se è posta a 2 viene chiamata \func{abort}, che in genere causa
   l'immediata conclusione del programma.
-\end{itemize}
+\end{itemize*}
 
 Il problema più comune e più difficile da risolvere che si incontra con le
 funzioni di allocazione è quando non viene opportunamente liberata la memoria
 
 Il problema più comune e più difficile da risolvere che si incontra con le
 funzioni di allocazione è quando non viene opportunamente liberata la memoria
@@ -629,9 +625,6 @@ ricompilare il programma,\footnote{esempi sono \textit{Dmalloc}
 molto complesse riguardo l'allocazione della memoria.
 
 
 molto complesse riguardo l'allocazione della memoria.
 
 
-\subsection{Le funzioni \func{alloca}, \func{brk} e \func{sbrk}}  
-\label{sec:proc_mem_sbrk_alloca}
-
 Una possibile alternativa all'uso di \func{malloc}, che non soffre dei
 problemi di \textit{memory leak}\itindex{memory~leak} descritti in precedenza,
 è la funzione \funcd{alloca}, che invece di allocare la memoria nello
 Una possibile alternativa all'uso di \func{malloc}, che non soffre dei
 problemi di \textit{memory leak}\itindex{memory~leak} descritti in precedenza,
 è la funzione \funcd{alloca}, che invece di allocare la memoria nello
@@ -694,9 +687,8 @@ 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
   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 funzioni di allocazione della memoria
-viste in sez.~\ref{sec:proc_mem_malloc}. La prima funzione è \funcd{brk}, ed
-il suo prototipo è:
+implementare la propria versione delle funzioni di allocazione della memoria.
+La prima funzione è \funcd{brk}, ed il suo prototipo è:
 \begin{prototype}{unistd.h}{int brk(void *end\_data\_segment)}
   Sposta la fine del segmento dei dati.
   
 \begin{prototype}{unistd.h}{int brk(void *end\_data\_segment)}
   Sposta la fine del segmento dei dati.
   
@@ -705,7 +697,7 @@ il suo prototipo 
 \end{prototype}
 
 La funzione è un'interfaccia diretta all'omonima system call ed imposta
 \end{prototype}
 
 La funzione è un'interfaccia diretta all'omonima system call ed imposta
-l'indirizzo finale del \index{segmento!dati}segmento dati di un processo
+l'indirizzo finale del \index{segmento!dati} segmento dati di un processo
 all'indirizzo specificato da \param{end\_data\_segment}. Quest'ultimo deve
 essere un valore ragionevole, ed inoltre la dimensione totale del segmento non
 deve comunque eccedere un eventuale limite (si veda
 all'indirizzo specificato da \param{end\_data\_segment}. Quest'ultimo deve
 essere un valore ragionevole, ed inoltre la dimensione totale del segmento non
 deve comunque eccedere un eventuale limite (si veda
@@ -733,12 +725,6 @@ per i programmi normali 
 standard descritte in precedenza, che sono costruite su di esse. 
 
 
 standard descritte in precedenza, che sono costruite su di esse. 
 
 
-% \subsection{La personalizzazione delle funzioni di allocazione} 
-% \label{sec:proc_mem_malloc_custom}
-
-% TODO documentare \func{madvise}
-% TODO documentare \func{mincore}
-
 \subsection{Il controllo della memoria virtuale}  
 \label{sec:proc_mem_lock}
 
 \subsection{Il controllo della memoria virtuale}  
 \label{sec:proc_mem_lock}
 
@@ -920,12 +906,18 @@ che esse vengano mappate in RAM dallo \itindex{stack} stack, dopo di che, per
 essere sicuri che esse siano state effettivamente portate in memoria, ci si
 scrive sopra.  
 
 essere sicuri che esse siano state effettivamente portate in memoria, ci si
 scrive sopra.  
 
-% TODO: trattare \func{madvise}
+\itindend{memory~locking}
+
+% TODO documentare \func{madvise}
+% TODO documentare \func{mincore}
 
 
 \index{memoria~virtuale|)} 
 
 
 
 \index{memoria~virtuale|)} 
 
-\itindend{memory~locking}
+
+% \subsection{Gestione avanzata dell'allocazione della memoria} 
+% \label{sec:proc_mem_malloc_custom}
+% TODO: trattare le funzionalità avanzate di \func{malloc}
 
 
 
 
 
 
@@ -949,6 +941,7 @@ manipolare ed utilizzare le variabili di ambiente.
 
 \subsection{Il formato degli argomenti}
 \label{sec:proc_par_format}
 
 \subsection{Il formato degli argomenti}
 \label{sec:proc_par_format}
+
 In genere il passaggio degli argomenti al programma viene effettuato dalla
 shell, che si incarica di leggere la linea di comando e di effettuarne la
 scansione (il cosiddetto \textit{parsing}) per individuare le parole che la
 In genere il passaggio degli argomenti al programma viene effettuato dalla
 shell, che si incarica di leggere la linea di comando e di effettuarne la
 scansione (il cosiddetto \textit{parsing}) per individuare le parole che la