X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileadv.tex;h=38bd320f168b551fed88b316b62baf50e2f81272;hp=f6ca20858dde079ac51499bf64a6aad247851849;hb=50b469ec4e7bba4d52eaaa51edd77b18967079c2;hpb=f0f00a6c19f809e188a588e25b48f859148ff971 diff --git a/fileadv.tex b/fileadv.tex index f6ca208..38bd320 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -2076,7 +2076,7 @@ kernel \textit{lease breaker} rimaste bloccate proseguono automaticamente. -\index{file!dnotify|(} +\itindbeg{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 @@ -2154,7 +2154,7 @@ specificate in chiamate successive vengono aggiunte a quelle gi nelle precedenti. Se si vuole rimuovere la notifica si deve invece specificare un valore nullo. -\index{file!inotify|(} +\itindbeg{inotify} Il maggiore problema di \textit{dnotify} è quello della scalabilità: si deve usare un file descriptor per ciascuna directory che si vuole tenere sotto @@ -2174,7 +2174,7 @@ sez.~\ref{sec:sig_adv_control}. Per tutta questa serie di motivi in generale quella di \textit{dnotify} viene considerata una interfaccia di usabilità problematica. -\index{file!dnotify|)} +\itindend{dnotify} Per risolvere i problemi appena illustrati è stata introdotta una nuova interfaccia per l'osservazione delle modifiche a file o directory, chiamata @@ -2656,7 +2656,7 @@ verificano pi dei campi \var{wd}, \var{mask}, \var{cookie}, e \var{name}) questi vengono raggruppati in un solo evento. -\index{file!inotify|)} +\itindend{inotify} % TODO trattare fanotify, vedi http://lwn.net/Articles/339399/ e % http://lwn.net/Articles/343346/ @@ -2736,17 +2736,6 @@ come vedremo, permette di eseguire con una sola chiamata una serie di operazioni, usando un vettore di \textit{control block}. Tramite questo campo si specifica quale è la natura di ciascuna di esse. -\begin{figure}[!htb] - \footnotesize \centering - \begin{minipage}[c]{15cm} - \includestruct{listati/sigevent.h} - \end{minipage} - \normalsize - \caption{La struttura \structd{sigevent}, usata per specificare le modalità - di notifica degli eventi relativi alle operazioni di I/O asincrono.} - \label{fig:file_sigevent} -\end{figure} - Infine il campo \var{aio\_sigevent} è una struttura di tipo \struct{sigevent} che serve a specificare il modo in cui si vuole che venga effettuata la notifica del completamento delle operazioni richieste. La struttura è @@ -4729,13 +4718,16 @@ dello spazio disco cos realizzazione di \func{posix\_fallocate} a partire dalla versione 2.10.} Trattandosi di una funzione di servizio, ed ovviamente disponibile -esclusivamente su Linux, \funcd{fallocate} non è stata definita come funzione -di libreria e pertanto può essere invocata da un programma soltanto in maniera -indiretta con l'ausilio di \func{syscall} (vedi sez.~\ref{sec:intro_syscall}); -il suo prototipo è: +esclusivamente su Linux, inizialmente \funcd{fallocate} non era stata definita +come funzione di libreria,\footnote{pertanto poteva essere invocata soltanto + in maniera indiretta con l'ausilio di \func{syscall}, vedi + sez.~\ref{sec:intro_syscall}, come \code{long fallocate(int fd, int mode, + loff\_t offset, loff\_t len)}.} ma a partire dalle \acr{glibc} 2.10 è + stato fornito un supporto esplicito; il suo prototipo è: \begin{functions} - \headdecl{linux/falloc.h} - \funcdecl{long fallocate(int fd, int mode, loff\_t offset, loff\_t len)} + \headdecl{linux/fcntl.h} + + \funcdecl{int fallocate(int fd, int mode, off\_t offset, off\_t len)} Prealloca dello spazio disco per un file. @@ -4775,12 +4767,8 @@ estensione dello stesso viene aggiornata, come richiesto per \func{fallocate} come l'implementazione ottimale di \func{posix\_fallocate} a livello di kernel. - -% 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 -% \func{fallocate} con il 2.6.25 supporta pure XFS -