Escolar Documentos
Profissional Documentos
Cultura Documentos
Discussão sobre o artigo: Time, Clocks and the Ordering of Events in a Distributed
System Leslie Lamport
2. Por que, para um Sistema Distribuído, algumas vezes é impossível afirmar a ordem
de ocorrência entre dois eventos?
Em um sistema distribuído, às vezes é impossível dizer que um dos dois eventos ocorreu
primeiro. A relação "aconteceu antes" é, portanto, apenas uma ordenação parcial dos
eventos no sistema. Descobrimos que os problemas muitas vezes surgem porque as
pessoas não estão totalmente cientes deste fato e suas implicações.
3. Por que o autor afirma que, em relação aos sistemas distribuídos, nosso conceito
de ordenação temporal de eventos deve ser cuidadosamente reexaminado?
4. O autor afirma que muitos problemas surgem porque as pessoas não estão
totalmente conscientes que a relação “happened before” é somente uma ordenação
parcial de eventos em um sistema. Comente esta afirmação.
Em sistemas distribuídos, o conceito de "happened before" precisa ser descrito com base
em eventos, pois mesmo com base em conceitos físicos, os relógios não são 100%
precisos e problemas surgirão. Ao contrário das pessoas que ordenam o tempo usando o
conceito de "happened before" com base em conceitos físicos.
Porque os relógios físicos não são perfeitamente precisos e não manter preciso
tempo físico.
Uma maneira de visualizar a definição é dizer que a—> b significa que é possível que o
evento afete causalmente o evento b.
Porque definimos um relógio Ci para cada processo Pi como uma função que atribui um
número Ci(a) a qualquer evento nesse processo.
O relógio do processo Pi é representado por um registrador Ci, de modo que Ci(a) é o valor
contido por Ci durante o evento a. O valor de Ci mudará entre os eventos, portanto, alterar
Ci não constitui, por si só, um evento.
10. Como pode dois eventos que são concorrentes a um mesmo evento serem, ainda
assim, dependentes entre si
11. A Condição de Relógio deve satisfazer duas condições. Explique o sentido destas
condições.
Condição 1: Se a e b são eventos no processo P e a vem antes de b, então C(a) < C(b).
Essa condição cria o sentido de haver uma linha de marcação (tick line) entre
quaisquer dois eventos em uma linha de processo.
Significa que cada linha de mensagem deve cruzar uma linha de marcação.
12. Quais são as regras de implementação que um algoritmo deve seguir para
garantir que as condições C1 e C2 sejam satisfeitas.
C1:
Cada processo P incrementa Ci entre quaisquer dois eventos sucessivos.
C2:
a) Se o evento a é o envio de uma mensagem m pelo processo Pi, então a
mensagem m contém um timestamp Tm = Ci(a).
b) Ao receber uma mensagem m, o processo Pj, define Cj, maior ou igual ao seu
valor presente e maior que Tm.
13. Por que, na figura 2 do artigo, todas as mensagens devem cruzar a “tick line”?
Explique a função desta linha.
A IR1 serve para garantir que dois eventos não terão a mesma representação de tempo.
Já a IR2 garante que o evento de uma mensagem não chegue a outro processo com um
valor de tempo menor de quando saiu.
A relação ⇒ é uma forma de completar a ordenação parcial "happened before" para uma
ordenação total.
17. Por que as regras (i) e (ii) da relação ⇒define uma ordenação total.
Pois esta abordagem pode ser generalizada para implementar qualquer sincronização
desejada para tal sistema multi processo distribuído.
18. Por que a ordenação total dos eventos é útil em um Sistema Distribuído?
Ser capaz de ordenar totalmente os eventos pode ser muito útil na implementação de um
sistema distribuído. Na verdade, o razão para implementar um sistema correto de lógica
relógios é obter tal ordenação total.
Com a ordenação, encontrar uma solução torna-se uma tarefa simples. Envolve apenas
certificar-se de que cada processo aprende sobre as operações de todos os outros
processos.