Piccole correzioni e revisione di epoll e signalfd.
[gapil.git] / process.tex
index 0ad45f78eb246c474a3df77e8f770b1970cea91f..9d1916f6eecce3af2871bbfbe1d842b7f578f42c 100644 (file)
@@ -1,6 +1,6 @@
 %% process.tex
 %%
-%% Copyright (C) 2000-2013 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2014 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",
@@ -656,13 +656,13 @@ necessariamente adiacenti.
 Per la gestione da parte del kernel la memoria viene divisa in pagine di
 dimensione fissa. Inizialmente queste pagine erano di 4kb sulle macchine a 32
 bit e di 8kb sulle alpha. Con le versioni più recenti del kernel è possibile
-anche utilizzare pagine di dimensioni maggiori (di 4Mb, dette \textit{huge
-  page}), per sistemi con grandi quantitativi di memoria in cui l'uso di
-pagine troppo piccole comporta una perdita di prestazioni. In alcuni sistemi
-la costante \const{PAGE\_SIZE}, definita in \headfile{limits.h}, indica la
-dimensione di una pagina in byte, con Linux questo non avviene e per ottenere
-questa dimensione si deve ricorrere alla funzione \func{getpagesize} (vedi
-sez.~\ref{sec:sys_memory_res}).
+anche utilizzare pagine di dimensioni maggiori (di 4Mb, dette
+\itindex{huge~page} \textit{huge page}), per sistemi con grandi quantitativi
+di memoria in cui l'uso di pagine troppo piccole comporta una perdita di
+prestazioni. In alcuni sistemi la costante \const{PAGE\_SIZE}, definita in
+\headfile{limits.h}, indica la dimensione di una pagina in byte, con Linux
+questo non avviene e per ottenere questa dimensione si deve ricorrere alla
+funzione \func{getpagesize} (vedi sez.~\ref{sec:sys_memory_res}).
 
 Ciascuna pagina di memoria nello spazio di indirizzi virtuale è associata ad
 un supporto che può essere una pagina di memoria reale o ad un dispositivo di
@@ -1831,8 +1831,9 @@ possibili si è poi provveduto ad un'azione opportuna, ad esempio per le tre
 opzioni che prevedono un parametro si è effettuata la decodifica del medesimo,
 il cui indirizzo è contenuto nella variabile \var{optarg}), avvalorando la
 relativa variabile (\texttt{\small 12-14}, \texttt{\small 15-17} e
-\texttt{\small 18-20}). Completato il ciclo troveremo in \var{optind} l'indice
-in \code{argv[]} del primo degli argomenti rimanenti nella linea di comando.
+\texttt{\small 18-20}). Completato il ciclo troveremo in \var{optind}
+l'indice in \code{argv[]} del primo degli argomenti rimanenti nella linea di
+comando.
 
 Normalmente \func{getopt} compie una permutazione degli elementi di
 \param{argv} cosicché alla fine della scansione gli elementi che non sono
@@ -2698,30 +2699,26 @@ una variabile per poi ristamparne il contenuto leggendolo un byte alla volta.
 Il codice di detto programma, \file{endtest.c}, è nei sorgenti allegati,
 allora se lo eseguiamo su un normale PC compatibile, che è \textit{little
   endian} otterremo qualcosa del tipo:
-\begin{Command}
-[piccardi@gont sources]$ ./endtest
-\end{Command}
-%$
-\begin{Terminal}
+\begin{Console}
+[piccardi@gont sources]$ \textbf{./endtest}
 Using value ABCDEF01
 val[0]= 1
 val[1]=EF
 val[2]=CD
 val[3]=AB
-\end{Terminal}
+\end{Console}
+%$
 mentre su un vecchio Macintosh con PowerPC, che è \textit{big endian} avremo
 qualcosa del tipo:
-\begin{Command}
-piccardi@anarres:~/gapil/sources$ ./endtest
-\end{Command}
-%$
-\begin{Terminal}
+\begin{Console}
+piccardi@anarres:~/gapil/sources$ \textbf{./endtest}
 Using value ABCDEF01
 val[0]=AB
 val[1]=CD
 val[2]=EF
 val[3]= 1
-\end{Terminal}
+\end{Console}
+%$
 
 L'attenzione alla \textit{endianness} nella programmazione è importante, perché
 se si fanno assunzioni relative alla propria architettura non è detto che
@@ -2805,7 +2802,7 @@ basterà scegliere una volta per tutte quale usare e attenersi alla scelta.
 % LocalWords:  capability MEMLOCK limits getpagesize RLIMIT munlock sys const
 % LocalWords:  addr len EINVAL EPERM mlockall munlockall flags l'OR CURRENT IFS
 % LocalWords:  argc argv parsing questofile txt getopt optstring switch optarg
-% LocalWords:  optind opterr optopt ForkTest POSIXLY CORRECT long options NdA
+% LocalWords:  optind opterr optopt POSIXLY CORRECT long options NdA
 % LocalWords:  option parameter list environ PATH HOME XPG tab LOGNAME LANG PWD
 % LocalWords:  TERM PAGER TMPDIR getenv name SVr setenv unsetenv putenv opz gcc
 % LocalWords:  clearenv libc value overwrite string reference result argument