Sistemas Distribuídos Professora: Ana Paula Couto DCC 064
Consistência Causal(3) Neste exemplo temos uma sequência de eventos permitida quando o depósito é consistente por causalidade, mas proibida quando o depósito é sequencialmente consistente. As escritas W 2 (x)b e W 1 (x)c são concorrentes, não sendo exigido que todos os processos as vejam na mesma ordem
Revisão Capítulos 6,7,8,12
Questão 1 Qual o problema introduzido quando aplicações distribuidas são desenvolvidas e executadas em diferentes máquinas? Defasagem entre os relógios diferença entre os valores dos horários diferenca entre a frequência de um relógio perfeito e um relógio comum Como exemplo, podemos considerar o programa make, onde fonte e executável estão em máquinas diferentes
Questão 2 Descreva o algoritmo de Cristian e o algoritmo de Berkeley em linhas gerais. Qual a principal diferença nos algoritmos? Cristian
Questão 2 Descreva o algoritmo de Cristian e o algoritmo de Berkeley em linhas gerais. Qual a principal diferença nos algoritmos? Berkley
Questão 2 Diferença entre os algoritmos: 1) Cristian: Servidor de tempo passivo; Necessidade de um servidor de tempo, com hora corrente exata 2) Berkley: Servidor de tempo ativo; Basta somente entrar em acordo em relação ao horário do servidor, mesmo que não tenha relação com a hora real
Questão 3 Ao se optar pela sincronização de relógios físicos ou relógios lógicos, deve-se considerar uma característica fundamental da aplicação, que determina a possibilidade da utilização de um dos algoritmos. Qual é esta característica? Para os processos (que formam a aplicação) não importa a hora exata, mas sim a ordem com que os eventos ocorrem
Questão 4 Descreva o algoritmo de Lamport para relógios lógicos. Qual a limitação da relação "acontece antes" que limita a aplicação deste algoritmo? O algoritmo de Lamport é utilizado para sincronizar relógios lógicos, ou seja, somente é importante para aplicação definir a ordem que ocorrem os eventos. É baseado na relação acontece antes ( a b).
Questão 4 Cada processo p i possui um estado consistente s i 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 p i 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 p i Um sistema distribuído pode ser visto como uma coleção P de N processos p i, i = 1,2, N
Questão 4 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 p i 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) a b ( p1) c d (p2) b c dado m1 d f dado m2 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 p 1 a b m 1 p 2 c d m 2 Physical time p 3 e f
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 p i tem o seu relógico lógico, C i que pode ser usado para aplicar timestamps lógicos aos eventos 1) C i é incrementado de 1 antes de cada evento no processo p i 2) Quando um processo p i envia mensagem m, o tempo t = C i é anexado a mensagem 3) Quando p i recebe (m,t), o relógio é atualizado para C i := max(c j, 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 p 1 a b m 1 p 2 3 4 c d m 2 Physical time p 3 1 e f 5
Relógios Lógicos (Lamport,1978) (IV)
Questão 4 As mensagens 1 e 3, ocorreram no processo P2, o que significa que m3, foi, de fato, enviada após o recebimento de m1. Isso pode indicar que o envio de m3 dependeu do que foi recebido por meio da mensagem m1. Contudo, recebimento de m1 ocorreu ante do envio de m2, entretanto o envio de m2 NÃO está relacionado com o recebimento de m1!
Questão 4 Relógios de Lamport NÃO capturam causalidade. Causalidade pode ser capturada por meio de relógios vetoriais. No caso de relógios vetoriais, cada um dos processos possui um vetor, onde cada elemento representa o número total de eventos que ocorreram anteriormente nos demais processos. Se VCi[j] = k, então Pi sabe que k eventos ocorreram em Pj.
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 é possível ordenação por causalidade
Questão 5 Descreva o algoritmo do Valentão O algoritmo do Valentão é um algoritmo de eleição de líder em um sistema distribuído. Sempre que um processo P verifica que o coordernador não está respondendo a requisições, inicia uma eleição. 1) P envia msg de eleição para todos os processos com IDs maiores 2) Se ninguém responde, P vence eleição e torna-se coordenador 3) Se algum processo com ID maior responde, ele desiste.
Questão 5 Descreva o algoritmo do Valentão 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. Eventualmente todos os processos desistem menos um: novo coordenador Se processo que estava indisponível volta, inicia eleição
Questão 5
Questão 6 Descreva o algoritmo distribuído de Ricart e Agrawala para exclusão mútua em sistemas distribuídos. Por quê é necessário a ordenação total de todos os eventos do sistema? Como esta ordenação pode ser feita?
Questão 7 Quais os diferentes tipos de falhas que podem ocorrer em SDs?
No caso do multicast atômico (presença de falhas), deve-se garantir que uma mensagem será entregue a todos os processos, ou a nenhum deles Questão 8 Como podemos definir um multicast confiável? Multicast confiável significa apenas que toda mensagem deve ser entregue a cada membro do grupo no momento em questão. No caso mais simples, não existe nenhum requisito de que todos os membros do grupo devem receber as mensagens na mesma ordem.
Questão 9 Cite e descreva os tipos de recuperação existentes Duas formas principais: Recuperação retroativa: Retorna o sistema a algum estado que antes estava correto, continuando a execução após a recuperação. Mecanismo de ponto de verificação (estado presente do sistema é registrado) Recuperação para frente: Tentativa de levar o sistema para um próximo estado correto.
Questão 9 Cite e descreva os tipos de recuperação existentes Desvantagem da recuperação para frente: É preciso saber de antemão quais erros podem ocorrer. Tendo conhecimento de todos os erros e como levar o sistema para um estado correto, é possível recuperar totalmente o sistema.
Questão 9 Cite e descreva os tipos de recuperação existentes Desvantagens da recuperação retroativa: (1) Pontos de validação podem ser caros para serem implementados (2) Não existem garantias que o erro não acontecerá novamente (3) Em alguns casos não é possível retroagir a um estado sem erros (ex. comando rm -rf *!!)
Questão 10 Qual a principal restrição para que uma fotografia distribuída seja consistente? Para ter um estado global ou uma fotografia distribuída consistente, é necessário que, se um processo P tiver registrado o recebimento de uma mensagem, então também deve existir um processo Q que registrou o envio dessa mensagem. A linha de recuperação é o estado global mais recente do sistema, com a condição da existência da consistência.
Questão 10 Qual a principal restrição para que uma fotografia distribuída seja consistente? Para ter um estado global ou uma fotografia distribuída consistente, é necessário que, se um processo P tiver registrado o recebimento de uma mensagem, então também deve existir um processo Q que registrou o envio dessa mensagem. A linha de recuperação é o estado global mais recente do sistema, com a condição da existência da consistência.
Pontos de Verificação Independentes
Pontos de Verificação Independentes
Questão 11 Cite e descreva as principais razões para a utilização de réplicas de dados em Sistemas Distribuídos.Qual o principal problema da utilização da replicação como técnica de escalabilidade? Réplicas de dados são utilizadas para aumentar a confiabilidade e o desempenho de um sistema distribuído Confiabilidade: se uma não funciona, outra pode substitui-la. Desempenho: Réplicas podem ser colocadas mais próximo do processo que irá consultá-la Problema: Consistência dos dados
Questão 12 O que é um modelo de consistência de dados? Descreva o modelo de consistência com o maior grau de consistência possível, denominado consistência estrita ou severa. O modelo de consistência de dados é um contrato entre processos e o depósito de dados: diz que se os processos concordarem em obedecer a certas regras, o depósito promete funcionar de maneira correta. No caso do modelo de consistênca severa, um processo que executa uma operação de leitura sobre um item de dados espera que a operação retorne um valor que mostre os resultados da última operação de escrita executada sobre aqueles dados.
Modelos de Consistência Consistência Estrita
Consistência Sequencial (a) P 1 executa W(x)a para x. Mais tarde (tempo absoluto), o processo P 2 também executa uma operação de escrita, ajustando o valor de x para b. Os processos P 3 e P 4 primeiro lêem o valor b e, mais tarde, o valor a. A operação de escrita do processo P 2 parace ter ocorrido antes da de P 1
Consistência Sequencial (b) Neste caso é violada a consistência sequencial porque nem todos os processos vêem a mesma intercalação de operações de escrita. Para o processo P 3 parece que o item de dados foi primeiro alterado para b, e mais tarde para a. Por outro lado, P 4 concluirá que o valor final é b
Consistência Causal Neste exemplo temos uma sequência de eventos permitida quando o depósito é consistente por causalidade, mas proibida quando o depósito é sequencialmente consistente. As escritas W 2 (x)b e W 1 (x)c são concorrentes, não sendo exigido que todos os processos as vejam na mesma ordem
Consistência Causal (a) Temos W 2 (x)b potencialmente dependente de W 1 (x)a porque b pode ser resultado de um cálculo ue envolva o valor lido por R 2 (x)a. As duas escritas são relacionadas por causalidade, portanto temos uma violação na ordenação das operações
Consistência Causal (b )Como a leitura R(x)a foi removida, W 2 (x)b e W 1 (x)a agora são escritas concorrentes. Um depósito consistente por causalidade não requer que escritas concorrentes sejam ordenadas globalmente.
Questão 13 Cite os três tipos possíveis de progação de informações entre réplicas 1) Propagação somente da notificação de uma atualização (protocolos de invalidação) 2) Transferir dados de uma cópia para outra 3) Propagar a operação de atualização para outras cópias