Comunicação entre processos (IPC) no sistema operacional

O que é comunicação entre processos?

Comunicação entre processos (IPC) é usado para troca de dados entre vários threads em um ou mais processos ou programas. Os Processos podem estar sendo executados em um ou vários computadores conectados por uma rede. A forma completa de IPC é a comunicação entre processos.

É um conjunto de interfaces de programação que permite ao programador coordenar atividades entre vários processos de programa que podem ser executados simultaneamente em um sistema operacional. Isso permite que um programa específico lide com muitas solicitações de usuários ao mesmo tempo.

Como cada solicitação do usuário pode resultar em vários processos em execução no sistema operacional, os processos podem exigir comunicação entre si. Cada abordagem de protocolo IPC tem suas próprias vantagens e limitações, portanto não é incomum que um único programa use todos os métodos IPC.

Abordagens para comunicação entre processos

Aqui estão alguns métodos importantes para comunicação entre processos:

Abordagens para comunicação entre processos
Abordagens de comunicação entre processos

Pipes

Pipe é amplamente utilizado para comunicação entre dois processos relacionados. Este é um método half-duplex, portanto o primeiro processo se comunica com o segundo processo. No entanto, para obter um full-duplex, é necessário outro tubo.

Passagem de mensagens

É um mecanismo para um processo se comunicar e sincronizar. Usando a passagem de mensagens, os processos se comunicam entre si sem recorrer a variáveis ​​​​compartilhadas.

O mecanismo IPC fornece duas operações:

  • Enviar (mensagem) - tamanho da mensagem fixo ou variável
  • Recebida (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

Neste tipo de processo de comunicação entre processos, devem nomear-se explicitamente. Neste método, um link é estabelecido entre um par de processos em comunicação, e entre cada par existe apenas um link.

Comunicação indireta

A comunicação indireta se estabelece apenas quando os processos compartilham uma caixa de correio comum, cada par de processos compartilha vários links de comunicação. Um link pode se comunicar com muitos processos. O link pode ser bidirecional ou unidirecional.

Memoria compartilhada

Memória compartilhada é uma memória compartilhada entre dois ou mais processos que são estabelecidos usando memória compartilhada entre todos os processos. Este tipo de memória requer proteção mútua, sincronizando o acesso em todos os processos.

FIFO

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, podendo acontecer o contrário.

Por que IPC?

Aqui estão as razões para usar o protocolo de comunicação entre processos para compartilhamento de informações:

  • Ajuda a acelerar a modularidade
  • computacional
  • Separação de privilégios
  • Conveniência
  • Ajuda o sistema operacional a se comunicar entre si e sincronizar suas ações.

Termos usados ​​no IPC

A seguir estão alguns termos importantes usados ​​no IPC:

Semaphores: Um semáforo é uma técnica de mecanismo de sinalização. Este método de sistema operacional permite ou não o acesso ao recurso, o que depende de como ele está configurado.

Signals: É um método de comunicação entre vários processos por meio de sinalização. O processo de origem enviará um sinal que é reconhecido por número e o processo de destino tratará dele.

Sugestão de leitura:- O que é o Semaphore? Binário, tipos de contagem com exemplo

O que é semelhante ao FIFOS e diferente do FIFOS

Como FIFOS Ao contrário dos FIFOS
Segue o método FIFO Método para extrair mensagens urgentes específicas antes que cheguem à frente
O FIFO existe independentemente dos processos de envio e recebimento. Sempre pronto, por isso não precisa abrir ou fechar.
Permite a transferência de dados entre processos não relacionados. Não há problemas de sincronização entre abrir e fechar.

Resumo

  • Definição: A comunicação entre processos é usada para troca de dados entre vários threads em um ou mais processos ou programas.
  • Pipe é amplamente utilizado para comunicação entre dois processos relacionados.
  • A passagem de mensagens é um mecanismo para um processo se comunicar e sincronizar.
  • Uma fila de mensagens é uma lista vinculada de mensagens armazenadas no kernel
  • O processo direto é um tipo de processo de comunicação entre processos e deve nomear-se explicitamente.
  • A comunicação indireta se estabelece apenas quando os processos compartilham uma caixa de correio comum, cada par de processos compartilha vários links de comunicação.
  • Memória compartilhada é uma memória compartilhada entre dois ou mais processos que são estabelecidos usando memória compartilhada entre todos os processos.
  • O método de comunicação entre processos ajuda a acelerar a modularidade.
  • Um semáforo é uma técnica de mecanismo de sinalização.
  • Signaling é um método de comunicação entre múltiplos processos por meio de sinalização.
  • Como o FIFO segue o método FIFO, enquanto diferente do FIFO usa o método para extrair mensagens urgentes específicas antes que cheguem à frente.