Cmp139 Julio Silvello Self Stabilization

378 visualizações

Publicada em

Apresentação sobre Self-Stabilization, Ciência da Computação.

Autor: Julio Cesar Silvello

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
378
No SlideShare
0
A partir de incorporações
0
Número de incorporações
12
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Cmp139 Julio Silvello Self Stabilization

  1. 1. UNIVERSIDADE FEDERAL DO RIO GRANDE DO SULUNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Auto-estabilização em SistemasAuto-estabilização em Sistemas DistribuídosDistribuídos CMP139 – Tolerância a Falhas em Sistemas Distribuídos Profa Taisy Silva Weber Júlio César Silvello (silvello@inf.ufrgs.br) Dezembro/2004
  2. 2. Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos  1. Introdução  2. Definições  3. Algoritmo Exclusão Mútua  4. Metodologias para Projeto de Sistemas auto-estabilizáveis  5. Conclusões RoteiroRoteiro
  3. 3.  A noção de auto-estabilização foi introduzida por Dijkstra em 1973/1974  A propriedade de auto-estabilização modela a habilidade de um sistema se recuperar automaticamente de falhas transientes  Falhas Transientes: corrupção do estado interno de um nó, mas não de seu comportamento  Definição original de Dijkstra para essa propriedade:  Independentemente do estado inicial, é garantido que o sistema chegue em um estado legítimo em um número finito de passos.  Um sistema que não é auto-estabilizável, pode permanecer em estado ilegítimo para sempre 1. Introdução1. Introdução Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 3/163/16
  4. 4.  Um sistema auto-estabilizável tem duas características úteis:  Não é necessária inicialização do estado global do sistema distribuído, o que poderia ser uma tarefa custosa • Inicialização de estado de processo após recuperação  Ele pode se recuperar de falhas transientes • Não é necessária nenhuma informação sobre as falhas  Violação temporária da especificação do sistema até que o sistema estabilize 1. Introdução1. Introdução Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 4/164/16
  5. 5.  Exclusão mútua (1 privilégio)  Eleição de líder  L-exclusion (L privilégios)  Topologias dinâmicas (reconfiguração de topologia)  Protocolos de comunicação (tratamento de perda de mensagens)  Sincronização de relógios 1. Introdução1. Introdução Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 5/165/16 Aplicações:
  6. 6.  Privilégio é a habilidade/possibilidade de uma máquina para mudar seu estado corrente (movimento)  Estado legítimo respeita as propriedades:  P1: deve haver ao menos um privilégio no sistema (sem deadlocks)  P2: cada movimento de um estado legítimo deve colocar o sistema em um estado legítimo (fechamento)  P3: durante uma execução infinita, cada máquina pode gozar do privilégio infinitas vezes (sem starvation)  P4: para qualquer par de estados legítimos, deve haver uma seqüência de movimentos que muda de um estado legítimo para o outro (alcançabilidade) 2. Definições2. Definições Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 6/166/16 A. Estado Legítimo (Dijkstra)
  7. 7.  Privilégio é a habilidade/possibilidade de uma máquina para mudar seu estado corrente (movimento)  Estado legítimo respeita as propriedades:  P1: deve haver ao menos um privilégio no sistema (sem deadlocks)  P2: cada movimento de um estado legítimo deve colocar o sistema em um estado legítimo (fechamento)  P3: durante uma execução infinita, cada máquina pode gozar do privilégio infinitas vezes (sem starvation)  P4: dados quaisquer dois estados legítimos, deve haver uma seqüência de movimentos que muda de um estado legítimo para o outro (alcançabilidade) 2. Definições2. Definições Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 6/166/16 A. Estado Legítimo (Dijkstra)
  8. 8. 2. Definições2. Definições Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 7/167/16 B. Auto-estabilização (Dijkstra)  A definição foi concebida no contexto da exclusão mútua e é restritiva desnecessariamente  Produzido um algoritmo auto-estabilizável para exclusão mútua via token ring com somente um token  Definia estado legítimo como possuindo somente um privilégio  A necessidade de sempre haver um privilégio no sistema exige que o sistema seja sem terminação
  9. 9. 2. Definições2. Definições Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 8/168/16 C. Auto-estabilização  Um sistema S é auto-estabilizável em relação a um predicado P, sobre seu conjunto de estados globais, onde P tem por objetivo identificar sua execução correta, se S satisfaz as seguintes propriedades:  (1) Fechamento: P é fechado na execução de S  (2) Convergência: Iniciando em um estado global arbitrário, é garantido que S alcance um estado que satisfaça P em um número finito de transições de estado  Estados que satisfazem P são chamados de legítimos
  10. 10. 2. Definições2. Definições Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 9/169/16 D. Estabilização  Ao invés de se considerar recuperação de um estado arbitrário, considera-se recuperação de um conjunto restrito de estados (Q) que podem resultar de um conjunto particular de falhas  Um sistema S é estabilizável em relação aos predicados P e Q, se S satisfaz as seguintes propriedades:  (1) Fechamento: P é fechado na execução de S  (2) Convergência: Iniciando em um estado que satisfaça Q, é garantido que S alcance um estado que satisfaça P em um número finito de transições de estado  Q estabiliza em P  Na auto-estabilização, tem-se que TRUE estabiliza em P
  11. 11. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 10/1610/16  Anel com um único token que rotaciona  N processos com K estados (K>N) chamados Mi, sendo i=0..N-1  M0 é distinto dos demais, que são iguais entre si > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M
  12. 12. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6
  13. 13. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=1 L=5 L=3 L=1 L=2
  14. 14. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=1 L=5 L=35 L=1 L=21
  15. 15. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=1 L=51 L=5 L=1 L=1
  16. 16. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=12 L=1 L=51 L=1 L=1
  17. 17. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=2 L=12 L=1 L=1 L=1 Estável
  18. 18. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=2 L=2 L=12 L=1 L=1 Estável
  19. 19. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=2 L=2 L=2 L=12 L=1 Estável
  20. 20. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=2 L=2 L=2 L=2 L=12 Estável
  21. 21. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M4 N=5 K=6 L=2 L=2 L=2 L=2
  22. 22. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=23 L=2 L=2 L=5 L=2
  23. 23. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=3 L=23 L=2 L=52 L=25
  24. 24. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=3 L=3 L=2 L=2 L=52
  25. 25. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=3 L=3 L=23 L=2 L=2 Estável
  26. 26. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=3 L=3 L=3 L=23 L=2 Estável
  27. 27. 3. Algoritmo da Exclusão Mútua de Dijkstra3. Algoritmo da Exclusão Mútua de Dijkstra Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 11/1611/16 > ≠ = < ≤ ∀ <− −1 1, : : 1|i i i iM M se M M N i i 1 0 0 0se , mod )1 ( :− = + =N M M K M M M0 M1 M2 M3 M4 N=5 K=6 L=3 L=3 L=3 L=3 L=23 Estável
  28. 28.  Para projetar sistemas SS mais complexos:  Layering  Modularization 4. Metodologias para Projeto de Sistemas SS4. Metodologias para Projeto de Sistemas SS Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 12/1612/16
  29. 29.  Consiste em dividir o programa em componentes distintos e auto- estabilizáveis independentemente  Transitividade: Se Q estabiliza em P e P estabiliza em R, então Q estabiliza em R  S1: Q estabiliza em P  S2: P estabiliza em R  S1 combinado com S2, onde S2 lê variáveis de S1, tem-se que Q estabiliza em R Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 13/1613/16 4. Metodologias para Projeto de Sistemas SS4. Metodologias para Projeto de Sistemas SS
  30. 30. Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 14/1614/16 4. Metodologias para Projeto de Sistemas SS4. Metodologias para Projeto de Sistemas SS A B A B A B A B A B
  31. 31. Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 14/1614/16 4. Metodologias para Projeto de Sistemas SS4. Metodologias para Projeto de Sistemas SS A B A B A B A B A B
  32. 32. Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 14/1614/16 4. Metodologias para Projeto de Sistemas SS4. Metodologias para Projeto de Sistemas SS A B A B A B A B A B
  33. 33. Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 14/1614/16 4. Metodologias para Projeto de Sistemas SS4. Metodologias para Projeto de Sistemas SS A B A B A B A B A B
  34. 34. Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 14/1614/16 4. Metodologias para Projeto de Sistemas SS4. Metodologias para Projeto de Sistemas SS A B A B A B A B A B Solução baseada em detectores e corretores que bloqueiam o envio de mensagens
  35. 35.  Tolerância a Falhas passa a ser uma parte implícita e integral do projeto do sistema  Apesar de auto-estabilização ser uma propriedade desejada, é necessário conhecer suas restrições  Auto-estabilização deve ser usada como uma técnica complementar de tolerância a falhas  Nem todos os problemas possuem uma solução auto-estabilizável  Auto-estabilização proporciana uma solução formal e unificada para o tratamento de falhas transientes, independentemente de sua origem, duração e abrangência 5. Conclusões5. Conclusões Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos 15/1615/16
  36. 36. [1] Schneider, Marco (1993) “Self-Stabilization”, In: ACM Computing Surveys, Volume 25, no. 1, p. 45-67 [2] Leal, William; Arora, Anish (2004) “Scalable Self-Stabilization via Composition”, In: IEEE, Proceedings of the 24th International Conference on Distributed Computing Systems (ICDS’04), March 24 - 26, 2004 Hachioji, Tokyo, Japan. pp. 12-21 [3] Dijkstra, E. W. (1974) “Self-stabilizing systems in spite of distributed control”, Commun. ACM 17, pp 643-644 ReferênciasReferências Auto-estabilização em Sistemas DistribuídosAuto-estabilização em Sistemas Distribuídos

×