%% prochand.tex
%%
-%% Copyright (C) 2000-2018 by Simone Piccardi. Permission is granted to
+%% Copyright (C) 2000-2019 by 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 "Un preambolo",
duplicare nei processi figli tutti i \textit{file descriptor} (vedi
sez.~\ref{sec:file_fd}) dei file aperti nel processo padre (allo stesso modo
in cui lo fa la funzione \func{dup}, trattata in sez.~\ref{sec:file_dup}). Ciò
-fa si che padre e figli condividano le stesse voci della \textit{file table}
+fa sì che padre e figli condividano le stesse voci della \textit{file table}
(tratteremo in dettaglio questi termini in sez.~\ref{sec:file_fd} e
sez.~\ref{sec:file_shared_access}) fra le quali c'è anche la posizione
corrente nel file.
comune dopo l'esecuzione di una \func{fork} è la seguente:
\begin{itemize*}
\item i file aperti e gli eventuali flag di \textit{close-on-exec} impostati
- (vedi sez.~\ref{sec:proc_exec} e sez.~\ref{sec:file_fcntl_ioctl});
+ (vedi sez.~\ref{sec:proc_exec} e sez.~\ref{sec:file_shared_access});
\item gli identificatori per il controllo di accesso: l'\textsl{user-ID
reale}, il \textsl{group-ID reale}, l'\textsl{user-ID effettivo}, il
\textsl{group-ID effettivo} ed i \textsl{group-ID supplementari} (vedi
\end{itemize*}
\itindbeg{close-on-exec}
-
La gestione dei file aperti nel passaggio al nuovo programma lanciato con
-\func{exec} dipende dal valore che ha il flag di \textit{close-on-exec} (vedi
-sez.~\ref{sec:file_fcntl_ioctl}) per ciascun \textit{file descriptor}. I file
-per cui è impostato vengono chiusi, tutti gli altri file restano
+\func{exec} dipende dal valore che ha il flag di \textit{close-on-exec} per
+ciascun \textit{file descriptor} (vedi sez.~\ref{sec:file_shared_access}). I
+file per cui è impostato vengono chiusi, tutti gli altri file restano
aperti. Questo significa che il comportamento predefinito è che i file restano
-aperti attraverso una \func{exec}, a meno di una chiamata esplicita a
-\func{fcntl} che imposti il suddetto flag. Per le directory, lo standard
-POSIX.1 richiede che esse vengano chiuse attraverso una \func{exec}, in genere
-questo è fatto dalla funzione \func{opendir} (vedi
+aperti attraverso una \func{exec}, a meno di non aver impostato esplicitamente
+(in apertura o con \func{fnctl}) il suddetto flag. Per le directory, lo
+standard POSIX.1 richiede che esse vengano chiuse attraverso una \func{exec},
+in genere questo è fatto dalla funzione \func{opendir} (vedi
sez.~\ref{sec:file_dir_read}) che effettua da sola l'impostazione del flag di
\textit{close-on-exec} sulle directory che apre, in maniera trasparente
all'utente.
-
\itindend{close-on-exec}
Il comportamento della funzione in relazione agli identificatori relativi al
L'effetto della chiamata è diverso a seconda dei privilegi del processo; se
l'\ids{UID} effettivo è zero (cioè è quello dell'amministratore di sistema o
-il processo ha la la capacità \const{CAP\_SETUID}) allora tutti gli
+il processo ha la capacità \const{CAP\_SETUID}) allora tutti gli
identificatori (\textit{real}, \textit{effective} e \textit{saved}) vengono
impostati al valore specificato da \param{uid}, altrimenti viene impostato
solo l'\ids{UID} effettivo, e soltanto se il valore specificato corrisponde o
}
\end{funcbox}}
-Le prime tre macro richiedono due insiemi di partenza, \param{srcset1}
-e \param{srcset2} e forniscono in un terzo insieme \param{destset} (che può
+Le prime tre macro richiedono due insiemi di partenza, \param{srcset1} e
+\param{srcset2} e forniscono in un terzo insieme \param{destset} (che può
essere anche lo stesso di uno dei precedenti) il risultato della rispettiva
operazione logica sui contenuti degli stessi. In sostanza con \macro{CPU\_AND}
si otterrà come risultato l'insieme che contiene le CPU presenti in entrambi
gli insiemi di partenza, con \macro{CPU\_OR} l'insieme che contiene le CPU
presenti in uno qualunque dei due insiemi di partenza, e con \macro{CPU\_XOR}
-l'insieme che contiene le CPU presenti presenti in uno solo dei due insiemi di
+l'insieme che contiene le CPU presenti in uno solo dei due insiemi di
partenza. Infine \macro{CPU\_EQUAL} confronta due insiemi ed è l'unica che
-restituisce un intero, da usare come valore logico che indica se sono
-identici o meno.
+restituisce un intero, da usare come valore logico che indica se sono identici
+o meno.
Inoltre, sempre a partire dalla versione 2.7 della \acr{glibc}, è stata
introdotta la possibilità di una allocazione dinamica degli insiemi di
%TODO verificare http://lwn.net/Articles/355987/
-
\section{Problematiche di programmazione \textit{multitasking}}
\label{sec:proc_multi_prog}