X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=process.tex;h=70dbce46e131baa8fa087cfc6f29de958b0c150a;hp=b21dc6b9c3978b7917ffd3ce920853d5ac93fa40;hb=c474f4307db945bc45287edd0ea4c2c29374d0ee;hpb=ac964c5d51a316d519c5a6319b46e962c947d025 diff --git a/process.tex b/process.tex index b21dc6b..70dbce4 100644 --- a/process.tex +++ b/process.tex @@ -1,6 +1,6 @@ %% process.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", @@ -80,7 +80,7 @@ controllo direttamente alla routine 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 \capref{cha:signals}) o della chiamata alla funzione +segnale (si veda 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 @@ -152,10 +152,10 @@ non vengono salvati e le eventuali funzioni registrate con \func{atexit} e La funzione chiude tutti i file descriptor appartenenti al processo (si tenga presente che questo non comporta il salvataggio dei dati bufferizzati degli stream), fa sì che ogni figlio del processo sia ereditato da \cmd{init} (vedi -sez.~\ref{cha:process_handling}), manda un segnale \const{SIGCHLD} al processo -padre (vedi sez.~\ref{sec:sig_job_control}) ed infine ritorna lo stato di uscita -specificato in \param{status} che può essere raccolto usando la funzione -\func{wait} (vedi sez.~\ref{sec:proc_wait}). +cap.~\ref{cha:process_handling}), manda un segnale \const{SIGCHLD} al processo +padre (vedi sez.~\ref{sec:sig_job_control}) ed infine ritorna lo stato di +uscita specificato in \param{status} che può essere raccolto usando la +funzione \func{wait} (vedi sez.~\ref{sec:proc_wait}). \subsection{Le funzioni \func{atexit} e \func{on\_exit}} @@ -240,7 +240,7 @@ normalmente un programma Si ricordi infine che un programma può anche essere interrotto dall'esterno attraverso l'uso di un segnale (modalità di conclusione non mostrata in fig.~\ref{fig:proc_prog_start_stop}); torneremo su questo aspetto in -\capref{cha:signals}. +cap.~\ref{cha:signals}. @@ -267,7 +267,7 @@ in cui gli indirizzi vanno da zero ad un qualche valore massimo.\footnote{nel 2Gb. Con il kernel 2.4 ed il supporto per la \textit{high-memory} il limite è stato esteso.} -Come accennato in \capref{cha:intro_unix} questo spazio di indirizzi è +Come accennato in cap.~\ref{cha:intro_unix} questo spazio di indirizzi è virtuale e non corrisponde all'effettiva posizione dei dati nella RAM del computer; in genere detto spazio non è neppure continuo (cioè non tutti gli indirizzi possibili sono utilizzabili, e quelli usabili non sono @@ -318,7 +318,7 @@ Normalmente questo in genere il sistema è molto efficiente in questo lavoro; quando però ci siano esigenze specifiche di prestazioni è possibile usare delle funzioni che permettono di bloccare il meccanismo della paginazione\index{paginazione} e -mantenere fisse delle pagine in memoria (vedi \ref{sec:proc_mem_lock}). +mantenere fisse delle pagine in memoria (vedi sez.~\ref{sec:proc_mem_lock}). \subsection{La struttura della memoria di un processo} @@ -1140,16 +1140,16 @@ in tab.~\ref{tab:proc_env_func}. \textbf{SVr4} & \textbf{BSD} & \textbf{Linux} \\ \hline \hline - \func{getenv} & $\bullet$ & $\bullet$ & $\bullet$ & - $\bullet$ & $\bullet$ & $\bullet$ \\ - \func{setenv} & & & & - & $\bullet$ & $\bullet$ \\ - \func{unsetenv} & & & & - & $\bullet$ & $\bullet$ \\ - \func{putenv} & & opz. & $\bullet$ & - & $\bullet$ & $\bullet$ \\ - \func{clearenv} & & opz. & & - & & $\bullet$ \\ + \func{getenv} & $\bullet$ & $\bullet$ & $\bullet$ + & $\bullet$ & $\bullet$ & $\bullet$ \\ + \func{setenv} & -- & -- & -- + & -- & $\bullet$ & $\bullet$ \\ + \func{unsetenv}& -- & -- & -- + & -- & $\bullet$ & $\bullet$ \\ + \func{putenv} & -- & opz. & $\bullet$ + & -- & $\bullet$ & $\bullet$ \\ + \func{clearenv}& -- & opz. & -- + & -- & -- & $\bullet$ \\ \hline \end{tabular} \caption{Funzioni per la gestione delle variabili di ambiente.}