Un proceso manda un mensaje que es recibido por otro proceso que suele esperar dicho mensaje. El paso de mensajes es imprecindible en sistemas distribuidos dado que en este caso no existen recursos directamente compartidos para intercambiar información entre los procesos. Sin embargo, también si se trabaja con un solo procesador pasar mensajes entre procesos es un buen método de sincronizar procesos o trabajos, respectivamente. Existen muchas variantes de implementaciones de paso de mensajes. Destacamos unas características.