\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
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|)}
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|(}
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 è
\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}]