Você está na página 1de 4

Sistemas Distribuídos

Matheus Fellipe do Carmo Barros

Lista 2
1) Relógios sincronizados ajudam a resolver problemas inerentes a manutenção
da consistência dos dados distribuídos, a verificação da autenticidade de uma
requisição enviada para um servidor e a eliminação do processamento de
atualizações replicadas.
Medir o tempo pode ser problemático, devido à existência de vários pontos de
referência. Para saber e m que hora do dia um evento específico ocorreu em um
computador em particular é necessário sincronizar seu relógio com uma fonte de
tempo externa confiável e aceita por todos.
Por exemplo, uma transação de comércio eletrônico envolve eventos no
computador do negociante e no computador de um banco. É importante, para
propósitos de auditoria, que esses eventos tenham uma informação de tempo
precisa.

2) O Network Time Protocol (NT P) não ajusta o relógio do sistema com a hora
certa, pois cada mensagem carrega carimbos de tempo de eventos de
mensagem recentes: os tempos locais de quando a mensagem NTP anterior
entre o par foi enviada e recebida e o tempo local de quando a mensagem
corrente foi transmitida.
O ajuste é feito da seguinte forma:
I Destinatário da mensagem NTP anota o tempo local ao receber a mensagem.
II Para cada par de mensagens enviadas entre 2 servidores, o NTP calcula uma
compensação ci, que é uma estimativa da compensação real entre os 2 relógios.
III Os servidores NTP aplicam um algoritmo de filtragem de dados em sucessivos
pares <ci,ai>, para fazer uma estimativa da compensação c e calcular a
qualidade dessa estimativa com base em uma quantidade estatística chamada
filtro de dispersão.
3) Algoritmo de Cristian: Resume-se na possibilidade de consultar servidores de
tempo equipados com um receptor WWV ou um relógio de alta precisão, ocorre
m variações na estimativa do atraso entre as maquinas. Basicamente o processo
ocorre da seguinte forma:
1 – Um computador A qualquer consulta a hora num computador B.
2 – Computador B inclui na resposta o valor do seu relógio.
3 – Computador A atualiza o seu relógio com o valor do relógio em B
adicionado ao retardo da mensagem entre B e A.
O problema desse algoritmo é que atrasos de mensagens farão com que a hora
fornecida seja desatualizada.
Algoritmo de Berkeley: É um algoritmo usado para a sincronização interna de um
grupo de computadores. O 'Servidor de tempo' é ativo (máster) 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, a hora atual
é resultante de uma média. Por fim o Master envia aos slaves o total de tempo
em que os relógios devem adiantar/atrasar. Caso o máster falhe, um novo
computador máster é eleito.

NTP: Os servidores NTP formam uma topologia hierárquica, dividida em


camadas ou estratos (em inglês: (strata) numerados de 0 (zero) a 16 (dezesseis).
O estrato 0 (stratum 0) na verdade não faz parte da rede de servidores NTP, mas
representa a referência primária de tempo, que é geral mente um receptor do
Sistema de Posicionamento Global (GPS) ou um relógio atômico. O estrato 16
indica que um determinado servidor está inoperante. O estrato 0, o u relógio de
referência, fornece o tempo correto para o estrato 1, que por sua vez fornece o
tempo para o estrato 2 e assim por diante. O NTP e então, simultaneamente,
servidor (fornece o tempo) e cliente (consulta o tempo). De forma geral, quanto
mais perto da raiz, ou seja, do estrato 0, maior a exatidão do tempo. O estrato
ao qual o servidor pertence e a principal métrica utilizada pelo NTP para escolher
dentre vários, qual o melhor servidor para fornecer o tempo.

4) Segundo Lamport, não é possível sincronizar perfeitamente os relógios em


um sistema distribuído, em geral não é possível usar o tempo físico para
descobrir a ordem de qualquer par de eventos arbitrários que ocorram dentro
dele.
Em geral, é possível utilizar um esquema semelhante à causalidade física, mas
aplicada aos sistemas distribuídos, para ordenar alguns dos eventos que
ocorrem em diferentes processos. Essa ordenação é baseada em dois pontos
simples e intuitivamente óbvios:

Se dois eventos ocorreram no mesmo processo pi(i= 1,2...,N), então eles


ocorreram na ordem em que pi os observou
Quando uma mensagem é enviada entre processos, o evento de envio da
mensagem ocorreu antes do evento de recepção da mensagem.

Lamport chamou a ordenação parcial obtida pela generalização desses dois


relacionamentos de relação acontece antes - happened-before .Às vezes, ela
também é conhecida como relação de ordenação causal - causal ordering ou
ordenação causal potencial – potential causal ordering.

5) Estados globais captam o conjunto de eventos que foram executados até o


momento. Em sistemas distribuídos e complicado avaliar o estado global, e
preciso cuidado ao se estabelecer o que ocorreu durante a execução. Alguns
problemas relacionados são: coleta de lixo distribuída, detecção de deadlock
distribuída e detecção de término distribuída. Para achar estados globais
consistentes é preciso utilizar a técnica de cortes, que é uma divisão na
execução do sistema, ou seja, um subconjunto do histórico global. Eventos a
direita do corte estão fora do corte global, já eventos a esquerda estão dentro do
mesmo. Cortes ainda podem ser consistentes (Obedecem a casualidade) e
inconsistente (não obedecem a casualidade).
6)

7) Eleições são necessárias para escolher qual dos processos desempenhará a


função de coordenador. É fundamental que todos os processos concordem com
a escolha. Depois disso, se o processo que desempenha a função de
coordenador quiser se retirar, outra eleição será exigida para escolher um
substituto.

No Bully o processo com ID maior mandaria o outro parar. No de Anel, um


processo passaria seu ID pro vizinho e assim sucessivamente ate ser definido
o coordenador

8) Eles são distribuídos, ate por isso dividem entre si a tarefa de escolher um
coordenador e possuem conhecimento dos processos dos vizinhos.

9) Exclusão mútua é uma técnica usada em programação concorrente para


evitar que dois processos ou threads tenham acesso simultaneamente a um
recurso compartilhado, acesso esse denominado por seção crítica.
Exclusão mútua distribuída:

Se processo deseja acessar SC, então ele envia mensagem para todos os
outros processos
Mensagem contém:
• identificador do processo
• nome da SC que ele deseja acessar
• um timestamp único gerado pelo processo que enviou a mensagem
As Regiões críticas nos sistemas centralizado são tratadas por semáforos e
monitores, por exemplo. Em Sistemas distribuídos o sistema consiste de n
processos; cada processo Pi reside em um processador diferente. Cada
processo tem uma seção crítica que requer exclusão mútua. Se Pi esta
executando em sua seção crítica, então nenhum outro
processo Pi esta executando em sua seção crítica.

10) Porque o controle de concorrência nas transações deixa a base de dados


em estado correto e consistente.

11) a) i=55, j=44, k=66


b)
Transação T Transação U
X= read(j);
Y= read(i);
X= read(k);
Write(j,44);
Write(i,33);
Write(i,55);
Y=read(j);
Write(k,66);

12) Por que todos os pares de operações conflitantes de duas transações devem
ser executados na mesma ordem.

Você também pode gostar