TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

UMA COMUNICAÇÃO ENTRE PROCESSOS

Por:   •  25/11/2016  •  Artigo  •  1.812 Palavras (8 Páginas)  •  321 Visualizações

Página 1 de 8

COMUNICAÇÃO ENTRE PROCESSOS

Ivo Pontes Araújo, e-mail: ivopontes@outlook.com.

Universidade Federal do Tocantins

Palavras-chave: threads, comunicação, TCP, UDP, soquetes e multicast.

Resumo:

Esse artigo apresenta os tipos de comunicação realizados entre processos, com a utilização dos protocolos para envio e recebimento de mensagens, ferramentas de rede e conceitos de sistemas distribuídos. Existem formas de efetuar a comunicação entre processos por meio de APIs (Application Programming Interfaces) que utilizam os protocolos de rede UDP (User Datagram Protocol) e TCP (Transmission Control Protocol), como o MPI (Message Passing Interface). Devido a forma de comunicação, em rede, a troca de mensagens em pares torna-se pouco eficiente já que um host pode se comunicar com vários outros hosts da mesma rede. A comunicação multicast auxilia no envio e recebimento de mensagens a fim conectar dispositivos de uma mesma rede, mas usando o mesmo software distribuído. Além dos recursos citados, existe a rede de sobreposição, onde o desenvolvedor ou administrador de rede consegue criar  redes e subredes virtuais que simulam as redes reais. Logo, com configurações similares, é possível testar um sistema ou um software distribuído sem necessitar de vários hosts com hardware.

Introdução

        Coulouris, Dollimore, Kindberg e Blair (2013, p. 17) afirmam que o Middleware “é uma camada de software que fornece uma abstração de programação, assim como o mascaramento da heterogeneidade das redes, do hardware, dos sistemas operacionais e das linguagens de programação subjacentes”.  

        A comunicação entre processos acontece em uma das sub-camadas do middleware, onde mensagens são enviadas e recebidas, validadas e reagrupadas. O middleware é a uma camada de abstração tanto para desenvolvedores quanto para o usuário comum. Ao analisar a comunicação entre processos, o middleware abstrai uma parte da complexidade de problemas de compatibilidade na comunicação e deixa a cargo do software como será implementada a troca de mensagens.

        De acordo com Ghosh(2015, p. 20), “Um protocolo é um conjunto de padrões de codificação de dados e especificações de troca de mensagens que os processos remetente e receptor seguem para completar uma tarefa específica.”(tradução nossa). Basicamente dois protocolos são usados na comunicação entre processos o TCP e UDP. 

        O protocolo UDP envia pacotes chamados de datagramas para um destinatário, e o TCP gera um fluxo de dados que o remetente e destinatário criam uma conexão que sua validade é sempre verificada. Além disso, multicast é responsável pela propagação de mensagens em um grupo de hosts, que torna a comunicação mais eficiente. Ainda, a virtualização de redes será explicada e quais as vantagens de usá-la.

API para Protocolos da Internet

        Segundo Ghosh (2015, p. 15), “Um processo é a execução de um programa. O sistema operacional suporta múltiplos processos em um processador [...]”. Para que haja uma comunicação entre processos, é necessário a sincronização entre dois processos, que utilizam métodos send e receive para a troca de mensagens. Ainda, o processo destino utiliza a fila como estrutura de dados local para controle de mensagens e o processo origem utiliza a mesma fila mas de forma remota para controle de envio. Há dois tipos de sincronização de processos: síncronos e assíncronos.

        A forma síncrona utiliza o envio da mensagem e o processo origem fica bloqueado até que recebimento dessa mensagem seja feito. Já na forma assíncrona, não há bloqueio após o envio da mensagem, pois existe um buffer que guarda os subprocessos(threads) que permite o receiver processar cada vez que estiver pronto.

        Para que haja a troca de mensagens, são necessários os identificadores, que são o IP(Internet Protocol) e a porta, do destinatário e remetente. Essas portas são representadas por números e são usadas para que processos possam enviar mensagens para outros processos. Deve-se verificar a integridade dos pacotes enviados, pois os mesmos podem chegar corrompidos ou nem mesmo chegar.

        Os protocolos TCP e UDP utilizam soquetes para efetuar a comunicação entre processos, via endereço de IP e número de porta. Segundo Coulouris, Dollimore, Kindberg e Blair (2013, p. 149), “Cada computador tem 216 números de portas disponíveis para serem usados pelos processos para envio e recepção de mensagens”, como informado antes, o soquete deve saber a porta disponível para efetuar a comunicação, assim como o tipo de protocolo a utilizar entre os dois já citados.

        No protocolo UDP, o remetente envia pacotes ao destinatário sem receber uma mensagem de confirmação, que gera um ganho no desempenho do programa ainda que haja a probabilidade que os pacotes não cheguem. Para efetuar comunicação via UDP, o cliente utiliza uma porta livre e não reservada no sistema, já o servidor recebe a mensagem e envia a resposta pelo endereço IP do remetente e a mesma porta vinculada.         

...

Baixar como (para membros premium)  txt (11.1 Kb)   pdf (143.9 Kb)   docx (13.8 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com