Iserita syslog
[gapil.git] / fileadv.tex
index a3118b09778834913399512c55dc9865f187335f..ea80eb79f746f35335adbc777b8a36fad6ac0fa4 100644 (file)
@@ -78,7 +78,7 @@ con la funzione \func{select}, il cui prototipo 
   
   \bodydesc{La funzione in caso di successo restituisce il numero di file
     descriptor (anche nullo) che sono attivi, e -1 in caso di errore, nel qual
-    caso \var{errno} viene impostata ai valori:
+    caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato in uno
   degli insiemi.
@@ -169,7 +169,8 @@ Come accennato l'interfaccia di \func{select} 
 System V ha introdotto una sua interfaccia per gestire l'\textit{I/O
   multiplexing}, basata sulla funzione \func{poll},\footnote{la funzione è
   prevista dallo standard XPG4, ed è stata introdotta in Linux come system
-  call a partire dal kernel 2.1.23 e dalle \acr{libc} 5.4.28.} il cui prototipo è:
+  call a partire dal kernel 2.1.23 e dalle \acr{libc} 5.4.28.} il cui
+prototipo è:
 \begin{prototype}{sys/poll.h}
   {int poll(struct pollfd *ufds, unsigned int nfds, int timeout)}
 
@@ -178,7 +179,7 @@ specificati da \param{ufds}.
   
 \bodydesc{La funzione restituisce il numero di file descriptor con attività in
   caso di successo, o 0 se c'è stato un timeout; in caso di errore viene
-  restituito  -1 ed \var{errno} viene impostata ai valori:
+  restituito  -1 ed \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato in uno
   degli insiemi.
@@ -278,7 +279,7 @@ sostituisce i precedenti, ed aggiunge a \func{select} una nuova funzione
   
   \bodydesc{La funzione in caso di successo restituisce il numero di file
     descriptor (anche nullo) che sono attivi, e -1 in caso di errore, nel qual
-    caso \var{errno} viene impostata ai valori:
+    caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato in uno
   degli insiemi.
@@ -308,7 +309,7 @@ del test e riabilitandolo poi grazie all'uso di \param{sigmask}.
 
 
 
-\subsection{L'\textsl{I/O asincrono}}
+\subsection{L'I/O asincrono}
 \label{sec:file_asyncronous_io}
 
 Una modalità alternativa all'uso dell'\textit{I/O multiplexing} è quella di
@@ -352,7 +353,7 @@ attraverso la struttura \type{siginfo\_t}, utilizzando la forma estesa
 \secref{sec:sig_sigaction}).
 
 Per far questo però occorre utilizzare le funzionalità dei segnali real-time
-(vedi \secref{sec:sig_real_time}) imopstando esplicitamente con il comando
+(vedi \secref{sec:sig_real_time}) impostando esplicitamente con il comando
 \macro{F\_SETSIG} di \func{fcntl} un segnale real-time da inviare in caso di
 I/O asincrono (il segnale predefinito è \macro{SIGIO}). In questo caso il
 manipolatore tutte le volte che riceverà \macro{SI\_SIGIO} come valore del
@@ -388,10 +389,11 @@ implementata sia direttamente nel kernel, che in user space attraverso l'uso
 di thread. Al momento\footnote{fino ai kernel della serie 2.4.x, nella serie
   2.5.x è però iniziato un lavoro completo di riscrittura di tutto il sistema
   di I/O, che prevede anche l'introduzione di un nuovo layer per l'I/O
-  asincrono.} esiste una sola versione stabile di questa interfaccia, quella
-delle \acr{glibc}, che è realizzata completamente in user space.  Esistono
-comunque vari progetti sperimentali (come il KAIO della SGI, o i patch di
-Benjamin La Haise) che prevedono un supporto diretto da parte del kernel.
+  asincrono (effettuato a partire dal 2.5.32).} esiste una sola versione
+stabile di questa interfaccia, quella delle \acr{glibc}, che è realizzata
+completamente in user space.  Esistono comunque vari progetti sperimentali
+(come il KAIO della SGI, o i patch di Benjamin La Haise) che prevedono un
+supporto diretto da parte del kernel.
 
 Lo standard prevede che tutte le operazioni di I/O asincrono siano controllate
 attraverso l'uso di una apposita struttura \type{aiocb} (il cui nome sta per
@@ -503,7 +505,7 @@ appena descritta; i rispettivi prototipi sono:
   \param{aiocbp}.
   
   \bodydesc{Le funzioni restituiscono 0 in caso di successo, e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] Si è specificato un file descriptor sbagliato.
   \item[\macro{ENOSYS}] La funzione non è implementata.
@@ -674,8 +676,8 @@ specifica operazione; il suo prototipo 
   operazioni specificate da \param{list}.
   
   \bodydesc{La funzione restituisce 0 se una (o più) operazioni sono state
-    completate, e -1 in caso di errore nel qual caso \var{errno} viene
-    impostata ai valori:
+    completate, e -1 in caso di errore nel qual caso \var{errno} assumerà uno
+    dei valori:
     \begin{errlist}
     \item[\macro{EAGAIN}] Nessuna operazione è stata completata entro
       \param{timeout}.
@@ -706,7 +708,7 @@ lettura o scrittura; il suo prototipo 
   secondo la modalità \param{mode}.
   
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
-    errore, nel qual caso \var{errno} viene impostata ai valori:
+    errore, nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EAGAIN}] Nessuna operazione è stata completata entro
       \param{timeout}.
@@ -773,8 +775,8 @@ prototipi sono:
   specificati da \param{vector}.
   
   \bodydesc{Le funzioni restituiscono il numero di byte letti o scritti in
-    caso di successo, e -1 in caso di errore, nel qual caso \var{errno} viene
-    impostata ai valori:
+    caso di successo, e -1 in caso di errore, nel qual caso \var{errno}
+    assumerà uno dei valori:
   \begin{errlist}
   \item[\macro{EBADF}] si è specificato un file descriptor sbagliato.
   \item[\macro{EINVAL}] si è specificato un valore non valido per uno degli
@@ -817,7 +819,7 @@ I buffer da utilizzare sono indicati attraverso l'argomento \param{vector} che
 \param{count}.  Ciascuna struttura dovrà essere inizializzata per
 opportunamente per indicare i vari buffer da/verso i quali verrà eseguito il
 trasferimento dei dati. Essi verranno letti (o scritti) nell'ordine in cui li
-si sono specificati nel vattore \var{vector}.
+si sono specificati nel vettore \var{vector}.
 
 
 \subsection{File mappati in memoria}
@@ -840,7 +842,7 @@ memoria, quanto di memoria mappata su file.
   \centering
   \includegraphics[width=9.5cm]{img/mmap_layout}
   \caption{Disposizione della memoria di un processo quando si esegue la
-  mappatuara in memoria di un file.}
+  mappatura in memoria di un file.}
   \label{fig:file_mmap_layout}
 \end{figure}
 
@@ -880,7 +882,7 @@ in memoria di un file; il suo prototipo 
   
   \bodydesc{La funzione restituisce il puntatore alla zona di memoria mappata
     in caso di successo, e \macro{MAP\_FAILED} (-1) in caso di errore, nel
-    qual caso \var{errno} viene impostata ai valori:
+    qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EBADF}] Il file descriptor non è valido, e non si è usato
       \macro{MAP\_ANONYMOUS}.
@@ -1000,7 +1002,7 @@ come maschera binaria ottenuta dall'OR di uno o pi
                              argomenti \param{fd} e \param{offset} sono
                              ignorati.\footnotemark\\
     \macro{MAP\_ANON}      & Sinonimo di \macro{MAP\_ANONYMOUS}, deprecato.\\
-    \macro{MAP\_FILE}      & Valore di compatibiità, deprecato.\\
+    \macro{MAP\_FILE}      & Valore di compatibilità, deprecato.\\
     \hline
   \end{tabular}
   \caption{Valori possibili dell'argomento \param{flag} di \func{mmap}.}
@@ -1037,7 +1039,7 @@ di memoria che si estende fino al bordo della pagina successiva.
   \centering
   \includegraphics[width=10cm]{img/mmap_boundary}
   \caption{Schema della mappatura in memoria di una sezione di file di
-    dimensioni non corripondenti al bordo di una pagina.}
+    dimensioni non corrispondenti al bordo di una pagina.}
   \label{fig:file_mmap_boundary}
 \end{figure}
 
@@ -1128,7 +1130,7 @@ contenuto della memoria mappata con il file su disco; il suo prototipo 
   Sincronizza i contenuti di una sezione di un file mappato in memoria.
   
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
-    errore nel qual caso \var{errno} viene impostata ai valori:
+    errore nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EINVAL}] O \param{start} non è multiplo di \macro{PAGESIZE},
     o si è specificato un valore non valido per \param{flags}.
@@ -1184,7 +1186,7 @@ mappatura della memoria usando la funzione \func{munmap}, il suo prototipo 
   Rilascia la mappatura sulla sezione di memoria specificata.
 
   \bodydesc{La funzione restituisce 0 in caso di successo, e -1 in caso di
-    errore nel qual caso \var{errno} viene impostata ai valori:
+    errore nel qual caso \var{errno} assumerà uno dei valori:
     \begin{errlist}
     \item[\macro{EINVAL}] L'intervallo specificato non ricade in una zona
       precedentemente mappata.
@@ -1254,7 +1256,7 @@ l'userid effettivo con cui viene eseguito un programma, ed 
 associato alla presenza del permesso di esecuzione. Impostando questo bit su
 un file senza permesso di esecuzione in un sistema che supporta il
 \textit{mandatory locking}, fa sì che quest'ultimo venga attivato per il file
-in questione. In questo modo una combinaizone dei permessi originariamente non
+in questione. In questo modo una combinazione dei permessi originariamente non
 contemplata, in quanto senza significato, diventa l'indicazione della presenza
 o meno del \textit{mandatory locking}.