FCUL
Navigators
FCUL
Sumrio
1.
2.
3.
4.
5.
Sistemas distribudos
Autmatos I/O
O problema do consenso
Solues
Concluso
Navigators
FCUL
Sumrio
1.
2.
3.
4.
5.
Sistemas distribudos
Autmatos I/O
O problema do consenso
Solues
Concluso
Navigators
FCUL
Navigators
FCUL
Redes de Computadores
Internet
Navigators
FCUL
Sistemas Distribudos
Sistemas formados por conjuntos de
computadores interligados por redes
Diferena em relao a redes de computad.:
FOs computadores cooperam para realizar um
conjunto de tarefas
FH a noo de estado do sistema, partilhado entre
todos os computadores
Exemplos:
Fsistemas de ficheiros distribudos,
Fsistemas de comrcio electrnico,
Fsistemas de trabalho em grupo....
6
Navigators
FCUL
Modelos
Sistemas distribudos so complexos a
diversos nveis
Por ex., s o problema da comunicao em
rede geralmente dividido em 5 (Internet) ou
7 (ITU) nveis de abstraco!
Logo, modelos
Navigators
FCUL
Modelos topolgicos
Tpico e mais simples: processos + canais
FComunicao ponto-a-ponto ou por difuso
FCompletamente ligados ou no
P2
P1
P3
P4
8
Navigators
FCUL
Modelos temporais
Sncrono
FH limites conhecidos para os tempos de
processamento
FH limites conhecidos para os tempos de
comunicao
Assncrono
FNo h limites conhecidos para os tempos de
processamento
FNo h limites conhecidos para os tempos de
comunicao
Navigators
FCUL
Modelo de Falhas
No h falhas
Paragem de processos
FComunicao no falha...
Processos bizantinos
F L. Lamport et al., The Byzantine Generals Problem, 1982
Navigators
FCUL
11
Navigators
FCUL
Algoritmos distribudos
Algoritmos executados concorrentemente por
diversos processos
Necessrios para concretizar sistemas
distribudos (e no s)
FComputao paralela, controle de processos
tempo-real
Navigators
FCUL
Sumrio
1.
2.
3.
4.
5.
Sistemas distribudos
Autmatos I/O
O problema do consenso
Solues
Concluso
13
Navigators
FCUL
Motivao
Autmatos I/O: modelo que permite
especificar formalmente sistemas distribudos
FN. Lynch, M. Tuttle 87
14
Navigators
FCUL
Autmatos I/O
Ideia geral: componentes (lgicas) do sistema
so representadas por autmatos I/O
Autmatos reagem a entradas vindas do
ambiente
Trs tipos de aces: input, output, internas
output
Autmato
Ambiente
input
15
Navigators
FCUL
Assinatura e aces
Assinatura S partio de um conjunto de
aces acts(S) em trs conjuntos disjuntos:
Fin(S), out(S), int(S)
Aces externas:
Fext(S) = in(S) U out(S)
16
Navigators
FCUL
Componentes de um autmato A
Assinatura sig(A)
Conjunto de estados states(A) variveis de estado
Conjunto de estados de inicializao start(A)
Fsubconjunto de states(A)
Relao de transio trans(A)
Ftrans(A): states(A) x acts(A) x states(A)
Partio de tarefas tasks(A)
Fparticiona out(S) U int(S) num conjunto numervel
de classes de equivalncia
Fcada uma corresponde a um fluxo de execuo
17
Navigators
FCUL
Aces activas
Se (s, p , s) uma transio do autmato A,
ento a aco p diz-se activa em s.
Duas hipteses fundamentais do modelo:
FTodos as aces de input esto sempre activas
em todos os estados
FNenhuma aco controlada por mais do que um
autmato: nenhum par de processos tem a mesma
aco interna ou de output
18
Navigators
FCUL
Execuo
Fragmento de execuo de A: sequncia
finita ou infinita s0, p 1, s1, p 2, p n, sn tal
que (si, p i+1, si+1) uma transio de A, i.
Execuo: fragmento de execuo que
comea com um estado de inicializao.
Denotam-se os conjuntos de execues de A
por execs(A) e finexecs(A) (finitas).
Evento: ocorrncia particular de uma aco.
19
Navigators
FCUL
Exemplos de autmatos
Processo
sig(A)={init(v)i,decide(v)i,
send(m)i,j,receive(m)j,i }
init(v)i
Canal
sig(A)={send(m)i,j, receive(m)i,j }
decide(v)i
send(m)i,j
Ci,j
receive(m)i,j
Pi
send(m)i,j
receive(m)j,i
20
10
Navigators
FCUL
Navigators
FCUL
Composio
Operao que permite construir um autmato
que modele um sistema complexo usando
autmatos que modelem componentes mais
simples
Ligar aces de input e output de mesmo
nome
Quanto um autmato executa a aco de
output p , todos os autmatos que tm aces
de input p executam p simultaneamente
22
11
Navigators
FCUL
Exemplo de composio
decide(v)1
init(v)1
receive(m)2,1
P1
C2,1
send(m)1,2
init(v)2
send(m)2,1
receive(m)1,2
C1,2
decide(v)2
P2
23
Navigators
FCUL
Compatibilidade
S se podem compr autmatos compatveis.
Uma coleco numervel de assinaturas {Si}
compatvel se para todo o i ? jI, tivermos
1.out(Si) n out(Sj) = ,
2.int(Si) n acts(Sj) = , e
3.Nenhuma aco est contida em infinitos
conjuntos acts(Si).
Uma coleco de autmatos compatvel se a
coleco das suas assinaturas for compatvel.
24
12
Navigators
FCUL
Composio de assinaturas
A assinatura composta S de uma coleco
de assinaturas compatveis {Si}iI definida
como:
Fin(S) = UiI in(Si) - UiI out(Si)
Fout(S) = UiI out(Si)
Fint(S) = UiI int(Si)
Navigators
FCUL
Composio de autmatos
A composio A = iI Ai de uma coleco
numervel de autmatos compatveis {Ai}iI
um autmato definido por:
Fsig(A) = iI sig(Ai)
Fstates(A) = iI states(Ai)
Fstart(A) = iI start(Ai)
Ftrans(A) = iI trans(Ai)
Ftasks(A) = UiI tasks(Ai)
26
13
Navigators
FCUL
Navigators
FCUL
Especificao de um problema
Um autmato pode ser visto como uma caixa
negra, sendo observadas apenas sequncias
de aces externas: traos.
Um problema pode ser especificado atravs
de uma propriedade de trao P:
Fsig(P), uma assinatura s com aces externas
Ftraces(P), um conjunto de sequncias de aces
em acts(sig(P))
14
Navigators
FCUL
Propriedades
As propriedades que geralmente se pretende
que um sistema verifique so de dois tipos:
Propriedade de segurana (safety):
Falgo que se pretende que seja verificado durante
toda a execuo; algo mau que no pode
acontecer.
FExemplo: todos os processos i que fazem a aco
a(v) fazem-na com o mesmo valor de v
Propriedade de vivacidade:
Falgo bom que deve acontecer.
FExemplo: o algoritmo termina
29
Navigators
FCUL
Decomposio hierrquica
FDeterminado sistema ou algoritmo descrito
hierarquicamente em diversos nveis de
abstraco: do mais elevado e simples ao mais
baixo e detalhado; comea-se por provar o de
nvel mais alto e vai-se provando sucessivamente
os abaixo
30
15
Navigators
FCUL
DIOA
Um sistema distribudo pode tambm ser
especificado formalmente usando uma
lgebra de processos
FCSP, CCS, Clculo p
31
Navigators
FCUL
Sumrio
1.
2.
3.
4.
5.
Sistemas distribudos
Autmatos I/O
O problema do consenso
Solues
Concluso
32
16
Navigators
FCUL
Problema do Consenso
Informalmente:
F H n processos, ligados por canais
F Cada um tem um valor inicial
F Os processos devem chegar a acordo sobre um desses valores
33
Navigators
FCUL
Autmatos
Processo
sig(A)={init(v)i,decide(v)i,
send(m)i,j,receive(m)j,i}
init(v)i
decide(v)i
Pi
send(m)i,j
Canal
sig(A)={send(m)i,j, receive(m)i,j}
send(m)i,j
Ci,j
receive(m)i,j
stopi
receive(m)j,i
n processos, i {1,2,...n}
vV
34
17
Navigators
FCUL
vivacidade
segurana
Problema do Consenso
Acordo: Todos os valores decididos so iguais.
i,j decide(v)i decide(v)j v = v
propr. trao
Navigators
FCUL
Modelo
Consenso binrio: V = {0,1}
Tempo: assncrono
Falhas: paragem
36
18
Navigators
FCUL
Impossibilidade!
Terminao 1-falha no pode ser garantida
por nenhum algoritmo determinstico com
este modelo!
F FLP Fischer, Lynch e Paterson 85
Navigators
FCUL
Outras impossibilidades
Resistncia (a faltas) mxima: f < n/2
Fi.e., tolerar 1 falta pelo menos 3 processos
38
19
Navigators
FCUL
Sumrio
1.
2.
3.
4.
5.
Sistemas distribudos
Autmatos I/O
O problema do consenso
Solues
Concluso
39
Navigators
FCUL
Algoritmo Aleatrio
M. Ben-Or 83
Contorna a impossibilidade FLP por no ser
determinstico: a terminao garantida com
probabilidade crescente
Todo o processo tem um orculo aleatrio
Consenso binrio: V = {0,1}
Tempo: assncrono
Falhas: paragem (max. f)
Ftem outro semelhante para bizantinas
20
Navigators
FCUL
Composio de autmatos
init(v)1
P1
broadcast(m)1
init(v)i
decide(v)1
stop1
receive(m)j,1
broadcast(m)i
decide(v)i
Pi
stopi
receive(m)j,i
Canal Broadcast
41
Navigators
FCUL
Esboo do algoritmo
Processo Pi:
variveis locais x e y inicialmente a null
init(v)i causa x? v
executa uma srie de fases (1,2,...) cada uma com dois ciclos
executa o algoritmo para sempre
Fase s 1 :
ciclo 1: broadcast (1,s,v), sendo v o valor em x;
espera por (n-f) mensagens (1,s,*)
se todas tiverem o mesmo v, y? v ; caso contrrio y? null
ciclo 2: broadcast (2,s,v), sendo v o valor em y;
espera por (n-f) mensagens (2,s,*)
se todas tiverem o mesmo v null, decide(v)i e x? v
se pelo menos (n-2f) tiverem o mesmo v null, x? v
c.c. x? 0 ou 1 com probabilidade 1/2
42
21
Navigators
FCUL
Terminao
Esboo de prova:
Fcom certa probabilidade todos os processos no
parados escolhem o mesmo valor v para x no ciclo
2 (fase s)
Fquando tal acontece todos fazem broadcast de v e:
todos recebem (n-f) mensagens (1,s,v)
todos fazem broadcast de (2,s,v) no ciclo 2
todos recebem (n-f) mensagens (2,s,v)
todos fazem decide(v)i e terminam
Faltaria provar
Complexidades
Acordo e Validade
Fn de ciclos esperado: 2n-1+1
Fn de broadcasts esperado: (2n-1+1)n
43
Navigators
FCUL
22
Navigators
FCUL
Composio de autmatos
Detector de falhas
inf-stopped(j)1
stop1
init(v)1
inf-stopped(j)i
stopi
init(v)i
P1
decide(v)1
broadcast(m)1
receive(m)j,1
decide(v)i
broadcast(m)i
Pi
receive(m)j,i
Canal Broadcast
45
Navigators
FCUL
Esboo do algoritmo
Cada processo Pi tenta estabilizar dois dados:
F vector val indexado por {1,...n}, com valores em V U {null} ;
val(j)= v V significa que Pi sabe que o valor inicial de Pj v
F conjunto stopped com ndices dos processos que Pi sabe
que pararam (aco inf-stopped(j)i)
23
Navigators
FCUL
Detector no fivel W
FCompletude fraca: a partir de certo instante algum
processo correcto suspeita de todos os processos
parados.
FPreciso eventualmente fraca: a partir de certo
instante h um processo correcto que no
suspeito de nenhum processo correcto.
47
Navigators
FCUL
Mais solues
Sincronia parcial
FH tempos mximos de processamento e
comunicao mas so desconhecidos; ou
FA partir de certo instante T so satisfeitos tempos
mximos conhecidos de processamento e
comunicao.
Dwork et al. 84
48
24
Navigators
FCUL
Mais solues
Wormholes
FSistema estendido com um orculo que oferece
um conjunto de servios. Exemplos:
FServios de tempo: deteco de falhas temporais
FServios bizantinos: acordo sobre valor pequeno
Verssimo et al. 00, Correia et al. 02
Host 1
Processes
Host 2
Processes
Host n
Processes
OS
OS
OS
Local
TTCB
Local
TTCB
Local
TTCB
49
Navigators
FCUL
Sumrio
1.
2.
3.
4.
5.
Sistemas distribudos
Autmatos I/O
O problema do consenso
Solues
Concluso
50
25
Navigators
FCUL
Concluso
Investigao em sistemas distribudos tem
problemas interessantes e que exigem
tratamento rigoroso
Autmatos I/O
Metodologia semelhante, p.ex., Fsica:
Fmodelos
Fferramentas matemticas para raciocinar nesses
modelos: autmatos, lgebras de processos,...
Navigators
FCUL
Obrigado. Perguntas?
Pgina pessoal:
http://www.di.fc.ul.pt/~mpc
Grupo Navigators:
http://www.navigators.di.fc.ul.pt/
52
26