Você está na página 1de 6

Sistemas Distribuídos

Unidade 4 n O que são?


n São sistemas compostos por diversas partes
Programação Distribuída cooperantes que são executadas em máquinas
diferentes interconectadas por uma rede
n Exemplos de aplicações distribuídas
n Sistemas Distribuídos n WWW, ICQ, IRC, Morpheus/Kazza,
Morpheus/Kazza, etc.
n Tempo Global n Sistemas bancários
n Estado Global n Sistemas de gerenciamento de redes de
telecomunicações, transmissão de energia, etc.
n Transações Distribuídas
n Sistemas de informação de grandes empresas
n Controle de Concorrência
n ... 2

Sistemas Distribuídos Sistemas Distribuídos


n Estrutura Física n Vantagens
n Máquinas (hosts) n Usam melhor o poder de processamento por
são conectadas a um distribuir a carga entre as máquinas
provedor (ISP) ou rede n Podem apresentar melhor desempenho, maior
local, metropolitana,
metropolitana, confiabilidade, e suportar um maior número
sem fio,
fio, etc. de usuários
n Estas redes são n Permitem compartilhar dados e recursos e
interligadas por redes reutilizar serviços já disponíveis
de longa distância n ...
públicas (ex.: Internet)
ou privadas © Kurose & Ross
3 4

Sistemas Distribuídos Sistemas Distribuídos


n Dificuldades n Dificuldades
n Acoplamento fraco n Sistemas heterogêneos
n Máquinas trocam dados pela rede n Máquinas, linguagens e S.O.´s diferentes
n Como tratar estas diferenças?
n Tempo de comunicaç
comunicação ilimitado à pode
n Não há uma base de tempo global
comprometer o funcionamento do sistema
n Em geral os relógios não estão sincronizados
n Como reduzir o tráfego na rede?
n Como ordenar os eventos no sistema?
n Não-
Não-deterministas
n Difícil ter uma visão global
n Comportamento pouco previsível
n Transações envolvem várias máquinas
n Como evitar congestionamento/sobrecarga?
congestionamento/sobrecarga? n Como manter o estado global do sistema?
5 6

1
Sistemas Distribuídos Sistemas Distribuídos
n Dificuldades n Dificuldades
n Acesso concorrente a dados e recursos n Sujeito a falhas
n Dados/recursos em diferentes máquinas n Asmáquinas e a rede podem falhar
n Como controlar o acesso concorrente? n Como evitar que estas falhas comprometam

n Como evitar deadlocks?


deadlocks? o funcionamento do sistema?
n Difícil gerenciar e manter o sistema n Segurança

n Máquinas dispersas pela rede n Mais difícil controlar o acesso a dados e

n Administração pode ser independente


recursos em sistemas distribuídos
n Como garantir a segurança do sistema e o

7
sigilo dos dados trocados pela rede? 8

Tempo Global Tempo Global


n É necessário determinar com exatidão o n Os relógios das máquinas não são
tempo no qual os eventos ocorrem nos sincronizados
sistemas computacionais n Os relógios não são precisos: há um desvio
n Registro de acesso ao sistema (login/logout
(login/logout)) entre o tempo real e o marcado pelo relógio
n Determinação do tempo de uso (ex.: telefonia, n Mesmo que se acerte os relógios, com o
acesso à rede, vídeo sob demanda, passar do tempo eles perdem a sincronia
videoconferência, etc.)
n Registro de transações bancárias
n Registro de compra/venda de produtos
n Auditoria e segurança
Rede
n ... 9 © Colouris
Colouris,, Dollimore & Kindberg 10

Tempo Global Tempo Global


n Possíveis soluções: n NTP (Network Time Protocol)
n Relógios atômicos colocados em todas as n Hieraquia de Servidores
máquinas, marcando o tempo universal (UTC) n Servidores
de 1o nível (ou primá
primários):
n Inviá
Inviável! possuem reló
relógios precisos
n Receptores de satélite em todas as máquinas n Servidores de 2o, 3o, ..., No nível: recebem o
(satélites difundem o sinal de tempo UTC) tempo do ní
nível anterior
n Sairia caro demais! n Clientes (má
(máquinas dos usuá
usuários finais):
n Sincronizaç
Sincronização pela rede perguntam o tempo a um servidor e atualizam
n Servidores de tempo, com reló
seus reló
relógios com base na resposta recebida
relógios precisos,
difundem um sinal de tempo pela rede 11 12

2
Tempo Global Tempo Global
n NTP (Network Time Protocol) n Características do NTP
n Barato por não exigir relógios precisos
1o Nível (atômicos ou com GPS) em todas as máquinas
n Impreciso devido ao tempo de propagação
das mensagens pela rede não ser constante
2o Nível n O algoritmo de sincronizaç
sincronização dos reló
relógios
leva em conta uma estimativa do tempo de
propagaç
propagação das mensagens pela rede
n Mesmo assim, existe um erro implícito que
pode chegar a dezenas de ms, e que deve
ser levado em conta pelos sistemas
13 14

Tempo Global Tempo Global


n Relógios Lógicos (Lamport
(Lamport,, 1978) n Relógios Lógicos – Exemplo:
n Usados para definir a ordem dos eventos n Analisandoos timestamps temos que:
produzidos por um grupo de processos aàbàcàdàf ; a||e
||e ; eàf
n Cada processo mantém um contador, e atribui
1 2
marcas de tempo (timestamp) aos eventos p1
(ex.: envio ou recepção de mensagens) a b m1

n Cada mensagem trocada pela rede carrega 3 4 Tempo


p2
consigo o timestamp atribuído pelo remetente c d
físico
(real)
m2
n Os eventos são ordenados pelos timestamps
1 5
p3
15 e f 16
© Colouris
Colouris,, Dollimore & Kindberg

Tempo Global Tempo Global


n Relógios Lógicos com Ordenação Total n Relógios Vetorias (Mattern,
Mattern, 89; Fidge,
Fidge, 91)
nO identificador do processo é usado para n Usa vetores de timestamps com o valor
definir a ordem de eventos concorrentes conhecido do relógio lógico de cada processo
n Assim podemos assumir que aàe n Se Vx[i] ≤ Vy[i] Vi e Vx ≠ Vy, então xày
1 2 (1,0,0) (2,0,0)
p1 p1
a b m1 a b m1

3 4 Tempo (2,1,0) (2,2,0) Tempo


p2 físico p2 físico
c d (real) c d (real)
m2 m2

1 5 (0,0,1) (2,2,2)
p3 p3
e f 17 e f 18
© Colouris
Colouris,, Dollimore & Kindberg © Colouris
Colouris,, Dollimore & Kindberg

3
Estado Global Estado Global
n Estado Global de um Sistema Distribuído n Quando é preciso obter o Estado Global?
nÉ o conjunto dos estados locais dos processos n Garbage Collection : verificar se existem
clientes de objetos acessados remotamente
n Como o estado local de cada processo muda
n Debugging Distribuído: verificar os valores das
continuamente, é muito difícil conhecer o
variáveis de um programa distribuído
estado global do sistema
n Controle de Membership : listar os membros
n Tentar obter o estado global consultando cada
de um grupo de processos ou usuários
processo pode levar a inconsistências n ...
n Exemplos: n Como obter um Estado Global consistente?
n Crianças trocando figurinhas nÉ preciso considerar o efeito das mensagens
n Saldo das contas de correntistas de um banco 19
trafegando na rede para obter o estado global 20

Estado Global Estado Global


n Protocolo de Snapshot (Chandra & Lamport,1985)
Lamport,1985) n Protocolo de Snapshot – Exemplo:
nO processo que inicia o protocolo salva seu Vende (disquete, R$1) 100 disquetes,
estado e envia uma mensagem marker por R$10 C S 50 CDRs,
CDRs,
todos os seus canais de saída R$50
Marker 99 disquetes,
n Os demais processos salvam seu estado ao S
R$9 C 50 CDRs,
CDRs,
receber o 1o marker e enviam markers por 1 disquete R$51
todos os seus canais de saída R$9,
R$9,
Vende (CDR, R$3) 99 disquetes,
C S 50 CDRs,
CDRs,
n O estado de um canal consiste nas mensagens 1 disquete Marker R$51
recebidas pelo canal até chegar um marker
Estado do processo C: R$9
n Assim obtém o estado de todos os processos e Estado do canal S-
S->C: 1 disquete
canais de comunicação do sistema Estado do processo S: 99 disquetes, 50 CDRs,
CDRs, R$51
21 Estado do canal C-
C->S: vazio 22

Estado Global Transações Distribuídas


n Replicação de Dados n Transações distribuídas alteram o estado
n Os dados do sistema podem estar replicados de vários processos em várias máquinas
n É necessário garantir a consistência de n Devem ser garantidos a atomicidade,
atomicidade, a
réplicas à réplicas com o mesmo valor! consistência,
consistência, o isolamento e a durabilidade
n Alterações nos dados devem ser propagadas n Falhas podem impedir a execução de uma
para as máquinas com réplicas do dado transação
n Replicação dificulta a obtenção do estado
n Falha de software
global do sistema
n Falha da máquina
n Cada réplica deve atualizar seu estado ao
reintegrar-
reintegrar-se ao sistema;
sistema; qualquer n Falha na comunicação
inconsistência nos dados deve ser resolvida n Nem sempre é possível saber quem falhou!
falhou!
23 24

4
Transações Distribuídas Transações Distribuídas
n Execução de Transações Distribuídas n Coordenador de Transações
n Coordenadores de transações coordenam a n Inicia a execução da transação
execução das transações iniciadas localmente n Divide a transação em sub-
sub-transações e as
n Gerenciadores de transações administram a distribui no sistema para execução
execução da parte local da transação n Efetiva ou faz o rollback em todos os sites

Máquina 1 Máquina 2 Máquina 3


n Gerenciador de Transações
n Controla a execução da sub-
sub-transação local
Coordenador Coordenador Coordenador
n Matém um log das operações executadas para
Gerenciador Gerenciador Gerenciador permitir a recuperação da transação
25 26

Controle de Concorrência Controle de Concorrência


n Controle de Concorrência em Sist.
Sist. Distrib.
Distrib. n Protocolo de Bloqueio Múltiplo
n Protocolos para controlar o acesso a dados e
(Descentralizado)
n São usados vários gerenciadores em
recursos compartilhados
diferentes máquinas
n Mecanismos de detecção de deadlock
n Cada gerenciador administra os bloqueios de
n Protocolo de Bloqueio Único (Centralizado) um conjunto de dados/recursos
n Uma máquina funciona como gerenciador de n Evita o ’gargalo’ do protocolo centralizado,
bloqueios, que administra todos os pedidos de mas dificulta a detecção de deadlocks
bloqueio de dados ou recursos no sistema n Impede o acesso ao dado/recurso se o

n É simples, pois a detecção de deadlocks é


gerenciador falhar, mesmo que a máquina
com o dado/recurso esteja funcionando
local, mas é sujeito a falhas e pouco escalável
27 28

Controle de Concorrência Controle de Concorrência


n Protocolo de Bloqueio Distribuído n Protocolo com Cópia Primária
n Cada máquina do sistema tem o seu n Usado no acesso a dados replicados
gerenciador de bloqueios n Cada dado replicado possui uma cópia
n Cada gerenciador administra os bloqueios de primária em um máquina
dados/recursos locais n O bloqueio é solicitado à máquina com a cópia
n Assim como o anterior, evita o ’gargalo’, mas primária daquele dado
dificulta a detecção de deadlocks n Simples e escalável,
escalável, mas impede o acesso às
n Impede o acesso somente quando a máquina réplicas se o primário falhar, e dificulta a
com o dado/recurso falhar detecção de deadlocks

29 30

5
Controle de Concorrência Controle de Concorrência
n Protocolo da Maioria n Protocolo Parcial
n Usado no acesso a dados replicados n Cada máquina tem o seu gerenciador de
n Cada máquina possui um gerenciador para bloqueio das réplicas locais de dados
bloqueio de réplicas de dados locais n Bloqueios compartilhados são obtidos
n O bloqueio de dados com réplicas é contatando o gerenciador de somente uma
concedido se a maioria dos sites permitir réplica do dado
n Mais complexo para implementar que os n Bloqueios exclusivos devem ser solicitados em
anteriores, e difícil detectar deadlocks todos os gerenciadores de bloqueio de todas
as máquinas com réplicas
escalável, mas difícil detectar deadlocks
n Bem escalável,
31 32

Controle de Concorrência
n Detecção de Deadlocks Distribuídos
n Cada máquina monta um gráfico de espera
com os bloqueios mantidos localmente
n Um nó PEX é adicionado ao
gráfico para representar P1 P2
uma espera por recursos
externos bloqueados P3 PEX
n Um ciclo passando apenas
por nós locais representa um deadlock
n Um ciclo envolvendo PEX indica um possível
deadlock, que deve ser verificado junto às
máquinas envolvidas 33

Você também pode gostar