X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=ipc.tex;h=d3bc3e6307a554f91e88e80c2ba6cce73223eb78;hp=49d3338f711febc0287e254d0355ecf36550772c;hb=71bd769469078fc921d9646d62b0f9293b6ae47c;hpb=dd741fcfa876c0a4c26a72da0035b7cfea8202e2 diff --git a/ipc.tex b/ipc.tex index 49d3338..d3bc3e6 100644 --- a/ipc.tex +++ b/ipc.tex @@ -2316,7 +2316,7 @@ controllare il valore dei mutex prima di proseguire in una operazione di sblocco non servirebbe comunque, dato che l'operazione non sarebbe atomica. Vedremo in sez.~\ref{sec:ipc_lock_file} come sia possibile ottenere un'interfaccia analoga a quella appena illustrata, senza incorrere in questi -problemi, usando il file locking\index{file!locking}. +problemi, usando il \index{file!locking} \textit{file locking}. \subsection{Memoria condivisa} @@ -3124,30 +3124,31 @@ leggermente pi \end{minipage} \normalsize \caption{Il codice delle funzioni che permettono per la gestione dei - \textit{mutex} con il file locking\index{file!locking}.} + \textit{mutex} con il \index{file!locking} \textit{file locking}.} \label{fig:ipc_flock_mutex} \end{figure} Il codice delle varie funzioni usate per implementare un mutex utilizzando il -file locking\index{file!locking} è riportato in fig.~\ref{fig:ipc_flock_mutex}; -si è mantenuta volutamente una struttura analoga alle precedenti funzioni che -usano i semafori, anche se le due interfacce non possono essere completamente -equivalenti, specie per quanto riguarda la rimozione del mutex. +\textit{file locking} \index{file!locking} è riportato in +fig.~\ref{fig:ipc_flock_mutex}; si è mantenuta volutamente una struttura +analoga alle precedenti funzioni che usano i semafori, anche se le due +interfacce non possono essere completamente equivalenti, specie per quanto +riguarda la rimozione del mutex. La prima funzione (\texttt{\small 1--5}) è \func{CreateMutex}, e serve a creare il mutex; la funzione è estremamente semplice, e si limita (\texttt{\small 4}) a creare, con una opportuna chiamata ad \func{open}, il -file che sarà usato per il successivo file locking, assicurandosi che non -esista già (nel qual caso segnala un errore); poi restituisce il file +file che sarà usato per il successivo \textit{file locking}, assicurandosi che +non esista già (nel qual caso segnala un errore); poi restituisce il file descriptor che sarà usato dalle altre funzioni per acquisire e rilasciare il mutex. La seconda funzione (\texttt{\small 6--10}) è \func{FindMutex}, che, come la precedente, è stata definita per mantenere una analogia con la corrispondente funzione basata sui semafori. Anch'essa si limita (\texttt{\small 9}) ad -aprire il file da usare per il file locking, solo che in questo caso le -opzioni di \func{open} sono tali che il file in questione deve esistere di -già. +aprire il file da usare per il \index{file!locking} \textit{file locking}, +solo che in questo caso le opzioni di \func{open} sono tali che il file in +questione deve esistere di già. La terza funzione (\texttt{\small 11--22}) è \func{LockMutex} e serve per acquisire il mutex. La funzione definisce (\texttt{\small 14}) e inizializza @@ -3162,9 +3163,10 @@ La quarta funzione (\texttt{\small 24--34}) rilasciare il mutex. La funzione è analoga alla precedente, solo che in questo caso si inizializza (\texttt{\small 28--31}) la struttura \var{lock} per il rilascio del lock, che viene effettuato (\texttt{\small 33}) con la opportuna -chiamata a \func{fcntl}. Avendo usato il file locking in semantica POSIX (si -riveda quanto detto sez.~\ref{sec:file_posix_lock}) solo il processo che ha -precedentemente eseguito il lock può sbloccare il mutex. +chiamata a \func{fcntl}. Avendo usato il \index{file!locking} \textit{file + locking} in semantica POSIX (si riveda quanto detto +sez.~\ref{sec:file_posix_lock}) solo il processo che ha precedentemente +eseguito il lock può sbloccare il mutex. La quinta funzione (\texttt{\small 36--39}) è \func{RemoveMutex} e serve a cancellare il mutex. Anche questa funzione è stata definita per mantenere una