Novita` del kernel 2.6.23
[gapil.git] / fileadv.tex
index 4b603130f60921044b11ed1c67bcb1d20c99a5aa..ee802fb4fee414c3e308c4744f4db1789dfa1405 100644 (file)
@@ -2937,13 +2937,15 @@ semplicemente un ``\textsl{dimezzamento}'' di \func{sendfile}.\footnote{nel
   sarebbe altro che la lettura degli stessi su un buffer seguita dalla
   relativa scrittura, cosa che in questo caso si dovrebbe eseguire con due
   chiamate a \func{splice}.} In realtà le due system call sono profondamente
   sarebbe altro che la lettura degli stessi su un buffer seguita dalla
   relativa scrittura, cosa che in questo caso si dovrebbe eseguire con due
   chiamate a \func{splice}.} In realtà le due system call sono profondamente
-diverse nel loro meccanismo di funzionamento; \func{sendfile} infatti, come
-accennato, non necessita affatto di avere a disposizione un buffer interno,
-perché esegue un trasferimento diretto di dati; questo la rende in generale
-molto più efficiente, ma anche limitata nelle sue applicazioni, dato che
-questo tipo di trasferimento è possibile solo in casi specifici.\footnote{e
-  nel caso di Linux questi sono anche solo quelli in cui essa può essere
-  effettivamente utilizzata.}
+diverse nel loro meccanismo di funzionamento;\footnote{questo fino al kernel
+  2.6.23, dove \func{sendfile} è stata reimplementata in termini di
+  \func{splice}, pur mantenendo disponibile la stessa interfaccia verso l'user
+  space.} \func{sendfile} infatti, come accennato, non necessita di avere a
+disposizione un buffer interno, perché esegue un trasferimento diretto di
+dati; questo la rende in generale più efficiente, ma anche limitata nelle sue
+applicazioni, dato che questo tipo di trasferimento è possibile solo in casi
+specifici.\footnote{e nel caso di Linux questi sono anche solo quelli in cui
+  essa può essere effettivamente utilizzata.}
 
 Il concetto che sta dietro a \func{splice} invece è diverso,\footnote{in
   realtà la proposta originale di Larry Mc Voy non differisce poi tanto negli
 
 Il concetto che sta dietro a \func{splice} invece è diverso,\footnote{in
   realtà la proposta originale di Larry Mc Voy non differisce poi tanto negli
@@ -3389,7 +3391,7 @@ all'accesso al disco; il suo prototipo 
 
 La funzione richiede che venga letto in anticipo il contenuto del file
 \param{fd} a partire dalla posizione \param{offset} e per un ammontare di
 
 La funzione richiede che venga letto in anticipo il contenuto del file
 \param{fd} a partire dalla posizione \param{offset} e per un ammontare di
-\param{count} bytes, in modo da portarlo in cache.  La funzione usa la
+\param{count} byte, in modo da portarlo in cache.  La funzione usa la
 \index{memoria~virtuale} memoria virtuale ed il meccanismo della
 \index{paginazione} paginazione per cui la lettura viene eseguita in blocchi
 corrispondenti alle dimensioni delle pagine di memoria, ed i valori di
 \index{memoria~virtuale} memoria virtuale ed il meccanismo della
 \index{paginazione} paginazione per cui la lettura viene eseguita in blocchi
 corrispondenti alle dimensioni delle pagine di memoria, ed i valori di
@@ -3444,13 +3446,13 @@ definisce la macro \macro{\_XOPEN\_SOURCE} ad almeno 600, 
 La funzione dichiara al kernel le modalità con cui intende accedere alla
 regione del file indicato da \param{fd} che inizia alla posizione
 \param{offset} e si estende per \param{len} byte. Se per \param{len} si usa un
 La funzione dichiara al kernel le modalità con cui intende accedere alla
 regione del file indicato da \param{fd} che inizia alla posizione
 \param{offset} e si estende per \param{len} byte. Se per \param{len} si usa un
-valora nullo la regione coperta sarà da \param{offset} alla fine del
+valore nullo la regione coperta sarà da \param{offset} alla fine del
 file.\footnote{questo è vero solo per le versioni più recenti, fino al kernel
   2.6.6 il valore nullo veniva interpretato letteralmente.} Le modalità sono
 indicate dall'argomento \param{advice} che è una maschera binaria dei valori
 illustrati in tab.~\ref{tab:posix_fadvise_flag}. Si tenga presente comunque
 che la funzione dà soltanto un avvertimento, non esiste nessun vincolo per il
 file.\footnote{questo è vero solo per le versioni più recenti, fino al kernel
   2.6.6 il valore nullo veniva interpretato letteralmente.} Le modalità sono
 indicate dall'argomento \param{advice} che è una maschera binaria dei valori
 illustrati in tab.~\ref{tab:posix_fadvise_flag}. Si tenga presente comunque
 che la funzione dà soltanto un avvertimento, non esiste nessun vincolo per il
-kernel, che utilzza semplicemente l'informazione.
+kernel, che utilizza semplicemente l'informazione.
 
 \begin{table}[htb]
   \centering
 
 \begin{table}[htb]
   \centering
@@ -3465,11 +3467,11 @@ kernel, che utilzza semplicemente l'informazione.
                                    comportamento sarà identico a quello che si
                                    avrebbe senza nessun avviso.\\ 
     \const{POSIX\_FADV\_SEQUENTIAL}& L'applicazione si aspetta di accedere di
                                    comportamento sarà identico a quello che si
                                    avrebbe senza nessun avviso.\\ 
     \const{POSIX\_FADV\_SEQUENTIAL}& L'applicazione si aspetta di accedere di
-                                   accedere ai dati spercificati in maniera
+                                   accedere ai dati specificati in maniera
                                    sequenziale, a partire dalle posizioni più
                                    basse.\\ 
     \const{POSIX\_FADV\_RANDOM}  & I dati saranno letti in maniera
                                    sequenziale, a partire dalle posizioni più
                                    basse.\\ 
     \const{POSIX\_FADV\_RANDOM}  & I dati saranno letti in maniera
-                                   completamete causale.\\
+                                   completamente causale.\\
     \const{POSIX\_FADV\_NOREUSE} & I dati saranno acceduti una sola volta.\\ 
     \const{POSIX\_FADV\_WILLNEED}& I dati saranno acceduti a breve.\\ 
     \const{POSIX\_FADV\_DONTNEED}& I dati non saranno acceduti a breve.\\ 
     \const{POSIX\_FADV\_NOREUSE} & I dati saranno acceduti una sola volta.\\ 
     \const{POSIX\_FADV\_WILLNEED}& I dati saranno acceduti a breve.\\ 
     \const{POSIX\_FADV\_DONTNEED}& I dati non saranno acceduti a breve.\\ 
@@ -3484,7 +3486,7 @@ kernel, che utilzza semplicemente l'informazione.
 Anche \func{posix\_fadvise} si appoggia al sistema della memoria virtuale ed
 al meccanismo standard del \textit{readahead} utilizzato dal kernel; in
 particolare con \const{POSIX\_FADV\_SEQUENTIAL} si raddoppia la dimensione
 Anche \func{posix\_fadvise} si appoggia al sistema della memoria virtuale ed
 al meccanismo standard del \textit{readahead} utilizzato dal kernel; in
 particolare con \const{POSIX\_FADV\_SEQUENTIAL} si raddoppia la dimensione
-dell'ammontare di dati letti preventivamente rispetto al default, apettandosi
+dell'ammontare di dati letti preventivamente rispetto al default, aspettandosi
 appunto una lettura sequenziale che li utilizzerà, mentre con
 \const{POSIX\_FADV\_RANDOM} si disabilita del tutto il suddetto meccanismo,
 dato che con un accesso del tutto casuale è inutile mettersi a leggere i dati
 appunto una lettura sequenziale che li utilizzerà, mentre con
 \const{POSIX\_FADV\_RANDOM} si disabilita del tutto il suddetto meccanismo,
 dato che con un accesso del tutto casuale è inutile mettersi a leggere i dati
@@ -3548,7 +3550,7 @@ possibile scrivere sul file indicato dall'argomento \param{fd} nella regione
 che inizia dalla posizione \param{offset} e si estende per \param{len} byte;
 se questa si estende oltre la fine del file le dimensioni di quest'ultimo
 saranno incrementate di conseguenza. Dopo aver eseguito con successo la
 che inizia dalla posizione \param{offset} e si estende per \param{len} byte;
 se questa si estende oltre la fine del file le dimensioni di quest'ultimo
 saranno incrementate di conseguenza. Dopo aver eseguito con successo la
-funzione è garantito che una scrittura nella regione inidicata non fallirà per
+funzione è garantito che una scrittura nella regione indicata non fallirà per
 mancanza di spazio disco.
 
 
 mancanza di spazio disco.
 
 
@@ -3559,7 +3561,7 @@ mancanza di spazio disco.
 
 % TODO documentare \func{fallocate}, introdotta con il 2.6.23
 % vedi http://lwn.net/Articles/226710/ e http://lwn.net/Articles/240571/
 
 % TODO documentare \func{fallocate}, introdotta con il 2.6.23
 % vedi http://lwn.net/Articles/226710/ e http://lwn.net/Articles/240571/
-
+% http://kernelnewbies.org/Linux_2_6_23
 
 %\subsection{L'utilizzo delle porte di I/O}
 %\label{sec:file_io_port}
 
 %\subsection{L'utilizzo delle porte di I/O}
 %\label{sec:file_io_port}
@@ -4467,10 +4469,11 @@ possibilit
 % LocalWords:  NUL sizeof casting printevent nread limits sysconf SC wrapper Di
 % LocalWords:  splice result argument DMA controller zerocopy Linus Larry Voy
 % LocalWords:  Jens Anxboe vmsplice seek ESPIPE GIFT TCP CORK MSG splicecp nr
 % LocalWords:  NUL sizeof casting printevent nread limits sysconf SC wrapper Di
 % LocalWords:  splice result argument DMA controller zerocopy Linus Larry Voy
 % LocalWords:  Jens Anxboe vmsplice seek ESPIPE GIFT TCP CORK MSG splicecp nr
-% LocalWords:  nwrite segs patch readahead
+% LocalWords:  nwrite segs patch readahead posix fadvise TC advice FADV NORMAL
 
 
 %%% Local Variables: 
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
 
 
 %%% Local Variables: 
 %%% mode: latex
 %%% TeX-master: "gapil"
 %%% End: 
+% LocalWords:  SEQUENTIAL NOREUSE WILLNEED DONTNEED streaming fallocate EFBIG