X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=prochand.tex;h=abe6f477066509608cc93081249bdbf63879eaf3;hp=87daec107401399f1123f11e1473cb0a845c7d73;hb=ffb12837c5ed8ccc095bc9c88349cd19b5e6b472;hpb=8088f2df8bef63d425b42fa72f1f863345ec7ac8 diff --git a/prochand.tex b/prochand.tex index 87daec1..abe6f47 100644 --- a/prochand.tex +++ b/prochand.tex @@ -1,6 +1,6 @@ %% prochand.tex %% -%% Copyright (C) 2000-2011 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2012 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", @@ -75,7 +75,7 @@ struttura del sistema comunque consente di lanciare al posto di \cmd{init} qualunque altro programma, e in casi di emergenza (ad esempio se il file di \cmd{init} si fosse corrotto) è ad esempio possibile lanciare una shell al suo posto.\footnote{la cosa si fa passando la riga \cmd{init=/bin/sh} come - parametro di avvio del kernel, l'argomento è di natura amministrativa e + parametro di avvio del kernel, l'argomento è di natura sistemistica e trattato in sez.~5.3 di \cite{AGL}.} \begin{figure}[!htb] @@ -232,7 +232,7 @@ identificativi possono essere ottenuti usando le due funzioni \funcd{getpid} e \end{funcproto} \noindent esempi dell'uso di queste funzioni sono riportati in -fig.~\ref{fig:proc_fork_code}, nel programma \file{ForkTest.c}. +fig.~\ref{fig:proc_fork_code}, nel programma \file{fork\_test.c}. Il fatto che il \ids{PID} sia un numero univoco per il sistema lo rende un candidato per generare ulteriori indicatori associati al processo di cui @@ -370,10 +370,11 @@ del nuovo programma. \begin{figure}[!htb] \footnotesize \centering \begin{minipage}[c]{\codesamplewidth} - \includecodesample{listati/ForkTest.c} + \includecodesample{listati/fork_test.c} \end{minipage} \normalsize - \caption{Esempio di codice per la creazione di nuovi processi.} + \caption{Esempio di codice per la creazione di nuovi processi (da + \file{fork\_test.c}).} \label{fig:proc_fork_code} \end{figure} @@ -384,7 +385,7 @@ specificato da linea di comando, e prende anche alcune opzioni per indicare degli eventuali tempi di attesa in secondi (eseguiti tramite la funzione \func{sleep}) per il padre ed il figlio (con \cmd{forktest -h} si ottiene la descrizione delle opzioni). Il codice completo, compresa la parte che gestisce -le opzioni a riga di comando, è disponibile nel file \file{ForkTest.c}, +le opzioni a riga di comando, è disponibile nel file \file{fork\_test.c}, distribuito insieme agli altri sorgenti degli esempi su \url{http://gapil.truelite.it/gapil_source.tgz}. @@ -613,8 +614,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 directory di lavoro e la directory radice (vedi - sez.~\ref{sec:file_work_dir} e sez.~\ref{sec:file_chroot}); +\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 maschera dei permessi di creazione dei file (vedi sez.~\ref{sec:file_perm_management}); \item la maschera dei segnali bloccati (vedi sez.~\ref{sec:sig_sigmask}) e le @@ -1196,7 +1197,7 @@ da \func{wait} o \func{waitpid}. Si tenga conto che nel caso di conclusione anomala il valore restituito da \val{WTERMSIG} può essere confrontato con le costanti che identificano i -segnali definite in \file{signal.h} ed elencate in +segnali definite in \headfile{signal.h} ed elencate in tab.~\ref{tab:sig_signal_list}, e stampato usando le apposite funzioni trattate in sez.~\ref{sec:sig_strsignal}. @@ -1347,7 +1348,7 @@ La funzione \func{wait4} è identica \func{waitpid} sia nel comportamento che per i valori dei primi tre argomenti, ma in più restituisce nell'argomento aggiuntivo \param{rusage} un sommario delle risorse usate dal processo. Questo argomento è una struttura di tipo \struct{rusage} definita in -\file{sys/resource.h}, che viene utilizzata anche dalla funzione +\headfile{sys/resource.h}, che viene utilizzata anche dalla funzione \func{getrusage} per ottenere le risorse di sistema usate da un processo. La sua definizione è riportata in fig.~\ref{fig:sys_rusage_struct} e ne tratteremo in dettaglio il significato sez.~\ref{sec:sys_resource_use}. La @@ -1513,12 +1514,12 @@ si indicano le due funzioni che replicano il comportamento della shell nello specificare il comando da eseguire; quando l'argomento \param{file} non contiene una ``\texttt{/}'' esso viene considerato come un nome di programma, e viene eseguita automaticamente una ricerca fra i file presenti nella lista -di directory specificate dalla variabile di ambiente \var{PATH}. Il file che -viene posto in esecuzione è il primo che viene trovato. Se si ha un errore +di directory specificate dalla variabile di ambiente \envvar{PATH}. Il file +che viene posto in esecuzione è il primo che viene trovato. Se si ha un errore relativo a permessi di accesso insufficienti (cioè l'esecuzione della sottostante \func{execve} ritorna un \errcode{EACCES}), la ricerca viene -proseguita nelle eventuali ulteriori directory indicate in \var{PATH}; solo se -non viene trovato nessun altro file viene finalmente restituito +proseguita nelle eventuali ulteriori directory indicate in \envvar{PATH}; solo +se non viene trovato nessun altro file viene finalmente restituito \errcode{EACCES}. Le altre quattro funzioni si limitano invece a cercare di eseguire il file indicato dall'argomento \param{path}, che viene interpretato come il \itindex{pathname} \textit{pathname} del programma. @@ -1540,8 +1541,8 @@ seguente: (\ids{PPID}); \item l'\textsl{user-ID reale}, il \textit{group-ID reale} ed i \textsl{group-ID supplementari} (vedi sez.~\ref{sec:proc_access_id}); -\item la directory radice e la directory di lavoro corrente (vedi - sez.~\ref{sec:file_work_dir}); +\item la directory radice e la \index{directory~di~lavoro} 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}); @@ -2550,7 +2551,7 @@ La funzione permette, a seconda di quanto specificato nell'argomento \param{which}, di leggere il valore di \textit{nice} di un processo, di un gruppo di processi (vedi sez.~\ref{sec:sess_proc_group}) o di un utente indicato dall'argomento \param{who}. Nelle vecchie versioni può -essere necessario includere anche \code{sys/time.h}, questo non è più +essere necessario includere anche \headfile{sys/time.h}, questo non è più necessario con versioni recenti delle librerie, ma è comunque utile per portabilità. @@ -2933,7 +2934,7 @@ politica ordinaria essa ha senso soltanto per quelli \textit{real-time}, dato che per i primi la priorità statica può essere soltanto nulla. La disponibilità di entrambe le funzioni può essere verificata controllando la macro \macro{\_POSIX\_PRIORITY\_SCHEDULING} che è definita nell'\textit{header - file} \file{sched.h}. + file} \headfile{sched.h}. Se invece si vuole sapere quale è politica di \textit{scheduling} di un processo si può usare la funzione \funcd{sched\_getscheduler}, il cui @@ -3129,7 +3130,7 @@ forma attuale.\footnote{pertanto se la vostra pagina di manuale non è aggiornata, o usate quella particolare versione delle \acr{glibc}, potrete trovare indicazioni diverse, il prototipo illustrato è quello riportato nella versione corrente (maggio 2008) delle pagine di manuale e - corrispondente alla definizione presente in \file{sched.h}.} + corrispondente alla definizione presente in \headfile{sched.h}.} La funzione imposta, con l'uso del valore contenuto all'indirizzo \param{mask}, l'insieme dei processori sui quali deve essere eseguito il @@ -3758,7 +3759,7 @@ Introdotta a partire dal kernel 2.4.21, solo su PowerPC. \textit{secure computing mode} il processo potrà utilizzare soltanto un insieme estremamente limitato di \textit{system call}: \func{read}, \func{write}, \func{\_exit} e \func{sigreturn}. Ogni altra \textit{system - call} porterà all'emissione di un \func{SIGKILL} (vedi + call} porterà all'emissione di un \signal{SIGKILL} (vedi sez.~\ref{sec:sig_termination}). Il \textit{secure computing mode} è stato ideato per fornire un supporto per l'esecuzione di codice esterno non fidato e non verificabile a scopo di calcolo;\footnote{lo scopo è quello di poter @@ -3775,7 +3776,7 @@ Introdotta a partire dal kernel 2.4.21, solo su PowerPC. funzione è totalmente inutile in quanto l'unico valore ottenibile è 0, dato che la chiamata di questa funzione in \itindex{secure~computing~mode} \textit{secure computing mode} comporterebbe l'emissione di - \texttt{SIGKILL}, è stata comunque definita per eventuali estensioni future. + \signal{SIGKILL}, è stata comunque definita per eventuali estensioni future. Introdotta a partire dal kernel 2.6.23. \item[\const{PR\_SET\_SECUREBITS}] Imposta i \itindex{securebits} @@ -4290,7 +4291,7 @@ aggiungendo il suffisso \code{\_r} al nome della versione normale. % LocalWords: nell'header scheduler system interrupt timer HZ asm Hertz clock % LocalWords: l'alpha tick fork wait waitpid exit exec image glibc int pgid ps % LocalWords: sid thread Ingo Molnar ppid getpid getppid sys unistd LD threads -% LocalWords: void ForkTest tempnam pathname sibling cap errno EAGAIN ENOMEM +% LocalWords: void tempnam pathname sibling cap errno EAGAIN ENOMEM % LocalWords: stack read only copy write tab client spawn forktest sleep PATH % LocalWords: source LIBRARY scheduling race condition printf descriptor dup % LocalWords: close group session tms lock vfork execve BSD stream main abort