Sincronización de memoria compartida de Linux

He implementado dos aplicaciones que comparten datos utilizando la API de memoria compartida POSIX (es decir,shm_open). Un proceso actualiza los datos almacenados en el segmento de memoria compartida y otro proceso los lee. Quiero sincronizar el acceso a la región de memoria compartida utilizando algún tipo de mutex o semáforo. ¿Cuál es la forma más eficiente de hacer esto? Algunos de los mecanismos que estoy considerando son

Un mutex POSIX almacenado en el segmento de memoria compartida (se requiere la configuración del atributo PTHREAD_PROCESS_SHARED)Creando un semáforo System V usandosemget

Respuestas a la pregunta(4)

Su respuesta a la pregunta