O Windows NT oferece numerosos mecanismos de comunicação inter-processos, entre eles, os pipes, pipes com nome, mailslots, sockets, chamadas remotas de procedimento e arquivos compartilhados.
- Os pipes são canais criados entre dois processos no qual um deles escreve no pipe para o outro processo ler em sua extremidade. Os pipes têm dois modos: bytes e mensagens, selecionados no momento da criação.
- Os pipes com nome, que têm os mesmos dois modos dos pipes normais, mas ao contrário desses últimos, podem ser usados em rede.
- Os mailslots são similares aos pipes, no entanto são de apenas uma via. Os mailslots podem ser usados em uma rede, mas não dão garantia de entrega, além disso permite que o processo emissor difunda uma mensagem para diversos receptores e não para apenas um.
- Os sockets são como os pipes, só que em geral conectam processos em máquinas diferentes, já que ocasionam maior sobrecarga que os pipes quando usados para conectar processos em uma mesma máquina.
- As chamadas remotas de procedimento, permitem que um processo A por exemplo, faça com que um processo B chame um procedimento no espaço de endereçamento de B a pedido de A e retorne o resultado para A.
Por fim, os processos podem compartilhar memória mapeando sobre o mesmo arquivo, ao mesmo tempo. Nesse caso, todas as escritas realizadas por um processo aparecem no espaço de endereçamento do outro.
No Unix, a comunicação entre processos pode ser feita usando um tipo de troca de mensagens. Atraves de pipe, como no Windows, cria-se um canal entre dois processos no qual um deles pode escrever um fluxo de bytes para o outro ler. A sincronização é possível porque ao tentar ler uma entrada do pipe, um processo é bloqueado até que o dado esteja disponível. A criação dos pipes é realizada pelo shell que cria dois processos, De maneira similar aos pipes, os sockets também são usados pelo Unix, com a diferença de que esses realizam a comunicação entre processos usando redes.
Outro modo de os processos se comunicarem é usando interrupções de software. Nesse caso, um processo pode enviar um sinal para outro, o processo optando por capturar os sinais enviados a ele, começa a a comunicação entre os processos.