X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=fileadv.tex;h=a4692add51a508ea1436a0381cbd6e55396d0719;hp=86a0aca057573310db4a61cb1261675c10c03c8d;hb=94b4d603807121b40eef06d22d2b6cd6e06ec7fd;hpb=2414addb7861eb72315a3de58b6f2cb5c83ab6ed diff --git a/fileadv.tex b/fileadv.tex index 86a0aca..a4692ad 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -24,7 +24,7 @@ controllo più dettagliato delle modalità di I/O. \section{Il \textit{file locking}} \label{sec:file_locking} -\index{file!locking|(} +\itindbeg{file~locking} In sez.~\ref{sec:file_sharing} abbiamo preso in esame le modalità in cui un sistema unix-like gestisce la condivisione dei file da parte di processi @@ -799,7 +799,7 @@ affatto equivalente a \func{flock}). \subsection{Il \textit{mandatory locking}} \label{sec:file_mand_locking} -\itindbeg{mandatory~locking|(} +\itindbeg{mandatory~locking} Il \textit{mandatory locking} è una opzione introdotta inizialmente in SVr4, per introdurre un \textit{file locking} che, come dice il nome, fosse @@ -890,9 +890,9 @@ soltanto quando si chiama \func{mmap} con l'opzione \const{MAP\_SHARED} (nel qual caso la funzione fallisce con il solito \errcode{EAGAIN}) che comporta la possibilità di modificare il file. -\index{file!locking|)} +\itindend{file~locking} -\itindend{mandatory~locking|(} +\itindend{mandatory~locking} \section{L'\textit{I/O multiplexing}} @@ -1521,7 +1521,7 @@ sono: nel sistema. \item[\errcode{EMFILE}] si è raggiunto il limite sul numero massimo di istanze di \textit{epoll} per utente stabilito da - \procfile{/proc/sys/fs/epoll/max\_user\_instances}. + \sysctlfile{fs/epoll/max\_user\_instances}. \item[\errcode{ENOMEM}] non c'è sufficiente memoria nel kernel per creare l'istanza. \end{errlist} @@ -1576,7 +1576,7 @@ controllare, per questo si deve usare la seconda funzione dell'interfaccia, \item[\errcode{EPERM}] il file \param{fd} non supporta \textit{epoll}. \item[\errcode{ENOSPC}] si è raggiunto il limite massimo di registrazioni per utente di file descriptor da osservare imposto da - \procfile{/proc/sys/fs/epoll/max\_user\_watches}. + \sysctlfile{fs/epoll/max\_user\_watches}. \end{errlist} } \end{prototype} @@ -2560,8 +2560,8 @@ diventati attivi. L'unico modo per essere sicuri che questo non avvenga è di impostare la lunghezza della coda dei segnali real-time ad una dimensione identica al valore massimo del numero di file descriptor utilizzabili.\footnote{vale a dire impostare il contenuto di - \procfile{/proc/sys/kernel/rtsig-max} allo stesso valore del contenuto di - \procfile{/proc/sys/fs/file-max}.} + \sysctlfile{kernel/rtsig-max} allo stesso valore del contenuto di + \sysctlfile{fs/file-max}.} % TODO fare esempio che usa O_ASYNC @@ -2613,7 +2613,7 @@ partire dalla versione 2.4 del kernel, attraverso l'uso di alcuni sez.~\ref{sec:file_fcntl}), che divengono disponibili soltanto se si è definita la macro \macro{\_GNU\_SOURCE} prima di includere \file{fcntl.h}. -\index{file!lease|(} +\itindbeg{file~lease} La prima di queste funzionalità è quella del cosiddetto \textit{file lease}; questo è un meccanismo che consente ad un processo, detto \textit{lease @@ -2711,7 +2711,7 @@ operazione di lettura, declassando il \textit{lease} a lettura con Se il \textit{lease holder} non provvede a rilasciare il \textit{lease} entro il numero di secondi specificato dal parametro di sistema mantenuto in -\procfile{/proc/sys/fs/lease-break-time} sarà il kernel stesso a rimuoverlo (o +\sysctlfile{fs/lease-break-time} sarà il kernel stesso a rimuoverlo (o declassarlo) automaticamente.\footnote{questa è una misura di sicurezza per evitare che un processo blocchi indefinitamente l'accesso ad un file acquisendo un \textit{lease}.} Una volta che un \textit{lease} è stato @@ -2745,7 +2745,7 @@ come in precedenza, si potrà ottenere nel gestore del segnale il file descriptor che è stato modificato tramite il contenuto della struttura \struct{siginfo\_t}. -\index{file!lease|)} +\itindend{file~lease} \begin{table}[htb] \centering @@ -2857,7 +2857,7 @@ effettuate le operazioni di notifica;\footnote{per evitare abusi delle risorse di sistema è previsto che un utente possa utilizzare un numero limitato di istanze di \textit{inotify}; il valore di default del limite è di 128, ma questo valore può essere cambiato con \func{sysctl} o usando il file - \procfile{/proc/sys/fs/inotify/max\_user\_instances}.} si tratta di un file + \sysctlfile{fs/inotify/max\_user\_instances}.} si tratta di un file descriptor speciale che non è associato a nessun file su disco, e che viene utilizzato solo per notificare gli eventi che sono stati posti in osservazione. Dato che questo file descriptor non è associato a nessun file o @@ -2918,7 +2918,7 @@ modalità della stessa. L'operazione può essere ripetuta per tutti i file e le directory che si vogliono tenere sotto osservazione,\footnote{anche in questo caso c'è un limite massimo che di default è pari a 8192, ed anche questo valore può essere cambiato con \func{sysctl} o usando il file - \procfile{/proc/sys/fs/inotify/max\_user\_watches}.} e si utilizzerà sempre + \sysctlfile{fs/inotify/max\_user\_watches}.} e si utilizzerà sempre un solo file descriptor. Il tipo di evento che si vuole osservare deve essere specificato @@ -3152,7 +3152,7 @@ aggiuntivi\footnote{questi compaiono solo nel campo \var{mask} di \end{table} \footnotetext{la coda di notifica ha una dimensione massima specificata dal - parametro di sistema \procfile{/proc/sys/fs/inotify/max\_queued\_events} che + parametro di sistema \sysctlfile{fs/inotify/max\_queued\_events} che indica il numero massimo di eventi che possono essere mantenuti sulla stessa; quando detto valore viene ecceduto gli ulteriori eventi vengono scartati, ma viene comunque generato un evento di tipo