O que é comunicação interprocessante?
Comunicação de interprocesso (IPC) é um grupo de técnicas usadas na programação de computadores que permitem que diferentes peças de software interajam. O IPC geralmente é facilitado por um sistema operacional de computador, embora existam métodos alternativos. A forma exata dessa comunicação entre o software pode variar, variando de mensagens diretas a um depositário central onde as informações são armazenadas e recuperadas. A comunicação interprocessante pode fornecer benefícios como maior desempenho, menos recursos de computador consumidos e segurança aprimorada. Muitos aplicativos realmente usam mais de um processo, o que pode aumentar o desempenho e a estabilidade. Um navegador da Web com várias páginas abertas pode usar um processo separado para carregar cada página; Isso isola cada página dos outros e impede uma página da web mal-comportada de travar o ENTnavegador da ira. Neste exemplo, cada processo responsável por renderizar uma página da web se comunica com um ou mais processos que lidam com outros aspectos do navegador, como componentes da interface do usuário.
A maioria dos sistemas operacionais de computador fornece vários mecanismos diferentes para que a comunicação interprocessante ocorra. Algumas outras tecnologias de software também oferecem suporte para o IPC. Além disso, o IPC pode ser usado em um único computador ou em uma rede. Esses mecanismos podem variar na maneira como são implementados, mas a maioria pode ser agrupada em algumas categorias com base em como a comunicação ocorre.
Em alguns casos, as mensagens são trocadas diretamente entre os processos, geralmente de maneira única ou assíncrona. Alguns métodos IPC que funcionam dessa maneira incluem sinais, tubos e soquetes. A comunicação interprocessante também pode ocorrer através do uso de um local específico, onde os dados podem ser acessados por MORe do que um processo. Um exemplo disso é a memória compartilhada, uma técnica na qual vários processos acessam a mesma parte da memória de um computador para trocar informações. O método que um programador pode escolher depende da taxa e volume de troca de dados necessários, bem como de outras considerações.
Existem muitas razões pelas quais um programador pode querer utilizar a comunicação entre processos em suas criações de software. A divisão de um grande aplicativo em muitos processos menores que se comunicam via IPC pode aumentar o desempenho e a segurança. Um programa pode iniciar e encerrar os processos, conforme necessário, em vez de todos os componentes em execução ao mesmo tempo e consumir recursos de hardware. Se parte de um programa precisar de acesso especial ao hardware de um computador ou outro software em execução, um ou mais processos poderão operar em um administrador ou conta "root" enquanto o restante do programa é executado como usuário comum.