Interprocess communication (IPC) é um conjunto de interfaces de programação que permitem a um programador coordenar atividades entre diferentes processos de programação que podem ser executados simultaneamente em um sistema operacional. Isto permite que um programa possa lidar com muitas solicitações de usuários ao mesmo tempo. Como mesmo uma única solicitação de usuário pode resultar em múltiplos processos rodando no sistema operacional em nome do usuário, os processos precisam se comunicar uns com os outros. As interfaces IPC tornam isso possível. Cada método IPC tem suas próprias vantagens e limitações, portanto não é raro que um único programa utilize todos os métodos IPC.
IPC incluem pipes e pipes nomeados; enfileiramento de mensagens; semáforos; memória compartilhada; e soquetes.