Segnali real-time completati (forse).
[gapil.git] / fileadv.tex
index 2f16a2759b42799018f3275428c967a6cee3ae0e..531aaa0b7af806ecc604a6e7a88b15791426c5c7 100644 (file)
@@ -91,7 +91,7 @@ con la funzione \func{select}, il cui prototipo 
 
 La funzione mette il processo in stato di \textit{sleep} (vedi
 \tabref{tab:proc_proc_states}) fintanto che almeno uno dei file descriptor
-degli insiemo specificati (\param{readfds}, \param{writefds} e
+degli insiemi specificati (\param{readfds}, \param{writefds} e
 \param{exceptfds}), non diventa attivo, per un tempo massimo specificato da
 \param{timeout}.
 
@@ -168,7 +168,7 @@ 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 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)}
 
@@ -191,7 +191,7 @@ specificati attraverso un vettore di puntatori a strutture di tipo
 \type{pollfd}, la cui definizione è riportata in \figref{fig:file_pollfd}.
 Come \func{select} anche \func{poll} permette di interrompere l'attesa dopo un
 certo tempo, che va specificato attraverso \param{timeout} in numero di
-millesecondi (un valore negativo indica un'attesa indefinita).
+millisecondi (un valore negativo indica un'attesa indefinita).
 
 \begin{figure}[!htb]
   \footnotesize \centering
@@ -230,7 +230,7 @@ vengono utilizzati solo per \var{revents} come valori in uscita).
     \macro{POLLOUT}   & 0x004 & È possibile la scrittura immediata.\\
     \hline
     \macro{POLLERR}   & 0x008 & C'è una condizione di errore.\\
-    \macro{POLLHUP}   & 0x010 & Si è vericato un hung-up.\\
+    \macro{POLLHUP}   & 0x010 & Si è verificato un hung-up.\\
     \macro{POLLNVAL}  & 0x020 & Il file descriptor non è aperto.\\
     \hline
     \macro{POLLRDNORM}& 0x040 & Sono disponibili in lettura dati normali.\\ 
@@ -262,7 +262,7 @@ ad esso relative vengano dichiarate nell'header \file{sys/select.h}, che
 sostituisce i precedenti, ed aggiunge a \func{select} una nuova funzione
 \func{pselect},\footnote{il supporto per lo standard POSIX 1003.1-2001, ed
   l'header \file{sys/select.h}, compaiono in Linux a partire dalle \acr{glibc}
-  2.0. Le \acr{libc4} e \acr{libc5} non contengono questo header, le
+  2.1. Le \acr{libc4} e \acr{libc5} non contengono questo header, le
   \acr{glibc} 2.0 contengono una definizione sbagliata di \func{psignal},
   senza l'argomento \param{sigmask}, la definizione corretta è presente dalle
   \acr{glibc} 2.1-2.2.1 se si è definito \macro{\_GNU\_SOURCE} e nelle
@@ -337,9 +337,9 @@ modalit
 In questo modo si può evitare l'uso delle funzioni \func{poll} o \func{select}
 che, quando vengono usate con un numero molto grande di file descriptor, non
 hanno buone prestazioni. In tal caso infatti la maggior parte del loro tempo
-di esecuzione è impegato per eseguire uno scan su tutti i file descriptor
-tenuti sotto controllo per determinare quali sono quelli (in genere un piccola
-percentuale) che sono diventati attivi.
+di esecuzione è impegnato ad eseguire una scansione su tutti i file descriptor
+tenuti sotto controllo per determinare quali di essi (in genere una piccola
+percentuale) sono diventati attivi.
 
 Tuttavia con l'implementazione classica dei segnali questa modalità di I/O
 presenta notevoli problemi, dato che non è possibile determinare, quando sono
@@ -354,7 +354,7 @@ Per far questo per
 (vedi \secref{sec:sig_real_time}) settando esplicitamente con il comando
 \macro{F\_SETSIG} di \func{fcntl} un segnale real-time da inviare in caso di
 I/O asincrono (il segnale di default è \macro{SIGIO}). In questo caso il
-manipolatorem tutte le volte che riceverà \macro{SI\_SIGIO} come valore del
+manipolatore tutte le volte che riceverà \macro{SI\_SIGIO} come valore del
 campo \var{si\_code}\footnote{il valore resta \macro{SI\_SIGIO} qualunque sia
   il segnale che si è associato all'I/O asincrono, ed indica appunto che il
   segnale è stato generato a causa di attività nell'I/O asincrono.} di
@@ -370,7 +370,7 @@ come \func{poll} e \func{select}, almeno fintanto che non si satura la coda;
 si eccedono le dimensioni di quest'ultima; in tal caso infatti il kernel, non
 potendo più assicurare il comportamento corretto per un segnale real-time,
 invierà al suo posto un \var{SIGIO}, su cui si accumuleranno tutti i segnali
-in eccesso, e si dovra determinare al solito modo quali sono i file diventati
+in eccesso, e si dovrà determinare al solito modo quali sono i file diventati
 attivi.