Paso 3: Los objetos IPC
Objetos IPC vienen en dos familias principales: SysV y POSIX. Este proyecto utilizará SysV sin motivo real particular. (Ambas familias son compatibles con el Galileo así después de que termine este Instructable planeo volver atrás y cambiar las cosas a las versiones POSIX ya que ofrecen unas ventajas). SysV tiene tres objetos IPC: colas de mensajes, semáforos y de memoria compartida. Este proyecto sólo hará uso de los dos primeros.Un objeto de memoria compartida es sólo una porción de memoria que se puede acceder por más de un proceso. Es la forma más rápida de transferir grandes cantidades de datos entre procesos. Sin embargo, no tiene ningún tipo de protección incorporado. Sin añadir código de sincronización adicional los procesos probablemente escribirá sobre los datos de los demás.
Un semáforo puede ser pensado como un contador por cuanto de un recurso compartido está disponible. Un proceso puede atómico (es decir, sin interrupción) incrementar o disminuir la cuenta de un semáforo. Si un proceso intenta disminuir un semáforo cuando su recuento es cero, el proceso normalmente ir inactivo hasta que un proceso incrementa recuento del semáforo. La importancia de ir inactivo es que el proceso no consume recursos de sistema operativo. Una implementación ingenua que encuestas en lugar de la cuenta a cero no se tanto utilizar recursos del sistema operativo y hacen más difícil para otros procesos cumplir sus plazos.
Para una descripción más amplia de memoria compartida o semáforos, hay numerosas explicaciones y ejemplos entre Wikipedia y desbordamiento de pila.