Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Modelos de Comunicao em
Sistemas Distribudos
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
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
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
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