SlideShare uma empresa Scribd logo
1 de 36
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
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
 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
 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
 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:
 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)
 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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
 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
 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
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
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
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
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
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
 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
[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

Mais conteúdo relacionado

Destaque

Design patterns e tecnologias para modularização em java tdc2014
Design patterns e tecnologias para modularização em java tdc2014Design patterns e tecnologias para modularização em java tdc2014
Design patterns e tecnologias para modularização em java tdc2014Filipe Portes
 
Modularização em java com osgi
Modularização em java com osgiModularização em java com osgi
Modularização em java com osgiFilipe Portes
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Adriano Teixeira de Souza
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git RightSven Peters
 
Git Branching for Agile Teams
Git Branching for Agile TeamsGit Branching for Agile Teams
Git Branching for Agile TeamsSven Peters
 
The Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsThe Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsSven Peters
 

Destaque (7)

Design patterns e tecnologias para modularização em java tdc2014
Design patterns e tecnologias para modularização em java tdc2014Design patterns e tecnologias para modularização em java tdc2014
Design patterns e tecnologias para modularização em java tdc2014
 
Modularização em java com osgi
Modularização em java com osgiModularização em java com osgi
Modularização em java com osgi
 
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...Paradigmas de Linguagens de Programação - Modularização, componentização e re...
Paradigmas de Linguagens de Programação - Modularização, componentização e re...
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Git Branching for Agile Teams
Git Branching for Agile TeamsGit Branching for Agile Teams
Git Branching for Agile Teams
 
The Secret Sauce of Successful Teams
The Secret Sauce of Successful TeamsThe Secret Sauce of Successful Teams
The Secret Sauce of Successful Teams
 

Semelhante a Auto-estabilização em sistemas distribuídos

EMAX PPT - APRESENTACAO 10.06.23.pptx
EMAX PPT - APRESENTACAO 10.06.23.pptxEMAX PPT - APRESENTACAO 10.06.23.pptx
EMAX PPT - APRESENTACAO 10.06.23.pptxChadidoDiogo
 
Sra ohara sra_2009_self-healing_s&c
Sra ohara sra_2009_self-healing_s&cSra ohara sra_2009_self-healing_s&c
Sra ohara sra_2009_self-healing_s&cFernando Albuquerque
 
Lista 2 - Sistemas de Equações Lineares.pdf
Lista 2 - Sistemas de Equações Lineares.pdfLista 2 - Sistemas de Equações Lineares.pdf
Lista 2 - Sistemas de Equações Lineares.pdfJulierme Oliveira
 
Algoritmos aula boa
Algoritmos aula boaAlgoritmos aula boa
Algoritmos aula boamorganavalon
 
Projeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas IIIProjeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas IIICiro Marcus
 
29 1 observabilidade e controlabilidade
29 1   observabilidade e controlabilidade29 1   observabilidade e controlabilidade
29 1 observabilidade e controlabilidadeAdler Linhares
 
controlabilidade e observabilidade
controlabilidade e observabilidadecontrolabilidade e observabilidade
controlabilidade e observabilidadeJefferson Pedro
 
Utilização do Software Maxima
Utilização do Software MaximaUtilização do Software Maxima
Utilização do Software MaximaKássio Renê
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorSofia Trindade
 

Semelhante a Auto-estabilização em sistemas distribuídos (12)

EMAX PPT - APRESENTACAO 10.06.23.pptx
EMAX PPT - APRESENTACAO 10.06.23.pptxEMAX PPT - APRESENTACAO 10.06.23.pptx
EMAX PPT - APRESENTACAO 10.06.23.pptx
 
Sra ohara sra_2009_self-healing_s&c
Sra ohara sra_2009_self-healing_s&cSra ohara sra_2009_self-healing_s&c
Sra ohara sra_2009_self-healing_s&c
 
Lista 2 - Sistemas de Equações Lineares.pdf
Lista 2 - Sistemas de Equações Lineares.pdfLista 2 - Sistemas de Equações Lineares.pdf
Lista 2 - Sistemas de Equações Lineares.pdf
 
Algoritmos aula boa
Algoritmos aula boaAlgoritmos aula boa
Algoritmos aula boa
 
Projeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas IIIProjeto de Controle de Posição entre veículos, Análise de Sistemas III
Projeto de Controle de Posição entre veículos, Análise de Sistemas III
 
29 1 observabilidade e controlabilidade
29 1   observabilidade e controlabilidade29 1   observabilidade e controlabilidade
29 1 observabilidade e controlabilidade
 
controlabilidade e observabilidade
controlabilidade e observabilidadecontrolabilidade e observabilidade
controlabilidade e observabilidade
 
Utilização do Software Maxima
Utilização do Software MaximaUtilização do Software Maxima
Utilização do Software Maxima
 
Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...
 
Aula 4
Aula   4Aula   4
Aula 4
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
 

Auto-estabilização em sistemas distribuídos

  • 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. 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.  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.  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.  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.  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.  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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.  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.  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. 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. 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. 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. 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. 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.  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. [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