X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileadv.tex;h=fb516a3179faf40307aa38ef7400eef1db4df549;hp=ce328748c716953330fa39a6385250fd58066c41;hb=fb6bc58a36d4c05da17c77d2202da5876700b332;hpb=6b41b67f440246432014cb846a8a3d6b718f3074 diff --git a/fileadv.tex b/fileadv.tex index ce32874..fb516a3 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -149,7 +149,7 @@ il primo, \param{readfds}, verr effettuare una lettura, il secondo, \param{writefds}, per verificare la possibilità effettuare una scrittura ed il terzo, \param{exceptfds}, per verificare l'esistenza di condizioni eccezionali (come i messaggi urgenti su -un \textit{socket}\index{socket}, vedi \secref{sec:xxx_urgent}). +un \textit{socket}\index{socket}, vedi \secref{sec:TCP_urgent_data}). Dato che in genere non si tengono mai sotto controllo fino a \const{FD\_SETSIZE} file contemporaneamente la funzione richiede di @@ -192,12 +192,11 @@ rimanente.\footnote{questo pu Uno dei problemi che si presentano con l'uso di \func{select} è che il suo comportamento dipende dal valore del file descriptor che si vuole tenere sotto -controllo. Infatti il kernel riceve solo un valore massimo, e dovrà -effettuare una scansione su tutto l'intervallo, che può essere anche molto -ampio, per capire quali sono i file descriptor da tenere sotto controllo, -anche se sono solo poche unità; e questo ha ovviamente un pessimo risultato -per le prestazioni; il comportamenento viene della funzione viene così a -dipendere in maniera innaturale dal valore del file decriptor. +controllo. Infatti il kernel riceve con \param{n} un valore massimo per tale +valore, e per capire quali sono i file descriptor da tenere sotto controllo +dovrà effettuare una scansione su tutto l'intervallo, che può anche essere +anche molto ampio anche se i file descriptor sono solo poche unità; tutto ciò +ha ovviamente delle conseguenze ampiamente negative per le prestazioni. Inoltre c'è anche il problema che il numero massimo dei file che si possono tenere sotto controllo, la funzione è nata quando il kernel consentiva un @@ -256,27 +255,27 @@ vengono utilizzati solo per \var{revents} come valori in uscita). \begin{table}[htb] \centering \footnotesize - \begin{tabular}[c]{|l|c|l|} + \begin{tabular}[c]{|l|l|} \hline - \textbf{Flag} & \textbf{Valore} & \textbf{Significato} \\ + \textbf{Flag} & \textbf{Significato} \\ \hline \hline - \const{POLLIN} & 0x001 & È possibile la lettura immediata.\\ - \const{POLLPRI} & 0x002 & Sono presenti dati urgenti.\\ - \const{POLLOUT} & 0x004 & È possibile la scrittura immediata.\\ + \const{POLLIN} & È possibile la lettura immediata.\\ + \const{POLLPRI} & Sono presenti dati urgenti.\\ + \const{POLLOUT} & È possibile la scrittura immediata.\\ \hline - \const{POLLERR} & 0x008 & C'è una condizione di errore.\\ - \const{POLLHUP} & 0x010 & Si è verificato un hung-up.\\ - \const{POLLNVAL} & 0x020 & Il file descriptor non è aperto.\\ + \const{POLLERR} & C'è una condizione di errore.\\ + \const{POLLHUP} & Si è verificato un hung-up.\\ + \const{POLLNVAL} & Il file descriptor non è aperto.\\ \hline - \const{POLLRDNORM}& 0x040 & Sono disponibili in lettura dati normali.\\ - \const{POLLRDBAND}& 0x080 & Sono disponibili in lettura dati ad alta - priorità. \\ - \const{POLLWRNORM}& 0x100 & È possibile la scrittura di dati normali. \\ - \const{POLLWRBAND}& 0x200 & È possibile la scrittura di dati ad - alta priorità. \\ - \const{POLLMSG} & 0x400 & Un segnale \const{SIGPOLL} è arrivato alla - cima dello stream.\\ + \const{POLLRDNORM}& Sono disponibili in lettura dati normali.\\ + \const{POLLRDBAND}& Sono disponibili in lettura dati ad alta + priorità. \\ + \const{POLLWRNORM}& È possibile la scrittura di dati normali. \\ + \const{POLLWRBAND}& È possibile la scrittura di dati ad + alta priorità. \\ + \const{POLLMSG} & Un segnale \const{SIGPOLL} è arrivato alla + cima dello stream (non usato).\\ \hline \end{tabular} \caption{Costanti per l'identificazione dei vari bit dei campi