X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=prochand.tex;h=2fd1924c82ecb8e777fe443a3039b244dfbaa0c7;hp=0c4015dc6167e4205d70af094077031aef51393d;hb=88d22f4971adcbdb816c405a1375ae0a8d57bdde;hpb=3f50b8e3fd683f710e34a88436109157d328e1b6 diff --git a/prochand.tex b/prochand.tex index 0c4015d..2fd1924 100644 --- a/prochand.tex +++ b/prochand.tex @@ -608,8 +608,8 @@ comune dopo l'esecuzione di una \func{fork} è la seguente: \item gli identificatori per il controllo di sessione: il \itindex{process~group} \textit{process group-ID} e il \textit{session id} ed il terminale di controllo (vedi sez.~\ref{sec:sess_proc_group}); -\item la \index{directory~di~lavoro} directory di lavoro e la directory radice - (vedi sez.~\ref{sec:file_work_dir} e sez.~\ref{sec:file_chroot}); +\item la directory di lavoro (vedi sez.~\ref{sec:file_work_dir}) e la + directory radice (vedi sez.~\ref{sec:file_chroot}); \item la maschera dei permessi di creazione dei file (vedi sez.~\ref{sec:file_perm_management}); \item la maschera dei segnali bloccati (vedi @@ -618,8 +618,8 @@ comune dopo l'esecuzione di una \func{fork} è la seguente: \item i segmenti di memoria condivisa agganciati al processo (vedi sez.~\ref{sec:ipc_sysv_shm}); \item i limiti sulle risorse (vedi sez.~\ref{sec:sys_resource_limit}); -\item il valori di \textit{nice}, le priorità real-time e le affinità di - processore (vedi sez.~\ref{sec:proc_sched_stand}, +\item il valori di \textit{nice}, le priorità \textit{real-time} e le affinità + di processore (vedi sez.~\ref{sec:proc_sched_stand}, sez.~\ref{sec:proc_real_time} e sez.~\ref{sec:proc_sched_multiprocess}); \item le variabili di ambiente (vedi sez.~\ref{sec:proc_environ}). \item l'insieme dei descrittori associati alle code di messaggi POSIX (vedi @@ -1539,8 +1539,8 @@ seguente: (\ids{PPID}); \item l'\textsl{user-ID reale}, il \textsl{group-ID reale} ed i \textsl{group-ID supplementari} (vedi sez.~\ref{sec:proc_access_id}); -\item la directory radice e la \index{directory~di~lavoro} directory di lavoro - corrente (vedi sez.~\ref{sec:file_work_dir}); +\item la directory radice e la directory di lavoro corrente (vedi + sez.~\ref{sec:file_work_dir}); \item la maschera di creazione dei file \itindex{umask} (\textit{umask}, vedi sez.~\ref{sec:file_perm_management}) ed i \textit{lock} sui file (vedi sez.~\ref{sec:file_locking}); @@ -3899,20 +3899,36 @@ Introdotta a partire dal kernel 2.4.21, solo su PowerPC. memoria. Tutti gli argomenti non utilizzati (al momento tutti) devono essere nulli pena la ricezione di un errore di \errval{EINVAL}. Introdotta a partire dal kernel 2.6.32. -% TODO: verificare questa parte -\item[\const{PR\_SET\_CHILD\_SUBREAPER}] Imposta il processo indicato con il - \ids{PID} specificato da \param{arg2} come nuovo ``\textsl{genitore - adottivo}'' per tutti i processi discendenti del chiamante che - diventeranno orfani, sostituendo in questo ruolo \cmd{init} (si ricordi - quanto illustrato in sez.~\ref{sec:proc_termination}). Introdotta a partire - dal kernel 3.4. -\item[\const{PR\_GET\_CHILD\_SUBREAPER}] Ottiene il \ids{PID} del processo a - cui vengono assegnati come figli gli orfani del processo - corrente. Introdotta a partire dal kernel 3.4. - % TODO documentare PR_SET_SECCOMP introdotto a partire dal kernel 3.5. Vedi: - % * Documentation/prctl/seccomp_filter.txt - % * http://lwn.net/Articles/475043/ - +\itindbeg{child reaper} +\item[\const{PR\_SET\_CHILD\_SUBREAPER}] Se \param{arg2} è diverso da zero + imposta l'attributo di \textit{child reaper} per il processo, se nullo lo + cancella. Lo stato di \textit{child reaper} è una funzionalità, introdotta + con il kernel 3.4, che consente di far svolgere al processo che ha questo + attributo il ruolo di ``\textsl{genitore adottivo}'' per tutti i processi + suoi ``\textsl{discendenti}'' che diventano orfani, in questo modo il + processo potrà ricevere gli stati di terminazione alla loro uscita, + sostituendo in questo ruolo \cmd{init} (si ricordi quanto illustrato in + sez.~\ref{sec:proc_termination}). Il meccanismo è stato introdotto ad uso + dei programmi di gestione dei servizi, per consentire loro di ricevere gli + stati di terminazione di tutti i processi che lanciano, anche se questi + eseguono una doppia \func{fork}; nel comportamento ordinario infatti questi + verrebbero adottati da \cmd{init} ed il programma che li ha lanciati non + sarebbe più in grado di riceverne lo stato di terminazione. Se un processo + con lo stato di \textit{child reaper} termina prima dei suoi discendenti, + svolgerà questo ruolo il più prossimo antenato ad avere lo stato di + \textit{child reaper}, +\item[\const{PR\_GET\_CHILD\_SUBREAPER}] Ottiene l'impostazione relativa allo + lo stato di \textit{child reaper} del processo chiamante, salvata come + \textit{value result} all'indirizzo puntato da \param{arg2} (da indicare + come di tipo \code{int *}). Il valore viene letto come valore logico, se + diverso da 0 lo stato di \textit{child reaper} è attivo altrimenti è + disattivo. Introdotta a partire dal kernel 3.4. +\itindend{child reaper} + + +% TODO documentare PR_SET_SECCOMP introdotto a partire dal kernel 3.5. Vedi: +% * Documentation/prctl/seccomp_filter.txt +% * http://lwn.net/Articles/475043/ % TODO documentare PR_MPX_INIT e PR_MPX_RELEASE, vedi % http://lwn.net/Articles/582712/ @@ -4183,7 +4199,11 @@ Da fare %TODO trattare init_module e finit_module (quest'ultima introdotta con il %kernel 3.8) +%%%% Altre cose di cui non è chiara la collocazione: +%TODO trattare membarrier, introdotta con il kernel 4.3 +% vedi http://lwn.net/Articles/369567/ http://lwn.net/Articles/369640/ +% http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=5b25b13ab08f616efd566347d809b4ece54570d1 \section{Problematiche di programmazione multitasking} \label{sec:proc_multi_prog}