X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=prochand.tex;h=7ac714cd815cfbe1c33707a5c61e1e8e1edf0f90;hp=933a828953f83680f93e3dc970ea7877f106e4af;hb=4aa6c51696d2b11c572eccd37238db1691785573;hpb=08c289c4acd775aabeb5beeb7b08566969e11d9b diff --git a/prochand.tex b/prochand.tex index 933a828..7ac714c 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", @@ -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}. @@ -1419,7 +1420,10 @@ da \param{argv} e come ambiente la lista di stringhe indicata da \param{envp}. Entrambe le liste devono essere terminate da un puntatore nullo. I vettori degli argomenti e dell'ambiente possono essere acceduti dal nuovo programma quando la sua funzione \func{main} è dichiarata nella forma -\code{main(int argc, char *argv[], char *envp[])}. +\code{main(int argc, char *argv[], char *envp[])}. Si tenga presente per il +passaggio degli argomenti e dell'ambiente esistono comunque dei limiti, su cui +torneremo in sez.~\ref{sec:sys_res_limits}). +% TODO aggiungere la parte sul numero massimo di argomenti, da man execve In caso di successo la funzione non ritorna, in quanto al posto del programma chiamante viene eseguito il nuovo programma indicato da \param{filename}. Se @@ -1427,8 +1431,6 @@ il processo corrente è tracciato con \func{ptrace} (vedi sez.~\ref{sec:process_ptrace}) in caso di successo viene emesso il segnale \signal{SIGTRAP}. -% TODO aggiungere la parte sul numero massimo di argomenti, da man execve - Le altre funzioni della famiglia (\funcd{execl}, \funcd{execv}, \funcd{execle}, \funcd{execlp}, \funcd{execvp}) servono per fornire all'utente una serie di possibili diverse interfacce nelle modalità di passaggio degli @@ -1500,9 +1502,8 @@ che deve essere terminata da un puntatore nullo. In entrambi i casi vale la convenzione che il primo argomento (\var{arg0} o \var{argv[0]}) viene usato per indicare il nome del file che contiene il programma che verrà eseguito. - \begin{figure}[!htb] - \centering \includegraphics[width=12cm]{img/exec_rel} + \centering \includegraphics[width=10cm]{img/exec_rel} \caption{La interrelazione fra le sei funzioni della famiglia \func{exec}.} \label{fig:proc_exec_relat} \end{figure} @@ -3609,7 +3610,7 @@ l'operazione, e deve essere specificato con l'uso di una delle costanti predefinite del seguente elenco, che illustra quelle disponibili al momento:\footnote{alla stesura di questa sezione, cioè con il kernel 3.2.} -\begin{basedescript}{\desclabelstyle{\pushlabel}} +\begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}} \item[\const{PR\_CAPBSET\_READ}] Controlla la disponibilità di una delle \itindex{capabilities} \textit{capabilities} (vedi sez.~\ref{sec:proc_capabilities}). La funzione ritorna 1 se la capacità @@ -4034,7 +4035,7 @@ elenco, che illustra quelle attualmente disponibili:\footnote{si fa riferimento al momento della stesura di questa sezione, cioè con il kernel 3.2.} -\begin{basedescript}{\desclabelstyle{\pushlabel}} +\begin{basedescript}{\desclabelwidth{2.cm}\desclabelstyle{\nextlinelabel}} \item[\const{CLONE\_CHILD\_CLEARTID}] cancella il valore del \ids{TID} \item[\const{CLONE\_CHILD\_SETTID}] @@ -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 @@ -4345,7 +4346,7 @@ aggiungendo il suffisso \code{\_r} al nome della versione normale. % LocalWords: namespace vsyscall SETTID FILES NEWIPC NEWNET NEWNS NEWPID ptid % LocalWords: NEWUTS SETTLS SIGHAND SYSVSEM UNTRACED tls ctid CLEARTID panic % LocalWords: loader EISDIR SIGTRAP uninterrutible killable EQUAL sizeof XOR -% LocalWords: destset srcset ALLOC num cpus setsize emacs +% LocalWords: destset srcset ALLOC num cpus setsize emacs pager getty TID %%% Local Variables: %%% mode: latex