Comunicação entre processos (IPC) no sistema operacional
⚡ Resumo Inteligente
A comunicação entre processos (IPC) é um conjunto de mecanismos do sistema operacional que permite que processos e threads troquem dados, coordenem atividades e sincronizem ações, estejam eles sendo executados em um único computador ou em várias máquinas conectadas por uma rede.

O que é comunicação entre processos?
Comunicação entre processos (IPC) É utilizado para a troca de dados entre múltiplas threads em um ou mais processos ou programas. Os processos podem estar sendo executados em um único computador ou em vários computadores conectados por uma rede. A sigla IPC significa comunicação entre processos.
Trata-se de um conjunto de interfaces de programação que permite ao programador coordenar atividades entre vários processos de programa, os quais podem ser executados simultaneamente em um sistema operacional. Isso permite que um único programa lide com muitas solicitações de usuários ao mesmo tempo.
Como cada requisição do usuário pode resultar na execução de múltiplos processos no sistema operacional, esses processos podem precisar se comunicar entre si. Cada abordagem de IPC (Comunicação Interprocessos) possui suas próprias vantagens e limitações, portanto, não é incomum que um único programa utilize diversos métodos de IPC.
Abordagens para comunicação entre processos
Aqui estão alguns métodos importantes para comunicação entre processos:
Abordagens de comunicação entre processos
Pipes
Um pipe é amplamente utilizado para comunicação entre dois processos relacionados. Este é um método half-duplex, no qual o primeiro processo se comunica com o segundo. No entanto, para alcançar comunicação full-duplex, outro pipe é necessário.
Passagem de mensagens
É um mecanismo que permite a comunicação e sincronização entre processos. Através da troca de mensagens, os processos comunicam-se entre si sem recorrer a variáveis compartilhadas.
O mecanismo IPC oferece duas operações:
- Enviar (mensagem) — o tamanho da mensagem pode ser fixo ou variável.
- Receber (mensagem)
Filas de mensagens
Uma fila de mensagens é uma lista vinculada de mensagens armazenadas no núcleo. Ele é identificado por um identificador de fila de mensagens. Este método oferece comunicação entre processos únicos ou múltiplos com capacidade full-duplex.
Comunicação direta
Nesse tipo de comunicação entre processos, os processos devem nomear-se explicitamente. Nesse método, estabelece-se um vínculo entre um par de processos que se comunicam e, entre cada par, existe apenas um vínculo.
Comunicação indireta
A comunicação indireta só é estabelecida quando os processos compartilham uma caixa de correio comum. Cada par de processos pode compartilhar vários links de comunicação, e um único link pode se comunicar com vários processos. O link pode ser bidirecional ou unidirecional.
Memoria compartilhada
Memória compartilhada é uma região da memória compartilhada entre dois ou mais processos. Essa memória deve ser protegida contra acesso concorrente por meio da sincronização dos processos que a utilizam.
FIFO
O FIFO é usado para comunicação entre dois processos não relacionados. É um método full-duplex, o que significa que o primeiro processo pode se comunicar com o segundo processo, e vice-versa.
Por que IPC?
Eis os motivos para usar o protocolo de comunicação entre processos para compartilhamento de informações:
- Isso ajuda a acelerar a modularidade.
- Aumento da velocidade de processamento.
- Separação de privilégios.
- Conveniência.
- Isso ajuda os processos e o sistema operacional a se comunicarem e sincronizarem suas ações.
Termos usados no IPC
A seguir estão alguns termos importantes usados no IPC:
Semaphores: Um semáforo é um mecanismo de sinalização. Esse método do sistema operacional permite ou impede o acesso a um recurso, dependendo de como está configurado.
Signals: Um sinal é um método de comunicação entre múltiplos processos por meio de sinalização. O processo de origem envia um sinal, que é reconhecido por um número, e o processo de destino o processa.
Sugestão de leitura: O que é a Semaphore? Binário, tipos de contagem com exemplo
O que é semelhante ao FIFOS e diferente do FIFOS
A tabela a seguir compara FIFOs semelhantes e diferentes:
| Como FIFOS | Ao contrário dos FIFOS |
|---|---|
| Segue o método FIFO (primeiro a entrar, primeiro a sair). | Ele utiliza um método para extrair mensagens urgentes específicas antes que elas cheguem à linha de frente. |
| O FIFO existe independentemente dos processos de envio e recebimento. | Sempre pronto, portanto não há necessidade de abrir ou fechar. |
| Permite a transferência de dados entre processos não relacionados. | Não apresenta problemas de sincronização entre abrir e fechar. |

