Cambiati indici, aggiunto riferimento per inotify, e qualcosa su TCP_CORK
authorSimone Piccardi <piccardi@gnulinux.it>
Thu, 7 Sep 2006 18:05:22 +0000 (18:05 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Thu, 7 Sep 2006 18:05:22 +0000 (18:05 +0000)
fileadv.tex
sockctrl.tex

index c0eccaf94e0b36984b66caa4f1406ae5e3c5ca8c..29e78d9f1ea97580395a9f68ccb6aece2b6289b3 100644 (file)
@@ -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|(}
 
 
 
index 5ce4c6b7af6b87c9a3dc90ea64834efc3ad5ec91..18cada6e51c6bb9b0a4e9faffa384ac59eba370c 100644 (file)
@@ -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}]