Sistemas Distribuídos

Slides:



Advertisements
Apresentações semelhantes
Bruno M. Carvalho Sala: 3B2 Horário: 35T34
Advertisements

Sistemas Operacionais Sincronismo e Comunicação entre processos
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sincronização em Sistemas Distribuídos
Sistemas distribuídos
Barramentos Introdução.
Bruno Rafael de Oliveira Rodrigues
Sincronização em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
Arquitetura de Sistemas Distribuídos - Módulo 3: Sincronização em Sistemas Distribuídos 1 Sincronização em Sistemas Distribuídos Módulo 4 [C10,C13,T3]
Relógios Lógicos e Físicos
Exercícios de revisão sobre relógios lógicos e físicos Prof. Alcides Calsavara.
Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação
Algoritmos Distribuídos Professora: Lúcia Drummond
Capítulo 2: Modelo de Computação distribuída
Capítulo 4: Estado Global
Sincronização em SDs I Bruno M. Carvalho Sala: 3B2 Horário: 35T34.
Sistemas Distribuídos de Tempo Real
Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 3:Conceitos Básicos As figuras que.
Sistemas Distribuídos
Sistemas Distribuídos Sincronização e Coordenação
Modelos Fundamentais -> Interação Falhas Segurança.
COMO FUNCIONA A SIMULAÇÃO
ESTRUTURA DE COMUNICAÇÃO DE DADOS
Capítulo 5 – Tanenbaum Capítulo 10,11,12 e 13 - Coulouris
TIME, CLOCK’S and EVENTS
PROBABILISTC CLOCK SYNCHRONIZATION
Redes de computadores Modelo ISO-OSI Topologia.
Tópicos em Sistemas Distribuídos
Protocolo CMB em simulação distribuída
Redes – Unidade 1 Aula 4 Professor: Marcelo Maia.
Coordenação e consenso
Nazareno Andrade Universidade Federal de Campina Grande 02/2008
Sistemas Distribuídos
Tópicos em redes e sistemas distribuídos
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Sistemas Distribuídos
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ção Sistemas de Informação.
Coordenação e Sincronização em Sistemas Distribuídos
Carlos Oberdan Rolim Ciência da Computação
Sistemas Distribuídos
Protocolos de Recuperação
Topologias e Classificação das RC
REDES DE COMPUTADORES II
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação Programa de Pós-Graduação.
Bruna Rafaella da Costa Moura Silvana dos Santos Lima
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Técnicas de Replicação
Sistemas Distribuídos Capítulo 02 – Algoritmos Distribuídos Aula Passada 2.1 – Relógios Físicos e Lógicos Aula de Hoje 2.3 Exclusão Mútua 2.4 Eleição.
1 Sincronização em Sistemas Distribuídos Alcides Calsavara.
Troca de Mensagens Programação concorrente
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
DNS Willamys Araújo 1. Introdução A internet possui uma infinidade de sites e, para acessá-los, você digita um endereço no campo correspondente do seu.
Sincronização de Clocks em Sistemas Distribuídos Alessandra Antunes Vargas UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Programa de Pós-Graduação em Engenharia.
Modelos de Comunicação em Sistemas Distribuídos
Modelos de Comunicação em Sistemas Distribuídos
Redes II Sistemas Distribuídos
Sincronização 6 capítulo Andrew S. Tanenbaum Maarten Van Steen.
Padrão de Rede “Token Ring”. Trabalho realizado por: André Rodrigues nº2 Eurico Pinto nº8 Liliana Gouveia nº14 Nádia Moura nº16 Renato Rossas nº20.
Passagens de Mensagens Prof. Dr. Norian Marranghello
Serviço de tempo, Exclusão Mútua, Eleição e Acordo Prof. Dr. Norian Marranghello Grupo 5 Anuar Mamede Neto Eduardo Hitoshi Aoki.
Programação Concorrente
Algoritmos Distribuídos. 3.1 Relógios Físicos Porque sincronizar relógios?
Sistemas Distribuídos
Sistemas Distribuídos
Capítulo 13 Camada 5 A Camada de Sessão. Sumário A Camada de Sessão.
Transcrição da apresentação:

Sistemas Distribuídos Professor: Luiz José Hoffmann Filho ljhfilho@gmail.com

Sincronização - Relógios Físicos Capítulo 6

Relógios Físicos  Hora atômica Internacional (International Atomic Time) é baseada em relógios muito precisos (taxa de variação de 10 -13)  Hora Coordenada Internacional (Universal Coordinated Time – UCT) é o padrão para medição do tempo É baseada na hora atômica, mas ocasionalmente é ajustada pela hora astronômia 'Broadcast' da hora é feito através de estações de rádio (WWV) e satélites (GPS) Computadores que recebem o sinal sincronizam os relógios 

Relógios Físicos Seja C o valor do relógio 'ideal' (hora UTC)  Seja C o valor do relógio 'ideal' (hora UTC)  Seja Cp o valor do relógio no computador p Se t é o tempo no relógio em sincronia com a hora UTC, então temos o tempo em p dado por Cp(t) Idealmente para todo p e para todo t Cp(t) = t → C'p(t) = dC/dt = 1 Clock skew (defasagem do relógio): denota a magnitude de diferença entre as frequências de dois relógios

Relógios Físicos Como fazer a sincronização periódica entre  se um relógio está adiantado ou atrasado) Como fazer a sincronização periódica entre relógios?

Sincronização de Relógios Se existe um 'servidor de tempo' (receptor WWC ou relógio de precisão) Algoritmo proposto por Cristian (1989)  Se não existe uma fonte que disponibilize a hora coordenada universal (UCT) Algoritmo de Berkeley  Tempo exato não importa!! Relógios Lógicos → Algoritmo de Lamport e Relógios vetoriais 

Algoritmo I – Cristian (1989) Possibilidade de consultar servidores de tempo equipados com um receptor WWV ou um relógio de alta precisão Problema: Atrasos de mensagens farão com que a hora fornecida seja desatualizada Variações máquinas na estimativa do atraso entre as

Algoritmo I – Cristian (2)  Computador A consulta a hora no computador B Computador B inclui na resposta o valor do seu relógio → T3 Computador A atualiza o seu relógio com o valor do relógio em B adicionado ao retardo da mensagem entre B e A (One way delay) • Estimativa para o one-way delay = RTT/2, caso atrasos em ambas direções sejam aproximados

Algoritmo I – Cristian (3)  Como estimar o one way delay (atraso em uma direção)? – RTT/2 – Protocolo Network Time Protocol (NTP) • Computadores são dividos

Algoritmo II – Berkeley (I) Algoritmo usado para a sincronização interna de um grupo de computadores 'Servidor de tempo' é ativo (master) e coleta os valores de relógios de outros (slaves) Master usa estimativas do RTT para estimar o valor dos relógios dos computadores dentro dos grupos Hora atual é resultante de uma média Master envia ao slaves o total de tempo em que os relógios devem adiantar/atrasar Caso o master falhe, um novo computador master é eleito

Algoritmo II – Berkeley (II)

Algumas Considerações  Algoritmos de Cristian e Berkeley são algoritmos centralizados Algoritmos descentralizados também existem, como o Network Time Protocol (NTP) – Organizado em uma estrutura hierárquica → estratos (Evitar dependências cíclicas) – Um computador somente atualiza a sua hora, caso esteja em um estrato de nível inferior ao daquele que está trocando informações no momento

Relógios Lógicos Sincronização baseada em “tempo relativo”  Tempo relativo não possui nenhuma relação com o tempo real  O mais importante é que os processos do Sistema Distribuído concordem com a ordem em que os eventos ocorrem – Algoritmo de Lamport – Relógios Vetoriais

Agenda • Relógios Lógicos – Relógios de Lamport Relógios Vetoriais

Algumas definições... Um sistema distribuído pode ser visto como uma  Um sistema distribuído pode ser visto como uma coleção P de N processos pi, i = 1,2,… N  Cada processo pi possui um estado consistente si  Processos se comunicam através de mensagens  Ações de um processo: enviar e receber mensagens, mudar o próprio status  Evento: ocorrência de uma ação associada ao processo  Eventos dentro de um processo pi podem ser totalmente ordenados pela relação “acontece antes” (“happened before”) → , ou seja, a → b, se e somente se a ocorre antes de b em pi

Relógios Lógicos (Lamport,1978) Ao invés da sincronização de relógios, ordenação dos eventos: 1) Se dois eventos ocorrem no mesmo processo, então eles ocorrem na ordem observada pelo processo pi 2) Quando uma mensagem m é trocada entre dois processos, e a é o evento de envio e b o de recebimento, então a → b 3) Relação “acontece antes” é transitiva

Relógios Lógicos (Lamport,1978)(I) → c dado m1 a→ b ( p1) c→d (p2) d→ f dado m2 b Nem todos os eventos podem ser relacionados através da relação “acontece antes” → Consideremos a e e (processos diferentes, sem a existência de cadeias de mensagens entre os processos) Não estão relacionados através da relação → ; são definidos como processos concorrentes; a || e p1 a b m1 p2 Physical time c d m2 p3 e

Relógios Lógicos (Lamport,1978) (II) Um relógio lógico é um contador monotonicamente crescente. NÃO precisa estar relacionado com o relógio físico. COMO FUNCIONA Cada processo pi tem o seu relógico lógico, Ci que pode ser usado para aplicar timestamps lógicos aos eventos 1) Ci é incrementado de 1 antes de cada evento no processo pi 2) Quando um processo pi envia mensagem m, o tempo t = Ci é anexado a mensagem 3) Quando pi recebe (m,t), o relógio é atualizado para Ci:= max(Cj, t) antes de aplicar 1)

Relógios Lógicos (Lamport,1978) (III) Em cada um dos processos p1, p2, p3 o relógio lógico é inicializado com zero Os valores dos relógios lógicos são aqueles imediatamente após o evento, por exemplo, 1 para a, 2 para b. Juntamente com m1, o valor 2 é enviado e o relógio em p2, após o evento c, recebe o max(0,2)+1 = 3 a → b implica em C(a)<C (b ) MAS C(a)<C (b ) NÃO implica em a → b 1 2 p1 a b m1 C(b) > C(e) mas b || e 3 c 4 d Physical time p2 m2 1 5 e p3

Relógios Lógicos (Lamport,1978) (IV)

Relógios Vetoriais (Mattern, Figdge,1988) (I) • Relógios vetoriais - implementados para evitar a limitação dos relógios de Lamport: C(a) < C(b) não implica a “acontece antes” de b • Vetores com marcas de tempo são usados para os eventos locais em cada processo • Seja VCi [I] o número de eventos ocorridos em pi até o instante de tempo em questão •Seja VCi [j], o número de eventos que ocorreram em pj, portanto pi sabe quantos eventos ocorreram em pj

Relógios Vetoriais (Mattern, Figdge,1988) (II) Como Funciona Vetor de relógios VCi no processo pi é um vetor de N inteiros 1) Inicialmente CVi[j] = 0 for i, j = 1, 2, …N 2)antes de cada evento, pi executa CVi[i] := CVi[i] +1 3) pi envia t = CVi em cada mensagem transmitida 4) quando pi recebe (m,t), o processo ajusta CVi[j] := max(CVi[j] , t[j]) j = 1, 2, …N (antes do próximo evento adiciona 1 ao seu próprio contador de eventos)

(Mattern,Figdge,1988) (III) Relógios Vetoriais (Mattern,Figdge,1988) (III) p1: a(1,0,0); b (2,0,0) envia (2,0,0) juntamente com a mensagem m1 Em p2, no recebimento de m1, o vetor de relógios é modificado para max ((0,0,0), (2,0,0)) = (2, 0, 0) adicionando 1 ao seu próprio relógio = (2,1,0) Neste caso, o evento c 'sabe' que ocorreram 2 eventos no processo p1 antes da ocorrência do evento c em p2 =,<=, max: devem ser realizadas entre pares de elementos (1,0,0) a (2,0,0) b p1 m1 (2,1,0) c (2,2,0) d Physical time p2 m2 (0,0,1) e (2,2,2) f p3

Algumas considerações...  Algoritmos de Cristian e Berkeley sincroniza relógios físicos, apesar da defasagem entre relógios e retardos das mensagens  Para ordenar eventos em computadores diferentes, sincronização dos relógios nem sempre pode ser feito  A relação “acontece antes” resulta em uma ordenação parcial dos eventos  Relógios de Lamport são contadores que mudam de acordo com o relacionamento de “acontece antes” entre os eventos  Relógios vetoriais são uma melhora nos relógios de Lamport, onde dois eventos são ordenados pela relação “acontece antes” ou são concorrentes através da comparação dos vetores com marcas de tempo

Exclusão Mútua Problema: Conjunto de processos, em um sistema distribuido, que necessitam garantir acesso exclusivo a um recurso Soluções básicas: • Servidor Centralizado. • Completamente distribuído, sem topologia específica • Completamente distribuído, com uma topologia lógica em anel

Eclusão Mútua – Servidor Centralizado

Exclusão Mútua – Algoritmo Distribuído (Ricart e Agrawala ) Como funciona? a) Processo necessita acessar uma região ”crítica”: – Envia uma mensagem a todos os outros processos: nome do recurso, número do processo, tempo corrente – Todas as mensagens devem ser confirmadas

Exclusão Mútua – Algoritmo Distribuído (Ricart e Agrawala ) Como funciona? b) Processo recebe uma requisição: – Ação depende do estado no qual se encontra o processo ao receber a requisição • Se o processo não está acessando o recurso e nem pretende fazê-lo, envia uma OK • Se estiver na região critica, requisição é enviada a uma fila • Se não está acessando o recurso, mas pretende fazê-lo, comparação entre os tempos de geração dos pedidos. O menor ganha o acesso.

Exclusão Mútua – Algoritmo Distribuído (Ricart e Agrawala )

Exclusão Mútua – Algoritmo Token Ring(I) Como funciona? Organiza os processos em um anel lógico e um token circula entre os processos que fazem parte do sistema distribuído. O processos que está com o token é permitido utilizar o recurso 'crítico', caso queira usá-lo.

Exclusão Mútua – Algoritmo Token Ring(II)

Algoritmos de Eleição Muitos SDs precisam que um processo aja como  Muitos SDs precisam que um processo aja como coordenador ou outro papel especial Em geral, não importa qual processo assume responsabilidade Veremos algoritmos para eleger coordenador Em geral, tentam localizar processo com maior ID Assume-se que todos os processos conhecem os IDs dos demais processos  Não se sabe se estão disponíveis/indisponívies Meta: quando eleição começa, termina com todos concordando com quem é o novo coordenador

Algoritmo do Valentão (Bully)  Quando processo nota que cooordenador não está mais respondendo requisições, inicia eleição Processo P convoca uma eleição: 1. 2. 3. P envia msg de eleição para todos os processos com IDs maiores Se ninguém responde, P vence eleição e torna-se coordenador Se algum processo com ID maior responde, ele desiste.  Quando processo recebe msg de eleição de membros com ID mais baixa  Envia OK para remetente para indicar que está vivo e assume processo

Algoritmo do Valentão (Bully)  Eventualmente todos os processos desistem menos um: novo coordenador Se processo que estava indisponível volta, inicia eleição Se for processo com maior ID, vence e toma coordenação Maior “cara da cidade” sempre vence: algoritmo do valentão

Algoritmo do Valentão

Algoritmo em anel • Uso de um anel, mas sem token • Processos fisicamente ou logicamente ordenados  Conhecem sucessor • Processo verifica que coordenador não funciona  Envia msg de eleição para sucessor  Msg contém seu ID  Se sucessor indisponível, manda para assim sucessivamente próximo, e  A cada passo, processo que recebe msg adiciona seu ID e repassa para sucessor

Algoritmo em anel Eventualmente msg volta para quem começou eleição  Eventualmente msg volta para quem começou eleição  Reconhece porque msg de eleição contém seu ID Neste ponto muda msg para coordenador e a circula novamente para informar a todos Novo coordenador: processo com maior ID Nova configuração do anel 1. 2.  Quando msg coordenador volta para processo que iniciou eleição, é removida e todos voltam a trabalhar

Algoritmo em anel