Um processo pode ser de dois tipos: Show
Um processo independente não é afetado pela execução de outros processos, enquanto um processo de cooperação pode ser afetado por outros processos em execução. Embora se possa pensar que esses processos, que estão sendo executados de forma independente, serão executados de forma muito eficiente, na realidade, existem muitas situações em que a natureza cooperativa pode ser
utilizada para aumentar a velocidade computacional, conveniência e modularidade. A comunicação entre processos (IPC) é um mecanismo que permite que os processos se comuniquem entre si e sincronizem suas ações. A comunicação entre esses processos pode ser vista como um método de cooperação entre eles. Os processos podem se comunicar entre si por meio de:
A Figura 1 abaixo mostra uma estrutura básica de comunicação
entre processos por meio do método de memória compartilhada e por meio do método de passagem de mensagens. Um sistema operacional pode implementar ambos os métodos de comunicação. Primeiro, discutiremos os métodos de comunicação de memória compartilhada e, em seguida, a passagem de mensagens. A comunicação entre processos usando memória compartilhada requer que os processos compartilhem alguma variável, e isso depende completamente de como o programador irá implementá-lo.
Uma forma de comunicação usando memória compartilhada pode ser imaginada assim: suponha que o processo1 e o processo2 estejam sendo executados simultaneamente e eles compartilham alguns recursos ou usam algumas informações de outro processo. Process1 gera informações sobre certos cálculos ou recursos que estão sendo usados e os mantém como um registro na memória compartilhada. Quando o processo2 precisa usar as informações compartilhadas, ele verifica o registro armazenado na memória
compartilhada e toma nota das informações geradas pelo processo1 e age de acordo. i) Método de Memória Compartilhada Ex: problema produtor-consumidor
Código de Processo do Produtor
Código de Processo do Consumidor
No código acima, o produtor começará a produzir novamente quando o (free_index + 1) mod buff max estiver livre porque
se não for livre, isso implica que ainda existem itens que podem ser consumidos pelo consumidor, portanto, não há necessidade para produzir mais. Da mesma forma, se o índice livre e o índice completo apontarem para o mesmo índice, isso significa que não há itens para consumir. ii) Método de transmissão de mensagens Agora, iniciaremos nossa discussão sobre a comunicação entre processos por meio da passagem de mensagens. Nesse método, os processos se
comunicam entre si sem usar nenhum tipo de memória compartilhada. Se dois processos p1 e p2 desejam se comunicar, eles procedem da seguinte maneira:
O tamanho da mensagem pode ser fixo ou variável. Se for de tamanho fixo, é fácil para um designer de sistema operacional, mas complicado para um programador, e se for de tamanho variável, é fácil para um programador, mas complicado para o designer de sistema operacional. Uma mensagem padrão pode ter duas partes:
cabeçalho e corpo. Mensagem que passa pelo link de comunicação.
Um link tem alguma capacidade que determina o número de mensagens que podem residir nele temporariamente, para as quais cada link tem uma fila associada a ele, que pode ter capacidade zero, capacidade limitada ou capacidade ilimitada. Em capacidade zero, o remetente espera até que o destinatário informe ao remetente que recebeu a mensagem. Em casos de capacidade diferente de zero, um processo
não sabe se uma mensagem foi recebida ou não após a operação de envio. Para isso, o remetente deve se comunicar com o destinatário de forma explícita. A implementação do link depende da situação, pode ser um link de comunicação direta ou um link de comunicação direcionada. Mensagem que passa através da troca de mensagens. Passagem de mensagens síncrona e assíncrona:
Na passagem direta de mensagens , o processo que deseja se comunicar deve
nomear explicitamente o destinatário ou remetente da comunicação.
Código do Consumidor
Exemplos de sistemas
IPC
Comunicação na arquitetura cliente / servidor:
Os três métodos acima serão discutidos em artigos posteriores, pois todos eles são
bastante conceituais e merecem seus próprios artigos separados.
Mais referências: Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube. Como acontece a comunicação entre processos?A troca de mensagens entre dois processos é feita através de duas operações de comunicação: send e receive. Assim para que um processo se comunique com o outro, o processo origem envia ( send ) uma mensagem para um destino , onde um outro processo recebe a mensagem ( receive ).
Quais são os tipos de comunicação entre processos?Modelos de Comunicação entre Processos.. Ambiente de Cooperação entre Processos.. Mecanismos locais.. Mecanismos cliente/servidor.. Sincronização entre processos.. Mecanismos de passagem de mensagem.. Sockets.. Passagem de mensagem.. Como é feita a sincronização e comunicação entre processos?Toda vez que algum processo faz uma chamada a um procedimento, o monitor verifica se já existe outro processo executando algum procedimento do monitor. Caso exista, o processo ficará aguardando a sua vez em uma fila de entrada. Também é um mecanismo de comunicação e sincronização entre processos.
Como funciona o compartilhamento de memória entre dois processos?O Compartilhamento de Memória é um mecanismo de comunicação entre processos que usa uma área de memória, um buffer que é compartilhado entre os vários processos de uma aplicação concorrente. Os processos compartilham informações em operações de escrita e leitura através do buffer de memória.
|