Finito con {{{tee}}}, spostati un po' di TODO, messo il placeholder
[gapil.git] / process.tex
index 3f500455336e5b8f1bfb686e4fdbfc1d1a95649a..b025b2bfaf5e6b18aaea4412891e656b67cf19e1 100644 (file)
@@ -49,7 +49,7 @@ 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
+alcune variabili di ambiente e dal contenuto di \conffile{/etc/ld.so.conf}. I
 dettagli sono riportati nella man page di \cmd{ld.so}.
 
 Il sistema fa partire qualunque programma chiamando la funzione \func{main};
@@ -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 fal chiamante da destra a sinistra, e che si il chimante 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}
 
@@ -920,6 +927,7 @@ 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}