Alcune correzioni ai font dei link, e una trattazione esplicita
[gapil.git] / process.tex
index 3f500455336e5b8f1bfb686e4fdbfc1d1a95649a..2daf77d6a2c33ca7eeb52fc3b0707f60b90b21cd 100644 (file)
@@ -49,8 +49,8 @@ dinamico del codice e alla fine lo esegue. Infatti, a meno di non aver
 specificato il flag \texttt{-static} durante la compilazione, tutti i
 programmi in Linux sono incompleti e necessitano di essere \textsl{collegati}
 alle librerie condivise quando vengono avviati.  La procedura è controllata da
-alcune variabili di ambiente e dal contenuto di \file{/etc/ld.so.conf}. I
-dettagli sono riportati nella man page di \cmd{ld.so}.
+alcune variabili di ambiente e dal contenuto di \conffile{/etc/ld.so.conf}. I
+dettagli sono riportati nella pagina di manuale di \cmd{ld.so}.
 
 Il sistema fa partire qualunque programma chiamando la funzione \func{main};
 sta al programmatore chiamare così la funzione principale del programma da cui
@@ -82,8 +82,8 @@ 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
-segnale (si veda cap.~\ref{cha:signals}) o della chiamata alla funzione
-\func{abort}; torneremo su questo in sez.~\ref{sec:proc_termination}.
+segnale (tratteremo i segnali in cap.~\ref{cha:signals}) o della chiamata alla
+funzione \func{abort}; torneremo su questo in sez.~\ref{sec:proc_termination}.
 
 Il valore di ritorno della funzione \func{main}, o quello usato nelle chiamate
 ad \func{exit} e \func{\_exit}, viene chiamato \textsl{stato di uscita} (o
@@ -402,10 +402,16 @@ seguenti segmenti:
   viene il nome \itindex{stack} \textit{stack}) in sequenza uno sull'altro; in
   questo modo le funzioni possono essere chiamate ricorsivamente. Al ritorno
   della funzione lo spazio è automaticamente rilasciato e
-  ``\textsl{ripulito}''. La pulizia in C e C++ viene fatta dal
-  chiamante.\footnote{a meno che non sia stato specificato l'utilizzo di una
-    calling convention diversa da quella standard.}
-% TODO verificare le modalità di cambiamento della calling convention
+  ``\textsl{ripulito}''.\footnote{il compilatore si incarica di generare
+    automaticamente il codice necessario, seguendo quella che viene chiamata
+    una \textit{calling convention}; quella standard usata con il C ed il C++
+    è detta \textit{cdecl} e prevede che gli argomenti siano caricati nello
+    stack dal chiamante da destra a sinistra, e che si il chiamante stesso ad
+    eseguire la ripulitura dello stack al ritorno della funzione, se ne
+    possono però utilizzare di alternative (ad esempio nel pascal gli
+    argomenti sono inseriti da sinistra a destra ed è compito del chiamato
+    ripulire lo stack), in genere non ci si deve preoccupare di questo
+    fintanto che non si mescolano funzioni scritte con linguaggi diversi.}
 
   La dimensione di questo segmento aumenta seguendo la crescita dello
   \itindex{stack} \textit{stack} del programma, ma non viene ridotta quando
@@ -910,6 +916,7 @@ ci si scrive sopra.
 
 \itindend{memory~locking}
 
+
 % TODO documentare \func{madvise}
 % TODO documentare \func{mincore}
 
@@ -919,7 +926,11 @@ ci si scrive sopra.
 
 % \subsection{Gestione avanzata dell'allocazione della memoria} 
 % \label{sec:proc_mem_malloc_custom}
+
 % TODO: trattare le funzionalità avanzate di \func{malloc}
+% TODO: trattare \func{memalign}
+% TODO: trattare \func{valloc}
+% TODO: trattare \func{posix\_memalign}
 
 
 
@@ -1701,7 +1712,8 @@ dichiarandole tutte come \direct{volatile}.\footnote{la direttiva
 % LocalWords:  clearenv libc value overwrite string reference result argument
 % LocalWords:  socket variadic ellipsis header stdarg execl self promoting last
 % LocalWords:  float double short register type dest src extern setjmp jmp buf
-% LocalWords:  env return if while sottoprocesso Di
+% LocalWords:  env return if while Di page cdecl 
+% LocalWords:  environment
 
 %%% Local Variables: 
 %%% mode: latex