Você está na página 1de 42

Sistemas Distribudos

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

Excluso Mtua Centralizada


Um processo o coordenador; Sempre que um processo deseja entrar na regio crtica (RC), ele envia uma requisio para o coordenador; O coordenador garante permisso para entrar na RC. Se existe um processo na RC as prximas requisies so enfileiradas;
3

Excluso Mtua Centralizada

0 Request

1 OK C

Coordenador
4

Fila

Excluso Mtua Centralizada

1 Request C 2

No reply

Coordenador
5

Fila

Excluso Mtua Centralizada

0 Release

OK C 2 Coordenador
6

Fila

Excluso Mtua Centralizada


Simples de entender e implementar; Necessita de 3 mensagens para entrar e sair da regio crtica; O processo coordenador central um ponto de falha;
7

Excluso Mtua Distribuda


Na abordagem distribuda a tomada de deciso para a excluso mtua tem a participao de todos os processos; Os eventos tem ordenamento total (algoritmo de sincronizao do clock de Lamport); O envio de mensagens confivel (mensagens confirmadas);
8

Excluso Mtua Distribuda


Quando um processo recebe uma mensagem de requisio de um outro processo o seguinte pode acontecer: 1. Se o recebedor no est na RC e no quer entrar, ele envia uma mensagem de OK. 2. Se o recebedor est na RC, ele no responde. A requisio colocada em uma fila.
9

Excluso Mtua Distribuda


3. Se o recebedor quer entrar na RC, ele compara o timestamp da mensagem com a que ele enviou. O menor vence. Se a recebida menor, o recebedor envia um OK. Se a sua mensagem tem um timestamp menor, o recebedor coloca a requisio na fila.
10

Excluso Mtua Distribuda


8

0 8 1 12 8 12 2 12

11

Excluso Mtua Distribuda


Entra na regio crtica 0 OK 1 OK OK 2

12

Excluso Mtua Distribuda


Sai da regio crtica 0 OK

2 Entra na regio crtica

13

Excluso Mtua Distribuda


Nmero de mensagens por entrada em RC: 2(n-1); Se um n quebra, a ausncia de uma resposta considerada como negativa de permisso. Isto pode bloquear o requisitante para sempre.
O recebedor deveria responder sempre, negando ou aceitando a requisio

14

Excluso Mtua Distribuda


A quebra de qualquer n para o processo de entrada na RC
Aceitao da maioria dos ns

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.

Dois algoritmos bastante usados:


Algoritmo Bully Algoritmo Ring
17

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

Neste caso o trabalho de P est feito.

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