Memoria compartida o mmap - Linux C / C ++ IPC

El contexto es la comunicación entre procesos, donde un proceso ("Servidor") debe enviar estructuras de tamaño fijo a muchos procesos de escucha ("Clientes") que se ejecutan en la misma máquina.

Me siento muy cómodo haciendo esto en Socket Programming. Para que la comunicación entre el Servidor y los Clientes sea más rápida y para reducir el número de copias, quiero probar usando Memoria compartida (shm) o mmaps.

El sistema operativo es RHEL de 64 bits.

Como soy un novato, sugiera cuál debo usar. Le agradecería si alguien pudiera señalarme un libro o un recurso en línea para aprender lo mismo.

Gracias por las respuestas Quería agregar que el Servidor (Market Data Server) generalmente recibirá datos de multidifusión, lo que hará que "envíe" alrededor de 200,000 estructuras por segundo a los "Clientes", donde cada estructura tiene aproximadamente 100 Bytes. ¿La implementación de shm_open / mmap supera a los sockets solo para grandes bloques de datos o también para un gran volumen de estructuras pequeñas?

Respuestas a la pregunta(4)

Su respuesta a la pregunta