Académique Documents
Professionnel Documents
Culture Documents
Prof. Cidcley
Excluso Mtua
Processos em um Sistema Distribudo podem estar espalhados pelas mquinas componentes sendo que qualquer destes processos pode requisitar acesso a uma regio crtica. Algoritmos para tratar da excluso mtua em SD: Algoritmo Centralizado
Simples, suscetvel a falhas
Algoritmo Distribudo
Distribudo, baseado em relgio lgico
2
0 Request
1 OK C
Coordenador
4
Fila
1 Request C 2
No reply
Coordenador
5
Fila
0 Release
OK C 2 Coordenador
6
Fila
0 8 1 12 8 12 2 12
11
12
13
14
O processo s entra na RC depois de comunicar com todos os outros e garantir sua entrada.
15
Algoritmos de Eleio
Muitos algoritmos distribudos so baseados em processo coordenador. Os algoritmos de eleio so utilizados para eleger um coordenador; Os algoritmos de eleio normalmente assumem as seguintes asseres:
1. Cada processo tem um nmero nico (prioridade) 2. Em uma eleio o processo de mais alta prioridade eleito coordenador
16
Algoritmos de Eleio
3. Um processo que falhou pode tomar providncias para juntar-se ao conjunto novamente.
Algoritmos de Eleio
Algoritmo Bully
Quando um processo nota que o coordenador no mais responde as requisies ele inicia uma eleio:
1. P envia uma mensagem ELEIO para todos os processos com nmeros mais altos (prioridade). 2. Se nenhum responde, P ganha a eleio e torna-se coordenador. 3. Se um dos com prioridade maior responde, ele assume.
18
Algoritmos de Eleio
2 4 0
eleio eleio eleio
1 5 6 3
19
Algoritmos de Eleio
2 4 0 7 3
OK OK
1 5 6
20
Algoritmos de Eleio
2 4
eleio
1 5
eleio
0 7 3
6
eleio
21
Algoritmos de Eleio
2 4 0 7 3 1 5
OK
22
Algoritmos de Eleio
2 4
coordenador
1
coordenador
5
coordenador
0 7 3
6
coordenador
23
Algoritmos de Eleio
2 4
coordenador
1 5
coordenador
0
coordenador
6
coordenador
No 7 de recupera
24
Algoritmos de Eleio
Algoritmo Ring
Utilizado em sistemas onde os processos esto ordenados; No utiliza tokens;
25
Algoritmos de Eleio
4568 eleio
8 7
sem resposta 456 eleio
45681 eleio
2
456812
6
45 eleio
26
3 5
4 eleio
eleio
4568123 eleio
Algoritmos de Eleio
4568 coord.
8 7 6
45 coord.
27
45681 coord.
456 coord.
2
456812
3 5
4 coord.
coord.
4568123 coord.
Deadlocks
Deadlocks em SD so similares a deadlocks em sistemas centralizados, s que piores; So difceis de evitar, prevenir e at mesmo detectar; Dois tipos: Deadlocks de comunicao; Deadlocks de recursos;
28
Deadlocks
Deadlocks de comunicao
Exemplo: Um processo A quer enviar algo para o processo B, que por sua vez que enviar algo para C que est tentando enviar algo para A;
Deadlocks de recursos
Acesso a buffers, arquivos, etc
29
Ambos podem ser modelados como desdlocks de recursos (canais modelados como recursos)
Deadlocks
Estratgias para lidar com dealocks em sistemas centralizados: Deteco Permitir a ocorrncia de deadlocks Detecta-los Recupera-los Preveno Estaticamente fazer que deadlocks sejam estruturalmente impossveis
30
Deadlocks
Mtodos de preveno so muito difceis, sendo a alternativa mais procurada a de deteco; Tipos de Deteco
Centralizada Distribuda
31
Deadlocks
Deteco de Deadlock Centralizada Usa algoritmo centralizado; Utiliza grafos de recursos para cada mquina e um coordenador com um grafo do sistema completo (unio dos grafos individuais);
32
Deadlocks
Deteco de Deadlock Centralizada Quando um ciclo observado o coodenador mata um processo para quebrar o deadlock O coordenador atualizado atravs de mensagens; Problemas de falsos deadlocks em virtude a delays de mensagens;
33
Deadlocks
mquina 0 est usando A quer R B
est usando
mquina 1 quer S C
coordenador A R B S C T
est T usando
34
Deadlocks
mquina 0 est usando A quer R B
est usando
mquina 1 quer S C T
coordenador A R B X S C T
quer T
35
falso deadlock
Deadlocks
Deteco de Deadlock Distribuda Existem vrias tcnicas na literatura O mais utilizado o algoritmo de Chandy-Misra-Haas (1983) Permite a requisio de vrios recursos simultaneamente
36
Deadlocks
Uma mensagem de prova enviada pelos processos que ficam bloqueados Mensagem de prova = (x,y,z)
X = Nmero do processo bloqueado Y = Nmero do processo que est enviando a mensagem Z = Destinatrio da mensagem
37
Deadlocks
Quando a mensagem chega, o processo testa se ele est esperando por outro processo
Se est, troca o segundo campo pelo seu nmero e o terceiro campo pelo nmero do processo que ele est esperando (o primeiro campo no muda)
38
Deadlocks
Se a mensagem volta para o emissor original, ento h um ciclo (deadlock) Abordagens para resolver o deadlock
1) O processo inicial comete suicdio Probema se mais de um processo estiver em deadlock 2) Cada processo adiciona seu nmero no final da lista de prova, ento comete suicdio o processo de nmero maior
39
Deadlocks
(0,8,0) (0,4,6)
(0,1,2)
(0,0,1)
(0,2,3)
(0,3,4)
4 5
6 7
3
(0,3,5)
(0,6,8)
(0,5,7)
mquina 0 bloqueado
40
mquina 1
mquina 2
Deadlocks
4 0 1 2 3 5
6 7
mquina 0 Deadlock
41
mquina 1
mquina 2
Fim
42