Semaphore, Shared Memory and IPC