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
 
 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}.
 
 \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
 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)}
 
 \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
 \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
 
 \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{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.\\ 
     \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}
 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
   \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
 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
 
 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
 (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
 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
 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.
 
 
 attivi.