Sei sulla pagina 1di 9

1

Modelos de Comunicao em
Sistemas Distribudos

Prof. Leonardo Ges

Modelos de Comunicao em SD

Contedo
Elementos bsicos de comunicao
Transmisso de dados
Endereamento
Sincronismo
Enfileiramento (Bufferizao)
Confiabilidade
Comunicao cliente-servidor
Comunicao em grupo
Chamada remota de procedimento
Modelos de Comunicao em SD

Comunicao cliente-servidor

Requisio 7
Cliente Servidor 6
Resposta
5 Requisio/Resposta
Ncleo Ncleo 4
3
2 Enlace
Rede 1 Fsico

Modelos de Comunicao em SD

1
1
4

Transmisso de dados
Dados em programas so estruturados
enquanto que mensagens carregam
informao sequencial:
Linearizao/Restaurao de dados
Heterogeneidade na representao de dados
em computadores:
Uso de um formato externo comum
Incluso de uma identificao de
arquitetura na mensagem
Modelos de Comunicao em SD

5
Marshalling/Unmarshalling
Marshalling:
Processo de montagem dos dados para
transmisso
Linearizao de uma coleo de itens de
dados estruturados
Traduo dos dados em formato externo
Unmarshalling: Processo inverso
Traduo do formato externo para o local
Restaurao dos itens de dados de acordo
com sua estrutura
Modelos de Comunicao em SD

Endereamento
Esquemas:
Endereamento mquina.processo
Endereamento mquina.id-local
Descoberta de endereo via broadcasting
(difuso)
Descoberta de endereo via um servidor
de nomes
Problemas potenciais: transparncia de
localizao, sobrecarga, escalabilidade
Modelos de Comunicao em SD

2
2
7

Comunicao sncrona
Primitiva send bloqueante: processo cliente
aguarda enquanto o ncleo envia a
mensagem para o processo servidor.
Primitiva receive bloqueante: processo
servidor aguarda at que o ncleo receba
uma mensagem endereada para aquele
processo.

Modelos de Comunicao em SD

Comunicao assncrona
Primitiva send no bloqueante: o processo
cliente aguarda somente enquanto a
mensagem copiada para o buffer do
ncleo.
Primitiva receive pode ser:
bloqueante: o processo servidor aguarda
por uma mensagem.
no bloqueante: o processo servidor
simplesmente comunica o ncleo que
espera receber uma mensagem.
Modelos de Comunicao em SD

Enfileiramento
Situaes:
Send ocorre antes de Receive
Um cliente faz um Send enquanto o
servidor ainda atende a outro cliente
Soluo trivial: clientes devem insistir ...
Soluo pragmtica: mailbox (uma fila de
mensagens controlada pelo ncleo):
mailbox criado a pedido do servidor
mensagens endereadas ao mailbox
Modelos de Comunicao em SD

3
3
10

Confiabilidade
Mensagens se perdem, atrasam, duplicam.
Abordagens:
Send tem semntica no confivel: as
aplicaes devem garantir entrega de
mensagens (ex: timeout)
Mensagem de acknowledgement enviada
pelo servidor (no nvel ncleo)
Mensagem de acknowledgement implcita
na resposta do servidor
Modelos de Comunicao em SD

11

Pacotes em protocolo C-S


Cdigo Tipo De Para Descrio
REQ Request C S O cliente deseja um
servio
REP Reply S C Resposta do servidor para
o cliente
ACK Ackowledgment x y O pacote anterior chegou
AYA Are you alive? C S Investiga de o servidor
no parou
IAA I am alive S C O servidor no parou
TA Try again S C O servidor est lotado
AU Address unknown S C Nenhum processo est
usando aquele endereo
Modelos de Comunicao em SD

Chamada de Procedimentos 12

Remotos (RPC)
Comunicao baseada em operaes de
entrada/sada: abstrao fraca, sujeito a
erros
Ideal: programar um sistema distribudo
como se fosse centralizado
RPC objetiva permitir chamada de
procedimento remoto como se fosse local,
ocultando entrada/sada de mensagens

Modelos de Comunicao em SD

4
4
13

Viso geral
Um processo A chama um
procedimento p de um processo B,
entrando em estado de espera
O processo B passa a executar o
procedimento p, e ao seu trmino faz
um reply para o processo A
O processo A volta sua execuo
normal aps ter recebido o reply
Modelos de Comunicao em SD

14

Chamadas de procedimento
O procedimento chamador, que j tem suas
variveis locais empilhadas, empilha os
parmetros da chamada e o endereo de
retorno
O procedimento chamado aloca suas
variveis locais
No retorno do procedimento chamado, os
parmetros e o endereo de retorno so
desempilhados
Modelos de Comunicao em SD

15

Modos de parmetros
Valor: procedimento chamado recebe uma
cpia de uma varivel conhecida do
procedimento chamador
Referncia: procedimento chamado recebe o
endereo de uma varivel conhecida do
procedimento chamador
Cpia/Reescrita: procedimento chamador
recebe uma cpia de uma varivel conhecida
do procedimento chamador e o valor desta
cpia reescrito na varivel
Modelos de Comunicao em SD

5
5
16

Chamadas e mensagens em RPC

Mquina do Cliente Mquina do Servidor

2 4
1 empacota desempacota 5
0 6
parmetros parmetros
cliente servidor
desempacota empacota
11 7
resultados resultados
10 8

Kernel Kernel

3
transporte de mensagens
9 via rede

Modelos de Comunicao em SD

17

Funes dos Stubs


Client stub
intercepta a chamada
empacota os parmetros (marshalling)
envia mensagem de request ao servidor (atravs do ncleo)
Server stub
recebe a mensagem de request (atravs do ncleo)
desempacota os parmetros (unmarshalling)
chama o procedimento, passando os parmetros
empacota o resultado
envia mensagem de reply ao cliente (atravs do ncleo)
Client stub
recebe a mensagem de reply (atravs do ncleo)
desempacota o resultado
passa o resultado para o cliente
Modelos de Comunicao em SD

18

Falhas em RPC
O cliente no capaz de localizar o servidor
A mensagem de request do cliente para o
servidor perdida
A mensagem de reply do servidor para o
cliente perdida
O servidor pra aps ter recebido a
mensagem de request
O cliente pra aps ter enviado a mensagem
de request
Modelos de Comunicao em SD

6
6
19

Falha do servidor
Passos normais:
recebe mensagem de request
executa procedimento
envia mensagem de reply
Falha pode ocorrer:
aps a execuo
antes da execuo
Semnticas de chamada:
pelo menos um
no mximo um
exatamente um
Modelos de Comunicao em SD

20

Falha do cliente
O servidor torna-se um rfo
Solues:
exterminao do servidor pela mquina do cliente
reencarnao do cliente: toda computao remota
destruda
"reencarnao" suave do cliente: somentes as
computaes remotas referentes a aquele cliente
so destrudas
expirao: servidor estabele um timeout para
confirmao

Modelos de Comunicao em SD

21

Comunicao em grupo
Tolerncia a falhas
R
baseada na replicao
R R
de servios
R E R Localizao de objetos
R R em servios distribudos
R
Melhor desempenho via
E Processo que envia mensagem
replicao de dados
R Processo que recebe mensagem
Mltipla atualizao

Modelos de Comunicao em SD

7
7
22

Tipos de grupos
Visibilidade:
Aberto: um processo fora do grupo
consegue enviar mensagens para o grupo
todo
Fechado: somente processos do grupo
enviam mensagens para o grupo todo
Organizao:
Peer: todos os processos tomam deciso
Hierrquico: deciso centralizada

Modelos de Comunicao em SD

23

Endereamento de grupo
Multicast: um processo envia uma
mensagem simultnea e somente para os
membros do grupo.
Broadcast: um processo envia uma
mensagem para todas as mquinas e
somente as que contm um membro do
grupo a assimila.
Unicast: um processo envia uma mensagem
para todos os membros do grupo em srie.
Modelos de Comunicao em SD

24

Modificaes no grupo
Controle centralizado: servidor de grupo
Controle descentralizado: acordo entre
os membros
Operaes:
Entrada de um membro: atualizar estado
Sada de um membro: se involuntria (ex:
parada), todos os membros restantes
devem notar sua sada.
Modelos de Comunicao em SD

8
8
25

Primitivas de comunicao
GroupSend: envia mensagem para
todos os membros do grupo
GroupReceive: aguarda mensagem
enviada a todo o grupo
GetReply: aguarda resposta de todos
os membros do grupo aps um
GroupSend

Modelos de Comunicao em SD

26

Atomicidade
Uma mensagem enviada ao grupo deve
ser recebida por todos os seus
membros ou por nenhum deles.
Situao: o enviador pode parar
enquanto est enviando a mensagem
para o grupo.
Garantia de consistncia do grupo
Facilidade de programao

Modelos de Comunicao em SD

27

Ordenao de mensagens
Todas as mensagens enviadas a um
grupo devem chegar a todos os
processos na mesma ordem.
Abordagens:
Ordenao por tempo global
Ordenao por tempo consistente:
somente uma mensagem por vez
difundida

Modelos de Comunicao em SD

9
9

Potrebbero piacerti anche