tópicos em redes e sistemas distribuídos carlos oberdan rolim ciência da computação sistemas de...

29
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Upload: internet

Post on 18-Apr-2015

106 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Tópicos em redes e sistemas distribuídos

Carlos Oberdan Rolim

Ciência da ComputaçãoSistemas de Informação

Page 2: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Sincronização em Sistemas Distribuídos

[C10,C13, T3]

Page 3: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

ConteúdoRelógios lógicos

Relógicos físicos

Exclusão mútua

Algoritmos de eleição

Page 4: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Eventos e relógiosA ordem de eventos que ocorrem em processos distintos pode ser crítica em uma aplicação distribuída (ex: protocolo de consistência de réplicas).

Em um sistema com n computadores, cada um dos n cristais terá uma frequência própria, fazendo com que os n relógios percam seu sincronismo gradualmente.

Page 5: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Relógios lógicos

Princípios:1. Somente processos que interagem precisam sincronizar seus

relógios.

2. Não é necessário que todos os processos observem um único tempo absoluto; eles somente precisam concordar com relação à ordem em que os eventos ocorrem.

» Ordenação parcial de eventos

» Ordenação causal potencial

Page 6: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Relógios lógicos (cont.)

Relação acontece-antes ( -» ):1. Sejam x e y eventos num mesmo processo tal que x ocorre

antes de y. Então x -» y é verdadeiro.

2. Seja x o evento de uma mensagem a ser enviada por um processo, e y o evento dessa mensagem ser recebida por outro processo. Então x -» y é verdadeiro.

3. Sejam x, y e z eventos tal que x -» y e y -» z. Então x -» z é verdadeiro.

Page 7: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Relógios lógicos (cont.)

Eventos ocorrendo em três processos:

p1

p2

p3

a b

c d

e f

m1

m2

TempoFísico

Os processos "a" e "e" são concorrentes: a || e

a -» b, c -» d, e -» f, b -» c, d -» f

a -» f

Page 8: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Relógios lógicos (cont.)

Implementação: Cada processo p mantém seu próprio relógio lógico (um contador, por software), Cp, usado para fazer timestamp de eventos. Cp(x) denota o timestamp do evento x no processo p, e C(x) denota o timestamp do evento x em qualquer processo.LC1: Cp é incrementado antes de cada evento em p.

LC2: (a) Quando um processo p envia uma mensagem m, ele concatena a informação t=Cp a m, enviando (m,t).

(b) Quando um processo q recebe a mensagem (m,t), ele computa Cq := max(Cq, t) e aplica LC1 antes de fazer timestamp do evento de recebimento da mensagem.

Page 9: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Exemplo de aplicação do algoritmo de relógios lógicos

P106121824303642485460

P208162432404856647280

P30102030405060708090100

A

B

C

D

Page 10: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Exemplo de aplicação do algoritmo de relógios lógicos

P106121824303642487076

P208162432404861697785

P30102030405060708090100

A,0

B,24

C,60

D,69

Page 11: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Relógios lógicos (cont.)

Ordenação total de eventos: dois eventos nunca ocorrem exatamente no mesmo instante de tempo.1. Se x ocorre antes de y no mesmo processo, então C(x) é

menor que C(y).

2. Se x e y correspondem ao envio e ao recebimento de uma mensagem, então C(x) é menor que C(y).

3. Para todos os eventos x e y, C(x) é diferente de C(y).

Implementação: concatenar o número do processo ao timestamp.

Page 12: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Relógios físicos

GMT: Greenwich Mean Time

BIH: Bureau Internacional de l’Heure

TAI: International Atomic Time

UTC: Universal Coordinated Time

NIST: National Institute of Standard Time

WWV: estação de rádio de ondas curtas

GEOS: Geostationary Environment Operational Satellite

Page 13: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Relógios físicos (cont.)

Algoritmo de Berkeley:A rede não dispõe de uma máquina com um receptor WWV

A rede dispõe de um time server que faz polling nas outras máquinas a fim de obter a hora marcada por cada uma, fazer uma média entre essas horas e divulgar essa média para todas as máquinas.

NTP: Network Time ProtocolSub-rede hierárquica de sincronização

Servidores primários (WWV) e secundários

Page 14: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Relógios físicos (cont.)Algoritmo de Cristian:

A rede dispõe de um time server (receptor WWV)

Uma máquina cliente envia uma mensagem pedindo a hora certa ao time server

Ao receber a mensagem resposta do time server, o cliente adiciona o tempo médio de envio de mensagens à hora recebida. Esse tempo médio é calculado pelo próprio cliente considerando as horas de envio e recebimento das mensagens e ainda o tempo gasto pelo time server para processar o pedido.

Page 15: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Algoritmo de Cristian

T0

R

I

T1

R ?d

d

Máquina M Timer Server

d = ( T1 – T0 – I ) / 2 T = R + d

Page 16: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Exclusão mútua

Controle de acesso a regiões críticasAlgoritmo centralizado:

Um processo é eleito o coordenador

Os processos concorrentes devem requisitar permissão de acesso ao coordenador

Um processo que termina de fazer acesso a uma região crítica deve comunicar a liberação da região ao coordenador

Processos que tentam entrar em uma região crítica ocupada devem aguardar em uma fila controlada pelo coordenador

Page 17: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Alg. Centralizado - Exemplo

Page 18: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Alg. Centralizado - Exemplo

Processo 3 aguardando na fila pela liberação do recurso

Page 19: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Alg. Centralizado - Exemplo

Page 20: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Exclusão mútua (cont.)

Algoritmo distribuído:Baseado em ordenação total de eventos e comunicação confiável em grupo (multicast ou broadcast).

Um processo que deseja entrar em uma região crítica constrói uma mensagem com o nome da região, o número do processo e a hora, e a envia a todos os demais processos concorrentes.

Um processo que recebe a mensagem:

Caso não esteja na região crítica e não intencione entrar nela, retorna OK.

Caso já esteja na região crítica, não responde e enfileira a requisição.

Caso também intencione entrar na região crítica, determina o processo que tentou primeiro (comparando timestamps) e responde OK ou enfileira a requisição, apropriadamente.

Page 21: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Alg. Distribuído - Exemplo

Page 22: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Alg. Distribuído - Exemplo

Page 23: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Alg. Distribuído - Exemplo

Após algum tempo 1 responde a 3 OK e então este entra na Região crítica pois já possuía OK do 2 anteriormente

Page 24: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Exclusão mútua (cont.)Algoritmo de Token Ring:

Os processos são conectados por um anel e numerados sequencialmente a partir de 0.

Na iniciação do anel, uma token é dada ao processo 0.

A token é passada do processo k para o processo k+1.

Ao receber a token, um processo pode retê-la ou passá-la imediatamente para o próximo processo, dependendo se deseja ou não, respectivamente, entrar na região crítica. Enquanto o processo estiver na região crítica, a token fica retida, e somente ao sair da região crítica é repassada adiante.

Page 25: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Alg. Token Ring - Exemplo

Page 26: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Algoritmos de eleiçãoAlgoritmo de BullyO algoritmo de Bully serve para eleger um líder (processo coordenador) em algoritmos distribuídos

Processos são identificados por um identificador numérico, único, fixo e atribuído antes do início da eleição.A topologia não é limitada a um anel e cada um dos processos pode se comunicar com qualquer outro no sistema. Novamente a execução do algoritmo busca eleger o processo de maior identificador e fazer com que todos reconheçam o novo líder.

Page 27: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Algoritmo Bully:Se um dos processos identifica a perda de contato com o líder, inicia uma nova eleição enviando a todos os outros uma mensagem contendo seu identificador.

Todos os nós respondem ao processo que iniciou a eleição com os seus próprios identificadores.

Se o processo que iniciou a eleição possui o maior identificador entre todos os outros, proclama-se líder e avisa todos os outros. Senão aguarda que o processo de maior identificador inicie uma eleição e se torne líder.

Este algoritmo possui este nome justamente por seu comportamento de bully. (Bullying é um termo em inglês utilizado para descrever atos de violência física ou psicológica, intencionais e repetidos)

O processo de maior identificador predomina sobre os de menor número e mesmo que um destes ganhe uma eleição, rapidamente toma o posto do eleito propondo uma nova eleição.

1. Um processo P envia uma mensagem ELECTION para todos os processos de maior número.

2. Se nenhum processo responde, P vence a eleição e se torna o coordenador.

3. Se um dos processos responde este inicia sua participação na eleição a partir do passo 1. O trabalho de P está feito.

Algoritmos de eleição

Page 28: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Algoritmos de eleição (cont.)Algoritmo de Anel:

O algoritmo em anel ou LCR, iniciais de Le Lann, Chang e Roberts, serve para eleger um líder se os processos estiverem dispostos em um anel.

Cada processo deve conhecer seu vizinho à direita e à esquerda e deve ter um identificador numérico, único, fixo e atribuído antes do início da eleição.

Originalmente este algoritmo visava a recuperação de um token perdido em uma rede com topologia em forma de anel, elegendo um nó da rede que servisse como ponto de partida para o novo token.

Page 29: Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação

Algoritmos de eleição (cont.)Algoritmo de Anel:

Se um dos processos identifica a perda de contato com o líder, inicia uma nova eleição enviando a todos os outros uma mensagem contendo seu identificador.

Esse processo constrói uma mensagem ELECTION contendo seu número e envia ao seu sucessor. Se o sucessor estiver parado, a mensagem é enviado ao sucessor do sucessor.

O processo que recebe a mensagem insere seu próprio número na mensagem e passa para o seu sucessor.

Quando a mensagem retorna ao processo que originou a eleição, este descobre quem é novo coordenador (o processo com número maior) e, em seguida, envia uma mensagem COORDINATOR comunicando o fato.