Redes e
Sistemas
Distribuídos II –
Cód. 30127
Prof. MSc. Ronnison Reges
Vidal
2
05/11/2015
Comunicação
Protocolos de Camadas
Mater Christi
3
05/11/2015
Roteiro
 Comunicação
entre Processos
 Protocolos em Camadas
 Modelo Cliente-Servidor
 RPC
Mater Christi
4
05/11/2015
Comunicação Entre Processos
(CEP)


CEP em Sistemas Distribuídos é sempre
baseada em troca de mensagens. Não existe
memória ou clock compartilhados.
3 modelos de comunicação:



RPC: Remote Procedure Calls (Chamada de
Procedimento Remoto, oculta a
comprexidade da troca de mensagens)
MOM: Message-Oriented Middleware
(Middleware Orientado a Mensagem, como email)
Data Streaming (Fluxo de Dados, para
aplicações multimídias)
Mater Christi
5
05/11/2015
Termos mais usados na CEP


Multicast: enviar para múltiplos receptores
Protocolos Orientados a Conexão: Há a necessidade
de estabelecer conexão (i.e. Socket) antes da troca
de mensagens (por exemplo, Transmission Control
Protocol (TCP) ou Universal Datagram Protocol (UDP)





TCP: lento mas seguro quanto a perda de dados
UPD: rápido mas pode haver perda de dados
Protocolos sem conexão: por exemplo, troca de e-mail
Checksum: técnica comum para validar os dados
recebidos
OSI: Modelo Open Systems Interconnection (Baseado
em pacotes)
Mater Christi
Protocolos de Camadas
 Camadas,
interfaces e protocolos do
modelo OSI.
7. Alto nível
6. Cria
mensagem:
Como string de
bits
5. Estabelece
comunicação
4. Cria pacotes
3. Roteamento
de rede
2. Coloca:
header/footer
tag +
checksum
1. Transmiti bit
Protocolos em Camadas
 Uma
mensagem típica como ela
aparece na rede.
Camada de Enlace
 Discussão
entre um receptor e um emissor na
camada de enlace de dados.
9
05/11/2015
Modelo Cliente-Servidor
Mater Christi
10
05/11/2015
Modelo Cliente Servidor

Sobrecarga de Camadas



A cada mensagem enviada deve ser
processado meia dúzia de camadas cada qual
com seu cabeçalho
Para sistemas distribuídos amplos não há
muitos problemas
O fator limitante são as linhas de
processamento para sistemas distribuídos
localmente

Sobrecarga de protocolos
Mater Christi
11
05/11/2015
Modelo Cliente Servidor
 Solução

Estrutura o sistema operacional como um
grupo de processos cooperantes,
chamados de servidores, que oferecem
serviços aos usuários, chamados de clientes
 Cliente


– Modelo cliente/servidor
e servidor
Executam mesmo microkernel
Execução de um processo, de vários
clientes, de vários clientes ou uma mistura
de ambos
Mater Christi
12
05/11/2015
Modelo Cliente Servidor
 Baseado
em um protocolo de solicitação
/ resposta simples , sem conexão.


O cliente envia uma mensagem de
solicitação para o servidor solicitando
algum serviço
O servidor faz o trabalho e devolve os
dados pedidos ou de um código de erro
indicando porque o trabalho não pode ser
realizada
Mater Christi
13
05/11/2015
Modelo Cliente Servidor
Mater Christi
14
05/11/2015
Modelo Cliente Servidor
 Vantagem:



simplicidade
O cliente envia uma solicitação e recebe
uma resposta
Nenhuma conexão deve ser estabelecida
antes de usar ou desfeita depois
A mensagem de resposta serve como aviso
de recepção para a solicitação
Mater Christi
15
05/11/2015
Modelo Cliente Servidor
 Vantagem:


Eficiência
A pilha de protocolo é mais curta
Assumindo que todas as máquinas são
idênticos, são necessárias apenas três níveis
de protocolo
 Solicitação
e Resposta
 enlace de dados
 físicos
Mater Christi
16
05/11/2015
Modelo Cliente Servidor
 Exemplo

http://www.e-readinglib.com/chapter.php/143358/41/Tanenbau
m_-_Distributed_operating_systems.html
 Exemplo

de cliente e servidor em C
de cliente e servidor em Java
Deitel: Como programar
Mater Christi
17
05/11/2015
Modelo Cliente Servidor
 Endereçamento
 Bloqueio
vs Sem bloqueio
 Bufferização vs Não Buferização
 Confiável vs Não confiável
Mater Christi
18
05/11/2015
Modelo Cliente Servidor
 Endereçamento



Utilização de código de máquina e
processo
Utilizar processos aleatórios e localizá-los
por broadcast
Utilizar um servidor de nomes e localizar os
clientes em tempo de execução
Mater Christi
19
05/11/2015
Modelo Cliente Servidor
 Endereçamento


Envio de mensagens do cliente ao servidor
O endereço é da máquina ou do
processo?
 Endereços
de Rede – Processo único
 Endereços de Processos – utiliza dois
identificadores: Máquina e para o processo
Mater Christi
20
05/11/2015
Modelo Cliente Servidor
 Endereçamento

Problemas
 transparência
é um dos principais objetivos
da construção de um sistema distribuído
 suponha que o servidor de arquivos
normalmente é executado na máquina X
 abordagem
alternativa consiste em
atribuir a cada processo de um endereço
único que não contém um número da
máquina incorporado
Mater Christi
21
05/11/2015
Modelo Cliente Servidor

Endereçamento

abordagem alternativa consiste em atribuir a
cada processo de um endereço único que não
contém um número da máquina incorporado
ter um processo de alocação de endereço
centralizada que simplesmente mantém um
contador
 A desvantagem deste sistema é que os
componentes centralizados como este não
escalam para sistemas de grande porte e,
portanto, deve ser evitado

Mater Christi
22
05/11/2015
Modelo Cliente Servidor
 Endereçamento

outro método de atribuição de
identificadores de processo é deixar que
cada processo escolher seu próprio
identificador de um grande espaço de
endereço escasso
 Pacote
de difusão – envia para todas as
máquinas
Mater Christi
23
05/11/2015
Modelo Cliente Servidor
 Endereçamento

Embora este sistema é transparente ,
mesmo com o cache, a difusão coloca
carga extra no sistema
 carga
adicional pode ser evitada ,
proporcionando uma máquina adicional
para mapear de alto nível (ou seja , ASCII )
para nomes de endereços da máquina
Mater Christi
24
05/11/2015
Modelo Cliente Servidor
Mater Christi
25
05/11/2015
Modelo Cliente Servidor

Primitivas de Bloqueio vs Sem bloqueio




Primitivas de bloqueio ou Primitivas síncronas
Primitivas de não-bloqueio ou Primitivas
assíncronas
Quando um processo chama send ele
especifica um destino e um buffer para enviar
para esse destino
Enquanto a mensagem está sendo enviada, o
processo de envio é bloqueado (ou seja,
suspenso). A instrução após a chamada para
send não é executada até que a mensagem
foi enviada completamente
Mater Christi
26
05/11/2015
Modelo Cliente Servidor
 Primitivas


de Bloqueio vs Sem bloqueio
Uma alternativa são as primitivas sem
bloqueio
Se send é sem bloqueio, ele retorna o
controle para o chamador imediatamente,
antes que a mensagem seja enviada
Mater Christi
27
05/11/2015
Modelo Cliente Servidor
Mater Christi
28
05/11/2015
Modelo Cliente Servidor
 Primitivas


de Bloqueio vs Sem bloqueio
A vantagem deste sistema é que o
processo envio pode continuar a
computação em paralelo com a
transmissão de mensagens, em vez de ter o
processador ir ocioso
Desvantagem
O
enviador não pode modificar a mensagem
no buffer até que a mensagem tenha sido
enviada
Mater Christi
29
05/11/2015
Modelo Cliente Servidor
 Primitivas

de Bloqueio vs Sem bloqueio
Há duas formas
 Cópia
interna no buffer do kernel, permitindo
que o processo continue
 Interromper o enviador quando a mensagem
tiver sido enviada

Problemas de sincronização de comunicação
Mater Christi
30
05/11/2015
Modelo Cliente Servidor
 Primitivas

de Bloqueio vs Sem bloqueio
Envio com bloqueio
 CPU
permanece ocioso durante a
transmissão

Envio sem bloqueio com cópia
 CPU

desperdiça tempo com a cópia extra
Envio sem bloqueio com interrupção
 Torna
a programação difícil
Mater Christi
31
05/11/2015
Protocolos de
Middleware
Mater Christi
Protocolos de Middleware

Um modelo de referência adaptado para comunicação em rede.
33
05/11/2015
Tipos de Comunicação
 Middleware
visto como serviço
intermediário (distribuído) na
comunicação de nível da aplicação
Mater Christi
34
05/11/2015
Tipos de Comunicação
 Comunicação
Síncrona e Assíncrona
 Comunicação Persistente

Armazena a comunicação pelo tempo
necessário(por exemplo, mail delivery)
 Comunicação

Transiente
A mensagem é armazenada enquanto o
emissor e o receptor estão funcionando.
 Comunicação
Discreta
 Comunicação por Fluxo
Mater Christi
35
05/11/2015
RPC
Remote Procedure Call
Mater Christi
36
01/08/2013
RPC


Troca de mensagem entre processos
Birrel e Nelson (1984)


Executar chamadas a procedimentos localizados
em outras máquinas
Remote Procedure Call – RPC



Máquinas diferentes – Espaços de endereço
diferentes
Parâmetros e resultados necessitam ser
transportados
Alguma ou ambas as máquinas podem quebrar
Chamada de Procedimento
Convencional
(a) Passagem de parâmetros em uma chamada de procedimento
local: a pilha antes da chamada a read (b) A pilha enquanto o
procedimento está rodando.
38
01/08/2013
Stubs Cliente e Servidor
 Stub

Pedaço do código que transforma informações
(parâmetros) vindas de procedimentos locais
em mensagens
 Stub

Cliente
Servidor
Pedaço do código que transforma requisições
vindas da rede em chamadas de
procedimento locais
39
01/08/2013
Stubs Cliente e Servidor
 Transparência
chamada

Tipo de interface entre o código de usuário e o
sistema operacional local
 Stub




ao procedimento de
cliente
Método Análogo
Empacotamento de parâmetros
Envio ao servidor
Bloqueio em espera a resposta
40
01/08/2013
Stubs Cliente e Servidor
 Stub
servidor tipicamente chama o
procedimento “receive” e está
bloqueado esperando as mensagem que
virão
 Stub servidor desempacota os
parâmetros e chama o procedimento
servidor normalmente
41
01/08/2013
Stubs Cliente e Servidor
 Executa
a operação e retorna o
resultado
 Empacota
o resultado em uma
mensagem
 Chama o procedimento “send”
retornando o resultado ao cliente
 Chama o procedimento “receive”
esperando novas requisições
42
01/08/2013
Stubs Cliente e Servidor
A
menssagem é copiada para o buffer
de espera e o processo cliente é
desbloqueado
 Stub cliente inspeciona a mensagem e
desempacota o resultado copiando o
para o procedimento que o chamou
 O procedimento sabe que o dado está
disponível, mas não tem ideia que foi
processado remotamente
Stubs Cliente e Servidor
 Princípio
da RPC entre um programa
cliente e servidor.
Passos de uma chamada de
procedimento remoto
1.
2.
3.
4.
5.
Procedimento cliente chama o stub cliente em
modo normal
Stub cliente constrói a mensagem, chamadas
locais OS
OS do cliente envia mensagem para remoto OS
Remoto OS dá mensagem para stub servidor
Stub descompacta os parâmetros, e chama o
servidor
45
05/11/2015
Passos de uma chamada de
procedimento remoto
1.
2.
3.
4.
5.
Servidor não funciona, retorna resultado para o
topo
Stub servidor empacota em mensagem,
chamadas locais OS
OS do servidor envia a mensagem para o OS do
cliente
OS do cliente dá a mensagem para stub cliente
Stub descompacta resultado, retorna ao cliente
Mater Christi
Passando Valores por Parâmetro
 Passos
envolvidos na computação
remota através do RPC
Download

Sistemas Distribuídos – Aula 03