From: Simone Piccardi Date: Sun, 10 Nov 2002 12:12:59 +0000 (+0000) Subject: Alcune note sulle alternative alle code di messaggi X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=commitdiff_plain;h=1596eb22135ff72ba7b66d827e1435e55afdc2a5 Alcune note sulle alternative alle code di messaggi --- diff --git a/ipc.tex b/ipc.tex index d8ffa5f..74d69db 100644 --- a/ipc.tex +++ b/ipc.tex @@ -2752,19 +2752,19 @@ alternative, che vogliamo riprendere in questa sezione. \subsection{Alternative alle code di messaggi} \label{sec:ipc_mq_alternative} - + Le code di messaggi sono probabilmente il meno usato degli oggetti di IPC di System V; esse infatti nacquero principalmente come meccanismo di -comunicazione bidirezionale quando ancora le pipe erano ancora unidirezionali; -abbiamo visto però in \secref{sec:ipc_socketpair} che la funzione -\func{socketpair} permette di fare la stessa cosa senza incorrere nelle -complicazioni introdotte dal sistema di IPC di System V. +comunicazione bidirezionale quando ancora le pipe erano unidirezionali; con la +disponibilità di \func{socketpair} (vedi \secref{sec:ipc_socketpair}) si può +ottenere lo stesso risultato senza incorrere nelle complicazioni introdotte +dal sistema di IPC di System V. In realtà, grazie alla presenza del campo \var{mtype}, le code di messaggi hanno delle caratteristiche ulteriori, consentendo una classificazione dei messaggi ed un accesso non rigidamente sequenziale, due cose che sono impossibili da ottenere con le pipe e i socket di \func{socketpair}. - + È però possibile implementare un meccanismo analogo attraverso l'uso di memoria condivisa e di meccanismi di sincronizzazione, (un esempio di reimplementazione di code di messaggi usando il \textit{memory mapping} e i @@ -2774,10 +2774,18 @@ semafori si trova in \cite{UNP2}). pertanto non \subsection{La sincronizzazione con il \textit{file locking}} \label{sec:ipc_file_lock} -Abbiamo esaminato il \textit{file locking} in \secref{sec:file_locking}, + + + + +Una possibile alternativa all'uso dei semafori come meccanismo di +sincronizzazione è quello di fare ricorso al \textit{file locking} visto in +\secref{sec:file_locking}. + + \subsection{Il \textit{memory mapping} anonimo} \label{sec:ipc_mmap_anonymous}