Algoritmo de chandy-lamport


tempos lógicos e vector watcheseditar

Na impossibilidade de sincronizar relógios perfeitamente em um sistema distribuído, o tempo físico não pode ser usado neles obter o pedido de qualquer evento que ocorra. Para evitar esse problema, a Lamport sugere o uso de tempos lógicos para obter sincronização. O objetivo é associar-se a todos os eventos uma marca de tempo independente do relógio físico e poder encomendá-los por meio de relacionamentos “ocorre antes”. Com lógico Tempos, se acontecer antes de B, o relógio é menor, mas se um relógio é menor que o de B, não implica que isso aconteceu antes de b. Vector relógios podem fazer certas suposições. Um relógio de vetor para um sistema de n Os processos são um vetor inteiro. Cada processo mantém seu próprio relógio de vetor VI, onde você coloca suas próprias marcas de tempo de seus eventos locais. Para compartilhar, existem 4 regras básicas para atualizar relógios:

  • rv1 : Inicialmente vi = 0 para j = 1, 2, …, n.
  • rv2: antes de um evento ocorre: vi = vi + 1.
  • rv3: pi inclui o Timestamp t = vi em cada mensagem de envio.
  • rv4: quando o PI tem um evento de recepção com timestamp t, vi = max (vi, t) para j = 1,2, …, n.

status global e cortes consistentes para

um global consistente Estado é que corresponde a um corte consistente. Podemos caracterizar a execução de um sistema distribuído como uma série de transações entre os estados do sistema global: S0-S1-S2-S3 …

Corte consistente: Se o evento de recepção de uma mensagem é “interno” do corte, então o evento de envio desta mensagem também deve ser. Um Corte C é consistente se, para cada evento que ele contenha, ele também contém todos os eventos que “aconteceram antes”.

Corte consistente para relógios lógicos vetoriais: Um corte C é consistente se, para cada processo p, seu relógio lógico nesse momento é maior que ou como os valores que armazenaram o resto do p.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *