Sistemas Distribuídos IIParte 03Exclusão Mútua
Introdução• Assim como em sistemas centralizados, os sistemasdistribuídos enfrentam o problema de gerenciarrecursos compar...
Introdução• Em sistemas centralizados criou-se o conceito de“região crítica”, que funciona da seguinte forma:– Para que um...
Introdução• Qual o problema em usar essas soluções nos SDs?– Todas estas soluções se baseiam na existência de:• Relógio ún...
Introdução(cont.)• É preciso implementar outro tipo de soluçãobaseada na forma de comunicação adotada: a trocade mensagens...
Soluções para Exclusão Mútua• Veremos três possibilidades:– Opção 1: Algoritmo Centralizado• Uma implementação usando troc...
Algoritmo Centralizado• Objetivo– Simular a metodologia de um sistemasmonoprocessado, ou seja, centralizar o controleem um...
Algoritmo Centralizado• Preparação– É preciso existir um processo coordenador para estealgoritmo. O coordenador pode ser:•...
Algoritmo Centralizado• Funcionamento– Quando um processo deseja entrar em região crítica eleenvia uma mensagem para o coo...
Algoritmo Centralizado• Funcionamento (cont.)– Quando o processo deixa a região crítica ele envia umamensagem ao coordenad...
Algoritmo Centralizado (cont.)• Características do algoritmo:– É justo• Requisições são atendidas por ordem de chegada– Ne...
Algoritmo Centralizado (cont.)• Problemas do algoritmo:– O coordenador é um ponto único de falha, o queé uma condição inde...
Algoritmo Centralizado• IMPORTANTE:– A descrição do funcionamento dos algoritmos deexclusão mútua (todos – não apenas ocen...
Algoritmo Distribuído• Funcionamento:– Quando um processo deseja entrar em umaregião crítica, envia mensagem para todos os...
Algoritmo Distribuído• Funcionamento (cont.):– Quando um processo recebe uma mensagem derequisição:• Se o receptor não est...
Algoritmo Distribuído• Funcionamento (cont.):– Quando um processo recebe uma mensagem derequisição (continuação):• Se o re...
Algoritmo Distribuído• Funcionamento (cont.):– Após enviar uma requisição para executar uma regiãocrítica aguarda até que ...
Algoritmo Distribuído• Características do algoritmo:– Exige ordenação global de todos os eventos dosistema• Para qualquer ...
Algoritmo Distribuído• Características do algoritmo (cont.):– Nenhum processo espera indefinidamente (nãohá starvation)– N...
Algoritmo Distribuído• Problemas do algoritmo:– O ponto único de falha foi substituído por n pontos defalha• A falha de um...
Algoritmo Distribuído• Problemas do algoritmo– Ou seja:• Este algoritmo funciona melhor para pequenos gruposde processos• ...
Algoritmo Token Ring• Preparação– Construção de um anel lógico (ordenação deprocessos)• Atribui-se a cada processo uma pos...
Algoritmo Token Ring• Funcionamento:– Quando o anel é inicializado o processo 0 (primeiro)recebe um bastão (token)– O toke...
Algoritmo Token Ring• Funcionamento (cont.):– Se um processo estiver de possedo token e NÃO deseja entrar emuma região crí...
Algoritmo Token Ring• Características do algoritmo:– Não há ocorrência de starvation– Quando um processo deseja entrar em ...
Algoritmo Token Ring• Problemas do algoritmo:– Se o token se perder há a necessidade de se criarum novo– É difícil detecta...
Comparação:Quantidade de Mensagens• Algoritmo Centralizado:– Mais simples e mais eficiente– Número de mensagens por entrad...
Comparação:Tempo de Espera(medido em quantidade de mensagens)• Algoritmo Centralizado:– Retardo (tempo de espera) para ent...
Próximos SlideShares
Carregando em…5
×

Sd06 (si) exclusão mútua

556 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
556
No SlideShare
0
A partir de incorporações
0
Número de incorporações
18
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Sd06 (si) exclusão mútua

  1. 1. Sistemas Distribuídos IIParte 03Exclusão Mútua
  2. 2. Introdução• Assim como em sistemas centralizados, os sistemasdistribuídos enfrentam o problema de gerenciarrecursos compartilhados sem comprometer suaconsistência– Dois ou mais processos não podem acessar dadoscompartilhados ao mesmo tempo– Ou seja, o acesso é feito por meio de “exclusãomútua”
  3. 3. Introdução• Em sistemas centralizados criou-se o conceito de“região crítica”, que funciona da seguinte forma:– Para que um processo seja autorizado a entrar no estado deregião crítica, nenhum outro processo pode fazer isso– Deste modo fica garantida a exclusão mútua em um recursocompartilhado– Os sistemas centralizados mantém esta estrutura de acessofuncionando por meio de mecanismos como semáforos,monitores e outras soluções similares
  4. 4. Introdução• Qual o problema em usar essas soluções nos SDs?– Todas estas soluções se baseiam na existência de:• Relógio único: Os eventos em cada processo acontecemsincronizados pelo mesmo relógio• Memória compartilhada: Toda a informação de controlearmazenada na memória compartilhada está facilmentedisponível para qualquer processo envolvido– Em sistemas distribuídos não meios de garantir quenenhuma das duas condições vá acontecer
  5. 5. Introdução(cont.)• É preciso implementar outro tipo de soluçãobaseada na forma de comunicação adotada: a trocade mensagens– Mas as características de exclusão mútua e região críticadevem ser preservadasComo você resolveria o problema de exclusão mútua eregião crítica sem abrir mão das suas característicasfundamentais?- Discuta propostas em sala
  6. 6. Soluções para Exclusão Mútua• Veremos três possibilidades:– Opção 1: Algoritmo Centralizado• Uma implementação usando troca de mensagens, mas mantendoas mesmas características de ambientes monoprocessados– Opção 2: Algoritmo Distribuído• Uma alternativa que elimina a centralização característica daopção 1– Opção 3: Algoritmo em Anel• Outra solução descentralizada, mas com abordagem diferente daopção 2
  7. 7. Algoritmo Centralizado• Objetivo– Simular a metodologia de um sistemasmonoprocessado, ou seja, centralizar o controleem um processo coordenador• Existem várias formas de se obter um coordenador,mas o algoritmo não se preocupa em exigir uma únicaforma de fazer isso, apenas deve garantir a existênciado coordenador e um funcionamento padronizadoperante os processos que interagem com ele
  8. 8. Algoritmo Centralizado• Preparação– É preciso existir um processo coordenador para estealgoritmo. O coordenador pode ser:• Estático:– existir de forma independente, sem ter sua existênciavinculada a uma única situação de exclusão mútua(prestando apenas o serviço de coordenação)• Eleito:– Eleito pelos processo participantes usando um algoritmodistribuído (o funcionamento do algoritmo será discutidofuturamente)– O critério usado na eleição não vem ao caso (endereço derede, identificação do processo, idade do processo,...)
  9. 9. Algoritmo Centralizado• Funcionamento– Quando um processo deseja entrar em região crítica eleenvia uma mensagem para o coordenador solicitandopermissão• Se nenhum outro processo estiver executando suaregião crítica o coordenador envia uma mensagem deresposta ao solicitante autorizando a entrada emregião crítica• Se algum processo estiver executando a região crítica– O coordenador não responde– O processo solicitante fica aguardando a resposta– A requisição do processo solicitante é colocada emuma fila
  10. 10. Algoritmo Centralizado• Funcionamento (cont.)– Quando o processo deixa a região crítica ele envia umamensagem ao coordenador abrindo mão de seu acesso– O coordenador envia uma mensagem concedendo apermissão ao primeiro processo da fila
  11. 11. Algoritmo Centralizado (cont.)• Características do algoritmo:– É justo• Requisições são atendidas por ordem de chegada– Nenhum processo espera indefinidamente• A menos que ocorra algum tipo de falha, o que não fazparte do funcionamento normal do algoritmo– É fácil de ser implementado:• Necessita de apenas 3 mensagens (requisição,permissão e liberação) para se garantir o acesso adeterminada região crítica
  12. 12. Algoritmo Centralizado (cont.)• Problemas do algoritmo:– O coordenador é um ponto único de falha, o queé uma condição indesejável em um SD– Se coordenador não responde em caso depermissão negada:• Processos bloqueados não têm como distinguir asituação “coordenador fora do ar” da situação“permissão de acesso negado”– Para sistemas muito grandes:• um único coordenador pode degradar a performancedo sistema (gargalo)
  13. 13. Algoritmo Centralizado• IMPORTANTE:– A descrição do funcionamento dos algoritmos deexclusão mútua (todos – não apenas ocentralizado) consideram uma situação ideal,onde não está prevista a ocorrência de falhas nasentregas das mensagens ou término anormal deprocessos.– O tratamento de possíveis falhas varia de acordocom a implementação de cada solução, mas namaioria das vezes se baseia em controle detimeout e retransmissão de mensagens
  14. 14. Algoritmo Distribuído• Funcionamento:– Quando um processo deseja entrar em umaregião crítica, envia mensagem para todos osprocessos (inclusive ele próprio) contendo onome da região crítica, seu próprio número(identificação) e o tempo corrente– (continua)
  15. 15. Algoritmo Distribuído• Funcionamento (cont.):– Quando um processo recebe uma mensagem derequisição:• Se o receptor não estiver executando a regiãocrítica e não deseja executar:– Envia de volta ao transmissor um mensagem de OK• Se o receptor estiver executando a regiãocrítica:– Não deve responder (deixa o solicitante esperando) e guardaa requisição em uma fila– (continua)
  16. 16. Algoritmo Distribuído• Funcionamento (cont.):– Quando um processo recebe uma mensagem derequisição (continuação):• Se o receptor também deseja executar a região crítica,mas ainda não iniciou:– Compara o tempo da mensagem recebida com otempo da mensagem de requisição que ele enviouSe o tempo da mensagem recebida for menorenvia um OK ao transmissorSe o tempo de sua própria mensagem formenor coloca a requisição recebida em uma filae não responde– (continua)
  17. 17. Algoritmo Distribuído• Funcionamento (cont.):– Após enviar uma requisição para executar uma regiãocrítica aguarda até que todos os demais processos lhedeem permissão– Ao terminar a execução da região crítica enviamensagem de “OK” a todos os processo de sua fila
  18. 18. Algoritmo Distribuído• Características do algoritmo:– Exige ordenação global de todos os eventos dosistema• Para qualquer par de eventos, deve haver umconsenso sobre qual deles aconteceu antes• Baseado no algoritmo de Lamport parasincronização de relógios lógicos
  19. 19. Algoritmo Distribuído• Características do algoritmo (cont.):– Nenhum processo espera indefinidamente (nãohá starvation)– Não há impasses (deadlocks)– Número de mensagens por entrada na regiãocrítica:• 2 (n-1) mensagens• Onde n é o número de processos do sistema
  20. 20. Algoritmo Distribuído• Problemas do algoritmo:– O ponto único de falha foi substituído por n pontos defalha• A falha de um processo bloqueia todas as tentativas subsequentesde acesso à região crítica– O tráfego gerado na rede é muito maior– Em sistemas muito grandes todos os processos se tornampossíveis gargalos
  21. 21. Algoritmo Distribuído• Problemas do algoritmo– Ou seja:• Este algoritmo funciona melhor para pequenos gruposde processos• Podemos aumentar a eficiência do algoritmo com duaspequenas alterações:1. Envio de mensagem de negação de acesso àregião crítica (problema: mais mensagens)2. O processo pode entrar na região crítica quandoobtiver a permissão da maioria dos processos(muito arriscado)
  22. 22. Algoritmo Token Ring• Preparação– Construção de um anel lógico (ordenação deprocessos)• Atribui-se a cada processo uma posição no anel– Não importa o critério de ordenação (ordemnumérica de endereços de rede, número deprocesso, ou qualquer outro meio conveniente)– O importante é que cada processo conheça opróximo na sequência– Continua
  23. 23. Algoritmo Token Ring• Funcionamento:– Quando o anel é inicializado o processo 0 (primeiro)recebe um bastão (token)– O token fica circulando no anel, obedecendo a ordenaçãoestabelecida– Se um processo estiver de posse do token e deseja entrarem uma região crítica:• Executa a região crítica (não é permitido que ele entre emuma segunda região crítica)• Ao terminar a execução da região crítica envia o token aoseu vizinho– Continua
  24. 24. Algoritmo Token Ring• Funcionamento (cont.):– Se um processo estiver de possedo token e NÃO deseja entrar emuma região crítica:• Envia o token ao seuvizinho
  25. 25. Algoritmo Token Ring• Características do algoritmo:– Não há ocorrência de starvation– Quando um processo deseja entrar em umaregião crítica, o que pode acontecer de pior é terque esperar que todos os processos antes deleexecutem alguma região crítica
  26. 26. Algoritmo Token Ring• Problemas do algoritmo:– Se o token se perder há a necessidade de se criarum novo– É difícil detectar a perda do token:• O fato do token não aparecer por muito temponão significa que ele esteja perdido– Se algum processo falhar, seu vizinho deveidentificar a falha e removê-lo do anel• Para isso, é necessário que todos conheçam aconfiguração do anel (quais os integrantes)
  27. 27. Comparação:Quantidade de Mensagens• Algoritmo Centralizado:– Mais simples e mais eficiente– Número de mensagens por entrada na região crítca:• Apenas 3 (requisição, autorização e liberação)• Algoritmo Distribuído:– Número de mensagens por entrada na região crítca :• 2(n-1) mensagens, sendo (n-1) requisições e (n-1) autorizações• Algoritmo Token Ring:– Número de mensagens por entrada na região crítca:• É variável e imprevisível– Se todos os processos desejam entrar em região crítica:necessita de apenas 1 mensagem– Se ninguém desejar entrar em região crítica: imprevisível (otoken pode circular por horas sem que haja nenhum processointeressado)
  28. 28. Comparação:Tempo de Espera(medido em quantidade de mensagens)• Algoritmo Centralizado:– Retardo (tempo de espera) para entrar na região crítica:• Apenas o tempo de 2 mensagens• Algoritmo Distribuído:– Retardo (tempo de espera) para entrar na região crítica:• O tempo equivalente a 2(n-1) mensagens• Algoritmo Token Ring:– Retardo (tempo de espera) para entrar na região crítica:• O tempo varia:– O token acaba de chegar: 0 mensagens– O token acaba de ser passado: n-1 mensagens

×