Una lunga serie di modifiche per tenere conto della riorganizzazione della
[gapil.git] / prochand.tex
index d38c843b8c52e2ca132a68b088ca2991c7efca67..448ad06794ca08eb9767cb7b0d96a55b3472bb0f 100644 (file)
@@ -1,6 +1,6 @@
 %% prochand.tex
 %%
 %% prochand.tex
 %%
-%% Copyright (C) 2000-2002 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2003 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",
 %% 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",
@@ -541,11 +541,11 @@ i processi figli.
 
 Quello che succede è che quando lo standard output del padre viene rediretto,
 lo stesso avviene anche per tutti i figli; la funzione \func{fork} infatti ha
 
 Quello che succede è che quando lo standard output del padre viene rediretto,
 lo stesso avviene anche per tutti i figli; la funzione \func{fork} infatti ha
-la caratteristica di duplicare (allo stesso modo in cui lo fa la funzione
-\func{dup}, trattata in \secref{sec:file_dup}) nei figli tutti i file
-descriptor aperti nel padre, il che comporta che padre e figli condividono le
+la caratteristica di duplicare nei figli tutti i file descriptor aperti nel
+padre (allo stesso modo in cui lo fa la funzione \func{dup}, trattata in
+\secref{sec:file_dup}), il che comporta che padre e figli condividono le
 stesse voci della \textit{file table} (per la spiegazione di questi termini si
 stesse voci della \textit{file table} (per la spiegazione di questi termini si
-veda \secref{sec:file_sharing}) fra cui c'è anche la posizione corrente nel
+veda \secref{sec:file_sharing}) fra cui c'è anche la posizione corrente nel
 file.
 
 In questo modo se un processo scrive sul file aggiornerà la posizione corrente
 file.
 
 In questo modo se un processo scrive sul file aggiornerà la posizione corrente
@@ -1182,7 +1182,7 @@ indicato dall'argomento \param{path}, che viene interpretato come il
 
 \begin{figure}[htb]
   \centering
 
 \begin{figure}[htb]
   \centering
-  \includegraphics[width=15cm]{img/exec_rel}
+  \includegraphics[width=16cm]{img/exec_rel}
   \caption{La interrelazione fra le sei funzioni della famiglia \func{exec}.}
   \label{fig:proc_exec_relat}
 \end{figure}
   \caption{La interrelazione fra le sei funzioni della famiglia \func{exec}.}
   \label{fig:proc_exec_relat}
 \end{figure}
@@ -1737,13 +1737,16 @@ coincide con uno dei di quelli del gruppo \textit{real}, \textit{effective} o
 \label{sec:proc_setgroups}
 
 Le ultime funzioni che esamineremo sono quelle che permettono di operare sui
 \label{sec:proc_setgroups}
 
 Le ultime funzioni che esamineremo sono quelle che permettono di operare sui
-gruppi supplementari. Ogni processo può avere fino a \const{NGROUPS\_MAX}
-gruppi supplementari in aggiunta al gruppo primario, questi vengono ereditati
-dal processo padre e possono essere cambiati con queste funzioni.
-
-La funzione che permette di leggere i gruppi supplementari è
-\funcd{getgroups}; questa funzione è definita nello standard POSIX ed il suo
-prototipo è:
+gruppi supplementari cui un utente può appartenere. Ogni processo può avere
+almeno \const{NGROUPS\_MAX} gruppi supplementari\footnote{il numero massimo di
+  gruppi secondari può essere ottenuto con \func{sysconf} (vedi
+  \secref{sec:sys_sysconf}), leggendo il parametro
+  \texttt{\_SC\_NGROUPS\_MAX}.} in aggiunta al gruppo primario; questi vengono
+ereditati dal processo padre e possono essere cambiati con queste funzioni.
+
+La funzione che permette di leggere i gruppi supplementari associati ad un
+processo è \funcd{getgroups}; questa funzione è definita nello standard
+POSIX.1, ed il suo prototipo è:
 \begin{functions}
   \headdecl{sys/types.h}
   \headdecl{unistd.h}
 \begin{functions}
   \headdecl{sys/types.h}
   \headdecl{unistd.h}
@@ -2065,8 +2068,9 @@ librerie, ma 
 La funzione permette, a seconda del valore di \param{which}, di leggere la
 priorità di un processo, di un gruppo di processi (vedi
 \secref{sec:sess_proc_group}) o di un utente, specificando un corrispondente
 La funzione permette, a seconda del valore di \param{which}, di leggere la
 priorità di un processo, di un gruppo di processi (vedi
 \secref{sec:sess_proc_group}) o di un utente, specificando un corrispondente
-valore per \param{who}; un valore nullo di quest'ultimo indica il processo, il
-gruppo di processi o l'utente correnti.
+valore per \param{who} secondo la legenda di \tabref{tab:proc_getpriority}; un
+valore nullo di quest'ultimo indica il processo, il gruppo di processi o
+l'utente correnti.
 
 \begin{table}[htb]
   \centering
 
 \begin{table}[htb]
   \centering
@@ -2183,18 +2187,17 @@ prototipo 
     \item[\errcode{EINVAL}] il valore di \param{policy} non esiste o il
       relativo valore di \param{p} non è valido.
     \item[\errcode{EPERM}] il processo non ha i privilegi per attivare la
     \item[\errcode{EINVAL}] il valore di \param{policy} non esiste o il
       relativo valore di \param{p} non è valido.
     \item[\errcode{EPERM}] il processo non ha i privilegi per attivare la
-      politica richiesta (vale solo per \const{SCHED\_FIFO} e
-      \const{SCHED\_RR}).
+      politica richiesta.
   \end{errlist}}
 \end{prototype}
 
 La funzione esegue l'impostazione per il processo specificato dall'argomento
 \param{pid}; un valore nullo esegue l'impostazione per il processo corrente.
   \end{errlist}}
 \end{prototype}
 
 La funzione esegue l'impostazione per il processo specificato dall'argomento
 \param{pid}; un valore nullo esegue l'impostazione per il processo corrente.
-Solo un processo con i privilegi di amministratore può impostare delle
-priorità assolute diverse da zero. La politica di scheduling è specificata
-dall'argomento \param{policy} i cui possibili valori sono riportati in
-\tabref{tab:proc_sched_policy}; un valore negativo per \param{policy} mantiene
-la politica di scheduling corrente.
+La politica di scheduling è specificata dall'argomento \param{policy} i cui
+possibili valori sono riportati in \tabref{tab:proc_sched_policy}; un valore
+negativo per \param{policy} mantiene la politica di scheduling corrente.
+Solo un processo con i privilegi di amministratore può impostare priorità
+assolute diverse da zero o politiche \const{SCHED\_FIFO} e \const{SCHED\_RR}.
 
 \begin{table}[htb]
   \centering
 
 \begin{table}[htb]
   \centering
@@ -2222,7 +2225,7 @@ priorit
 massimo ed uno minimo, che nel caso sono rispettivamente 1 e 99 (il valore
 zero è legale, ma indica i processi normali).
 
 massimo ed uno minimo, che nel caso sono rispettivamente 1 e 99 (il valore
 zero è legale, ma indica i processi normali).
 
-\begin{figure}[!htb]
+\begin{figure}[!bht]
   \footnotesize \centering
   \begin{minipage}[c]{15cm}
     \includestruct{listati/sched_param.c}
   \footnotesize \centering
   \begin{minipage}[c]{15cm}
     \includestruct{listati/sched_param.c}
@@ -2249,7 +2252,7 @@ e \funcd{sched\_get\_priority\_min}, i cui prototipi sono:
   \bodydesc{La funzioni ritornano il valore della priorità in caso di successo
     e -1 in caso di errore, nel qual caso \var{errno} può assumere i valori:
     \begin{errlist}
   \bodydesc{La funzioni ritornano il valore della priorità in caso di successo
     e -1 in caso di errore, nel qual caso \var{errno} può assumere i valori:
     \begin{errlist}
-    \item[\errcode{EINVAL}] il valore di \param{policy} è invalido.
+    \item[\errcode{EINVAL}] il valore di \param{policy} non è valido.
   \end{errlist}}
 \end{functions}
 
   \end{errlist}}
 \end{functions}
 
@@ -2298,7 +2301,6 @@ prototipi sono:
   \funcdecl{int sched\_setparam(pid\_t pid, const struct sched\_param *p)}
   Imposta la priorità assoluta del processo \param{pid}.
 
   \funcdecl{int sched\_setparam(pid\_t pid, const struct sched\_param *p)}
   Imposta la priorità assoluta del processo \param{pid}.
 
-
   \funcdecl{int sched\_getparam(pid\_t pid, struct sched\_param *p)}
   Legge la priorità assoluta del processo \param{pid}.
 
   \funcdecl{int sched\_getparam(pid\_t pid, struct sched\_param *p)}
   Legge la priorità assoluta del processo \param{pid}.