Você está na página 1de 17

MSc. Max E.

Vizcarra Melgar
Engenheiro de Redes de Comunicao UnB
Mestre em Engenharia Eltrica UnB
1
Sistemas Distribudos
Coordenao Distribuda
2
Motivao
Eventos
Clocks comuns?
Recursos alocados
Ordem cronolgica
Sincronizao entre Sistemas Distribudos
Gerenciamento de Sistemas distribudos
Coordenao Distribuda
3
Em um sistema centralizado, sempre possvel determinar a
ordem de ocorrncia de eventos, uma vez que existe um
relgio comum. Em muitas aplicaes, isso muito importante.
Por exemplo, em um esquema de alocao de recursos, um
recurso pode ser usado s depois de alocado. Em um sistema
distribudo, no entanto, no existe um relgio comum.
Portanto, algumas vezes impossvel dizer qual evento ocorreu
primeiro.
Coordenao Distribuda
4
Em sistemas distribudos, a relao ocorreu antes uma relao
parcial entre eventos. Como a existncia de uma ordenao
total crucial para muitas aplicaes, apresentamos um
algoritmo para estender a relao ocorreu antes para uma
ordenao total de todos os eventos no sistema.
Em um sistema distribudo, sem relgio nem memria comuns,
algumas vezes impossvel determinar a ordem exata de
ocorrncia de eventos. A relao ocorreu antes oferece apenas
uma ordenao parcial de eventos em sistemas distribudos. Em
um sistema distribudo, marcas de tempo podem ser usadas
para fornecer uma ordenao consistente de eventos.
Coordenao Distribuda
5
Em sistemas distribudos, a relao ocorreu antes uma relao
parcial entre eventos. Como a existncia de uma ordenao
total crucial para muitas aplicaes, apresentamos um
algoritmo para estender a relao ocorreu antes para uma
ordenao total de todos os eventos no sistema.
Em um sistema distribudo, sem relgio nem memria comuns,
algumas vezes impossvel determinar a ordem exata de
ocorrncia de eventos. A relao ocorreu antes oferece apenas
uma ordenao parcial de eventos em sistemas distribudos. Em
um sistema distribudo, marcas de tempo podem ser usadas
para fornecer uma ordenao consistente de eventos.
Coordenao Distribuda
6
Em um ambiente distribudo, o acesso mutuamente exclusivo
aos dispositivos pode ser implementado de vrias maneiras. Em
uma abordagem centralizada, um dos processos no sistema
escolhido para coordenar a entrada em regies crticas. Em uma
abordagem totalmente distribuda, a deciso distribuda entre
os processos do sistema. O algoritmo que usa uma mensagem
de sinalizao nica para entrada em uma regio crtica um
exemplo de um algoritmo distribudo, aplicvel a uma rede
com estrutura de anel.
Coordenao Distribuda
7
Para garantir a atomicidade de transaes, todos os ns nos
quais uma transao T foi executada devem concordar quanto
ao sucesso ou falha na execuo de T. Para assegurar essa
propriedade, o coordenador da transao T deve executar um
protocolo para terminao deT.
O mtodo bsico para o tratamento de situaes de impasse em
um ambiente distribudo baseado na deteco de impasses. O
principal problema consiste em decidir como atualizar o grafo
de espera. Mtodos que usam uma abordagem centralizada ou
uma abordagem totalmente distribuda podem ser usados.
Coordenao Distribuda
8
Alguns algoritmos distribudos requerem o uso de um
coordenador. Se ocorrer uma falha no n onde o coordenador
executado, o sistema pode continuar sua execuo somente
iniciando uma nova cpia do coordenador em algum outro n.
Nesse caso, um coordenador substituto pode ser usado e
ativado quando ocorre a falha. Outra abordagem escolher um
novo coordenador quando ocorrer a falha. Algoritmos que
determinam onde iniciar uma nova cpia do coordenador so
chamados de algoritmos de eleio. Dois algoritmos, o
algoritmo do mais forte e o algoritmo do anel, podem ser
usados para eleger um novo coordenador no caso de falhas.
Ordenao de Eventos
9
Motivao
Eventos que ocorrem como processos
Cada processo Conjunto de eventos
Recursos alocados
Ordem cronolgica
Sincronizao entre Sistemas Distribudos
Gerenciamento de Sistemas distribudos
Ordenao de Eventos
10
Eventos:
Definio: Ocorrncia de uma ao gerada por um
processo/thread, sendo que cada processo consiste em uma
sequncia de eventos (execuo de uma instruo em
linguagem de mquina). Cada processo tem como aes padro
a troca de mensagens entre processos e alterao de seu prprio
status.
Ordenao de Eventos
11
Ordenao de Eventos
Podem ocorrer das seguintes formas:
Excluso mtua
Semforos Distribudos
Ordenao de Eventos
12
Excluso mtua
Ocorre quando uma varivel tem seu contedo compartilhado por
mais de um thread/processo, a excluso mtua deve ser feita para
variveis que tem seus valores alterados, a esses valores se d o nome
de dados modificveis que so dados que esto sendo
manipulados por variveis em operaes de escrita/modificao de
dados.
Quando um thread/processo est executando sua regio crtica o
acesso para a escrita nessa varivel deve ser fechado apenas ao
processo em execuo, sendo a varivel liberada apenas para
operaes de leitura.
Ordenao de Eventos
13
Regio Crtica
Se d o nome de regio crtica, quando um thread/processo acessa
dados modificveis.
Ex: Quando um thread est alterando o valor de uma varivel, diz-se
que ela est em uma regio crtica.
Para evitar erros ao alterar valores em variveis compartilhadas, todo
sistema deve cuidar para que quando um thread/processo acessa sua
regio crtica, o acesso a mesma seja travado e liberado para outras
threads/processo somente quando a thread em execuo terminar de
realizar sua tarefa, lembrando que esta restrio dada apenas a
operao em dados modificveis (escrita).
Ordenao de Eventos
14
Algoritmos de Excluso Mtua
Existem diversas implementaes de algoritmos de excluso
mtua, que podem variar entre algoritmos para sistemas com
um processador ou sistemas com multiprocessadores, dentre os
mais conhecidos esto os algoritmos de Dekker, Peterson e
Lamport.
Ordenao de Eventos
15
Algoritmos de Dekker
Um dos primeiros algoritmos de excluso mtua, desenvolvido
pelo matemtico Holands Dekker, foi desenvolvido em cinco
verses, sendo a ltima verso a mais estvel.
1. Verso Realiza a excluso mtua com desvantagens
significativas como:
Uso do processador para trabalhos no essenciais,
intertravamento (quando um thread que no est em sua
regio crtica impede que outra thread entre em uma regio
crtica
Ordenao de Eventos
16
Algoritmos de Dekker
2. Verso Tenta corrigir o problema de Intertravamento com duas
variveis para acesso a seo crtica (a primeira verso utilizava apenas
uma varivel), ainda assim no garante a excluso mtua dado que,
mesmo com duas variveis, ainda no existe garantia de que o controle
ser feito, o que gera um acesso concorrente a regio crtica.
3. Verso Cada thread sinaliza o desejo de entrar na regio crtica
antes de entrar na mesma, isto gera um outro problema: se cada thread
sinalizar o desejo de entrar na regio crtica antes de realizar um teste
para verificao de entrada (ex: loop WHILE), encontrar outras
threads marcadas com a mesma inteno e ficar executando o lao
infinitamente gerando um Deadlock (bloqueio e impasse entre dois
processos que impede continuar a execuso)
Ordenao de Eventos
17
Algoritmos de Dekker
4. Verso Implementado com a alterao de um Flag de marcao
para falso durante um perodo de tempo permitindo assim que todas os
threads possam acessa sua regio crtica, garantindo assim a excluso
mtua e impedindo o deadlock. Ele gera outro problema, gerando um
perodo de tempo aleatrio para alterao do valor das Flags de cada
thread, os threads poderiam ser executados em um efeito cascata
passando o valore de Flag de verdadeiro para falso
5. Verso Verso mais recente e adequada que incorpora o conceito
de thread favorecido e funciona quando existe uma disputa por uma
regio crtica, ou seja, quando mais de um thread tenta acessar a regio
crtica.