POSIX IPC implementation of the classic producer-consumer problem using a shared memory double-buffer and semaphores to coordinate access to it.