Você está na página 1de 6

Sistemas de Informação IFMG - Ouro Branco

6º Período Diego Santos Seabra


22/02/2021 0040251

Exercícios Comunicação
Sistemas Distribuídos

Contents
Questão 1 2

Questão 2 2

Questão 3 2

Questão 4 2

Questão 5 3

Questão 6

02 5 1 4

4
Questão 7 5

Questão 8
00
Referências Bibliográficas
5

1
1) Por que serviços de comunicação de nível de transporte são inadequados
para construir aplicações distribuídas?

R.:
Serviços de comunicação de nível de transporte normalmente não oferecem grande transparên-
cia de distribuição, ou seja, ou desenvolvedores normalmente criam soluções customizadas.
Assim, aplicações distribuídas são difíceis de interoperar com outras aplicações.

2) Faz sentido implementar comunicação persistente assíncrona por meio de


RPC?

R.:
Sim, faz sentido.
Porém somente nos casos de sistemas de enfileiramento de mensagens (bases nós-a-nós).
Neste caso, cada mensagem é enviada ao “próximo da fila” por meio do RPC e, em cada
operação, há o feedback de sucesso ou falha.

3) Suponha que você só possa utilizar primitivas de comunicação transiente


síncrona. Como você implementaria primitivas de comunicação transiente
assíncrona?

02 5 1
R.:

00 4
Na primitiva de comunicação transiente assíncrona, o chamador anexaria sua mensagem
a um buffer compartilhado com o processo que controla a transferência da mensagem.
Assim, cada vez que o cliente anexa uma mensagem ao buffer, o processo de envio
“acorda”, removendo a mensagem do buffer e enviando a mesma para o seu destino.
No receptor, o processo é praticamente o mesmo, onde deve haver um buffer compartil-
hado (mensagens recebidas) que pode ser “verificado” através de uma aplicação.

4) Descreva como ocorre a comunicação sem conexão entre um cliente e um


servidor utilizando a interface socket

R.:
Ao contrário da comunicação orientada à conexão, na comunicação sem conexão o cliente
envia uma mensagem de solicitação (sem confirmação de recebimento) enquanto que o

2
servidor fica “escutando” as mensagens. Caso o servidor não esteja aguardando uma
mensagem, esta é perdida.
Em detalhes:

Fig. 1: Comunicação entre cliente e servidor (sem conexão) [3]

1. Servidor e cliente criam seus sockets (usando a primitiva socket)

5 1
2. Servidor e cliente definem endereços de comunicação (usando a primitiva bind)

02
4
3. Servidor usa a primitiva recvfrom para o recebimento dos pacotes enviados pelo

00
cliente
4. Cliente usa a primitiva sendto para envio dos pacotes ao servidor (ou seja, é
realizada uma solicitação)
5. Servidor usa a primitiva sendto para o envio dos pacotes de resposta ao cliente
6. Cliente usa a primitiva recvfrom para o recebimento dos pacotes enviados pelo
servidor (ou seja, é recebida uma resposta)
7. O processo continua indefinidamente até que o cliente ou servidor utilize a primitiva
close para fechar a comunicação

5) Considere que um cliente chama uma RPC assíncrona para um servidor


e, na sequência, espera até que o servidor retorne o resultado utilizando uma
outra RPC assíncrona. Essa abordagem é o mesmo do que deixar um cliente
executar uma RPC normal?

3
R.:
Não. Na RPC assíncrona é retornada a primitiva ACK para o cliente requisitante, onde
após essa primeira chamada, uma mensagem adicional é enviada pela rede. Da mesma
forma, o servidor “sabe” que sua resposta foi entregue ao cliente.

Fig. 2: RPC assíncrono [1]

Em uma RPC “normal”, o cliente invoca o procedimento remoto e é bloqueado até a


resposta ser retornada pelo servidor (necessitando apenas de uma mensagem enviada).

02 5 1
00 4
Fig. 3: RPC “normal” [1]

6) Suponha que temperaturas medidas em uma rede de sensores não recebam


marcas de tempo pelo sensor, mas sejam enviadas imediatamente ao oper-
ador. Isso seria suficiente para garantir apenas um atraso fim a fim máximo?

R.:

4
Só seria suficiente se o operador não precisasse de saber quando a medição ocorreu.
Caso seja necessário que o operador saiba quando a medição ocorreu, então é necessário
que um timestamp (carimbo de data/hora) seja anexado na mensagem entregue direta-
mente ao operador.

7) Quando se trata de procurar arquivos em um sistema peer-to-peer não es-


truturado, pode ser útil restringir a busca a nós que tenham arquivos semel-
hantes aos seus. Explique como o gossiping pode ajudá-lo a achar esses nós

R.:
O gosssiping pode ajudar no caso onde os nós trocam informações sobre outros nós da
rede, assim cada nó poderia “classificar” sua posição na rede comparando o número de
arquivos em comum com os outros nós (proximidade semântica1 ), facilitando na restrição
da busca, como sugerido no enunciado.

8) Em muitos protocolos de camada, cada camada tem seu próprio cabeçalho.


Por certo seria mais eficiente ter um único cabeçalho a frente de cada men-
sagem que contivesse todos os controles do que ter todos esses cabeçalhos
separados. Por que isso não é feito?

R.:

02 5 1
4
Isso não é feito pois normalmente a comunicação ocorre entre máquinas, sistemas op-

00
eracionais e arquiteturas diferentes; o que dificultaria ter apenas um cabeçalho na frente
da mensagem (devido à ruído ou perda de dados).
Com a separação dos cabeçalhos, a comunicação fica mais facilitada e eficiente pois
cada camada fará o empacotamento/desempacotamento das mensagens em cada nível
de representação desejado (transporte, rede, aplicação, etc).

1
Semantical proximity can be defined in different ways, but it boils down to keeping track of nodes
with similar resources. The nodes and these links will then form what is known as a semantic overlay
network [5]

5
Referências Bibliográficas
[1] Comunicação. http://www.facom.ufu.br/~faina/BCC_Crs/GSI028-2014-1S/DL/
DS-Ch04.pdf.
[2] Comunicação em sistemas distribuídos. http://www.dimap.ufrn.br/~motta/dim070/
Aula03.pdf.
[3] Comunicação entre processos. https://www.inf.pucrs.br/~gustavo/disciplinas/ppd/
material/slides-sockets-novo.pdf.
[4] Sistemas distribuídos: Comunicação. https://ead2.ifmg.edu.br/ourobranco/
pluginfile.php/32055/mod_resource/content/1/comunicacao.pdf.
[5] Andrew S. Tanembaum. Distributed Systems: Principles and Paradigms. Pearson,
2006.

02 5 1
00 4

Diego Santos Seabra


0040251

Você também pode gostar