From e35bdc25982790962f06f395b8329634d67448e9 Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Thu, 7 Sep 2006 18:05:22 +0000 Subject: [PATCH] Cambiati indici, aggiunto riferimento per inotify, e qualcosa su TCP_CORK --- fileadv.tex | 28 ++++++++++++---------------- sockctrl.tex | 19 ++++++++++++++----- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/fileadv.tex b/fileadv.tex index c0eccaf..29e78d9 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -690,7 +690,7 @@ kernel \textit{lease breaker} rimaste bloccate proseguono automaticamente. -\index{file!notify|(} +\index{file!dnotify|(} Benché possa risultare utile per sincronizzare l'accesso ad uno stesso file da parte di più processi, l'uso dei \textit{file lease} non consente comunque di @@ -698,12 +698,13 @@ risolvere il problema di rilevare automaticamente quando un file viene modificato, che è quanto necessario ad esempio ai programma di gestione dei file dei vari desktop grafici. -Per risolvere questo problema è stata allora creata un'altra interfaccia che -consente di richiedere una notifica quando una directory, o di uno qualunque -dei file in essa contenuti, viene modificato. Come per i \textit{file lease} -la notifica avviene di default attraverso il segnale \const{SIGIO}, ma questo -può essere modificato e si può ottenere nel manipolatore il file descriptor -che è stato modificato dal contenuto della struttura \struct{siginfo\_t}. +Per risolvere questo problema è stata allora creata un'altra interfaccia, +chiamata \textit{dnotify}, che consente di richiedere una notifica quando una +directory, o di uno qualunque dei file in essa contenuti, viene modificato. +Come per i \textit{file lease} la notifica avviene di default attraverso il +segnale \const{SIGIO}, ma questo può essere modificato e si può ottenere nel +manipolatore il file descriptor che è stato modificato dal contenuto della +struttura \struct{siginfo\_t}. \index{file!lease|)} @@ -760,18 +761,13 @@ ultimi si \textsl{accumulano}; cio specificate in chiamate successive vengono aggiunte a quelle già impostate nelle precedenti. Se si vuole rimuovere la notifica si deve invece specificare un valore nullo. +\index{file!dnotify|)} -\index{file!notify|)} - - - - - - - -% TODO inserire anche inotify +\index{file!inotify|)} +% TODO inserire anche inotify, vedi http://www.linuxjournal.com/article/8478 +\index{file!inotify|(} diff --git a/sockctrl.tex b/sockctrl.tex index 5ce4c6b..18cada6 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -3074,17 +3074,20 @@ opzioni trasmissione di tanti pacchetti piccoli, che comporta un utilizzo non ottimale della banda disponibile, un meccanismo di bufferizzazione dei pacchetti uscenti controllato da un apposito algoritmo (detto - \textsl{algoritmo di Nagle}, vedi sez.\ref{sez:tcp_protocol_xxx}). - Il comportamento normale prevede invece che i pacchetti siano accumulati + \textsl{algoritmo di Nagle}, vedi sez.\ref{sez:tcp_protocol_xxx}). Il + comportamento normale prevede invece che i pacchetti siano accumulati fintanto che non si raggiunge una quantità di dati considerata adeguata per - eseguire la trasmissione. + eseguire la trasmissione. Impostando questa opzione si disabilita questo meccanismo ed i pacchetti vengono inviati immediatamente qualunque sia la loro dimensione; l'opzione viene sovrascritta dall'eventuale impostazione \const{TCP\_CORK} (che blocca l'invio immediato), tuttavia quando la si abilita viene sempre forzato lo scaricamento della coda di invio (con conseguente trasmissione di tutti i - pacchetti pendenti), anche qualora si fosse già abilitata \const{TCP\_CORK}. + pacchetti pendenti), anche qualora si fosse già abilitata + \const{TCP\_CORK}.\footnote{si tenga presente però che \const{TCP\_CORK} può + essere specificata insieme a \const{TCP\_NODELAY} soltanto a partire dal + kernel 2.5.71.} \item[\const{TCP\_MAXSEG}] permette di leggere e modificare il valore della \itindex{Maximum~Segment~Size} MSS dei pacchetti uscenti, e se l'opzione è @@ -3095,7 +3098,13 @@ opzioni \item[\const{TCP\_CORK}] quando questa opzione viene abilitata non vengono inviati pacchetti di dati fintanto che essa non venga disabilitata; a quel - punto tutti i pacchetti rimasti in coda saranno inviati. + punto tutti i dati rimasti in coda saranno inviati in un solo pacchetto. + Questa opzione viene usata per gestire direttamente il flusso dei dati + mettendo un ``\textsl{tappo}'' al flusso di uscita, in modo ottimizzare a + mano il throughput. + + Questa opzione non è disponibile su tutti i kernel unix-like e deve essere + evitata se si vuole avere codice portabile. \item[\const{TCP\_KEEPINTVL}] -- 2.30.2