SlideShare a Scribd company logo
1 of 27
SISTEMAS
DISTRIBUÍDOS
EXCLUSÃO MÚTUA,
COORDENAÇÃO E ACORDO
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
1
EXCLUSÃO MÚTUA
• Concorrência e colaboração são pontos chave em sistemas
distribuídos.
• Em muitos casos processos precisam acessar os mesmos
recursos.
• É preciso evitar que recursos fiquem corrompidos ou
inconsistentes.
• Garantir acesso mutuamente exclusivo a recursos por
parte dos processos.
2
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
• Para tratamento de exclusão mútua e deadlocks
• Algoritmos de Ficha
• Algoritmo Centralizado
• Algoritmo Descentralizado
• Algoritmo Distribuído
• Algoritmo Token Ring
 
• Coordenação de acesso a regiões críticas - Algoritmos de
Eleição
• Algoritmo do Ditador
• Algoritmo do Anel
3
EXCLUSÃO MÚTUA
Soluções baseadas em ficha
•  Processos trocam mensagem especial, chamada ficha.
•  Quem possuir a ficha, possui acesso ao recurso.
•  Solução simples e eficaz, sem inanição ou deadlocks.
•  Desvantagem quando o processo que detém a ficha falha.
Soluções baseadas em permissão
•  Algoritmo Centralizado
•  Algoritmo Descentralizado
•  Algoritmo Distribuído
•  Algoritmo Token Ring
4
ALGORITMO
CENTRALIZADO
• Simular exclusão mútua como é feita em sistemas
centralizados.
• Um processo é escolhido como coordenador.
• Outros processos enviam mensagens ao coordenador
declarando que recursos querem usar.
5
ALGORITMO
CENTRALIZADO
• Se o recurso estiver livre o coordenador concede acesso
ao recurso.
• Se o recurso estiver ocupado, nega por omissão ou
enviando mensagem.
• Ponto falho: se o coordenador falhar todo o sistema cai.
6
ALGORITMO
CENTRALIZADO
O processo 1 solicita ao coordenador permissão para
acessar um recurso compartilhado.
A permissão é concedida.
7
ALGORITMO
CENTRALIZADO
Depois o processo 2 solicita permissão para acessar o
mesmo recurso. O coordenador não responde.
8
ALGORITMO
CENTRALIZADO
Quando o processo 1 libera o recurso. Informa ao
coordenador , que então responde 2.
9
ALGORITMO
DESCENTRALIZADO
• Um único coordenador costuma ser uma abordagem ruim.
• Solução: coordenador descentralizado.
• Assume-se (hipoteticamente) que cada recurso está
replicado.
• Cada processo coordena o acesso ao recurso.
• Processo interessado no recurso deve ter m > n/2 votos
concedendo acesso.
• Corretude do algoritmo baseado em probabilidade de acerto.
10
ALGORITMO
DISTRIBUÍDO
• Exclusão Mútua no acesso de recursos compartilhados em
sistemas distribuídos
• Para qualquer evento no sistema não deve haver
ambiguidade sobre qual processo solicitou o recurso
ocorreu primeiro.
• Quando um processo quer acessar um recurso
compartilhado, monta uma mensagem com:
• Nome do recurso
• O número do processo
• Hora corrente
• Depois, envia a mensagem a todos os outros processos e
para ele mesmo
11
ALGORITMO
DISTRIBUÍDO
Três situações podem ocorrer:
• Se o receptor não estiver acessando o recurso e não quiser acessá-lo:
• Devolve uma mensagem OK ao remetente.
• Se o receptor já tiver acesso ao recurso:
• Coloca a requisição em uma fila.
• Se o receptor também quiser acessar o recurso, mas ainda não
acessou:
• Compara a marca de tempo da mensagem que chegou com a marca de
tempo contida na mensagem que enviou para todos.
• A mais baixa vence.
• Se a marca de tempo da mensagem acabou de chegar for mais baixa, o
receptor devolve uma mensagem OK.
• Se a marca de tempo de sua própria mensagem for mais baixa, o
receptor enfileira a requisição que está chegando e nada envia.
12
ALGORITMO
DISTRIBUÍDO
Dois processos querem acessar um recurso compartilhado
no mesmo momento.
13
ALGORITMO
DISTRIBUÍDO
O processo 0 tem a marca de tempo mais baixa, portanto
vence.
14
ALGORITMO
DISTRIBUÍDO
Quando o processo 0 conclui, também envia uma
mensagem OK, portanto, agora 2 pode seguir adiante.
15
ALGORITMO TOKEN RING
• Admite-se uma “rede de barramento” de processos sem
ordenação.
• Anel lógico é construído via software, cada processo é
atribuído a uma posição no anel.
• Não importa a ordenação, apenas que cada processo saiba
qual processo vem depois dele.
• Na inicialização do anel o processo 0 recebe uma “ficha”.
• A “ficha” trafega pelo anel do processo “k”para o processo
“k+1”.
• Quando um processo adquire o token de seu vizinho, ele
verifica se necessita acessar a região.
16
ALGORITMO
TOKEN RING
(a) Grupo de processos não ordenados em uma rede.
(b) Um anel lógico é construído em software.
17
COMPARATIVO ENTRE
OS ALGORITMOS
18
SINCRONIZAÇÃO EM
SISTEMAS DISTRIBUÍDOS
•Coordenação de acesso a regiões críticas - Algoritmos de
Eleição
• Algoritmo do Ditador
• Algoritmo do Anel
19
ALGORITMOS DE
ELEIÇÃO
• Muitos algoritmos distribuídos requerem um coordenador.
• Qualquer processo pode ser escolhido, no entanto um
deles precisa ser escolhido.
• Premissas:
• Cada processo tem um número de processo exclusivo.
• Um processo por máquina.
• Todo processo sabe o número de todos os outros.
• Algoritmos tradicionais
• Algoritmo do Ditador (ou Maioral)
• Algoritmo do Anel
20
ALGORITMO DO
DITADOR
Assume-se que cada processo conhece o número dos
demais processos
• Casa processo sabe quem é o seu sucessor.
• Quando um processo P, nota que o coordenador não está
respondendo, ele inicia uma eleição.
21
ALGORITMO DO
DITADOR
P envia uma mensagem de ELEIÇÃO para todo processo
com número maior que o seu.
• Se ninguém responde o processo P vence a eleição e se
torna coordenador.
• Se um com número mais alto responde, P sai do processo.
22
ALGORITMO DO
DITADOR
(a) O processo 4 convoca uma eleição.
(b) Os processos 5 e 6 respondem e mandam 4 parar.
(c) Agora cada um 5 e 6 convoca uma eleição.
23
ALGORITMO DO
DITADOR
(d) Processo 6 manda 5 parar.
(e) Processo 6 vence e avisa ao demais.
24
ALGORITMO DO ANEL
Diferente da maioria, este algoritmo de anel não usa ficha e
considera a ordenação
Quando um processo nota que não há coordenador
• Processo envia mensagem “ELEIÇÃO” para sucessor (no
anel)
• Se PID do remetente > PID do destinatário, mensagem é
passada adiante
• Se PID do remetente < PID do destinatário, este passa a
participar da eleição
• A certa altura a mensagem volta ao último processo que
entrou na disputa (maior PID), que será o novo coordenador
25
ALGORITMO DO ANEL
26
SISTEMAS
DISTRIBUÍDOS
EXCLUSÃO MÚTUA,
COORDENAÇÃO E ACORDO
ARTHUR EMANUEL DE OLIVEIRA
CAROSIA
27

More Related Content

What's hot

Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Faculdade Mater Christi
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosFrederico Madeira
 
Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Renato William
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Sistemas Distribuídos - Aula 03
Sistemas Distribuídos - Aula 03Sistemas Distribuídos - Aula 03
Sistemas Distribuídos - Aula 03Arthur Emanuel
 
Introdução ao OSPF e BGP
Introdução ao OSPF e BGPIntrodução ao OSPF e BGP
Introdução ao OSPF e BGPAbivio Pimenta
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processosvini_campos
 
Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMIAdriano Teixeira de Souza
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosMessias Batista
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosMessias Batista
 

What's hot (20)

Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
Protocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das CoisasProtocolos de Rede para Internet das Coisas
Protocolos de Rede para Internet das Coisas
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
SI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas DistribuidosSI - Introdução a Sistemas Distribuidos
SI - Introdução a Sistemas Distribuidos
 
Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Sistemas distribuídos aula 1
Sistemas distribuídos aula 1
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Sistemas Distribuídos - Aula 03
Sistemas Distribuídos - Aula 03Sistemas Distribuídos - Aula 03
Sistemas Distribuídos - Aula 03
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Introdução ao OSPF e BGP
Introdução ao OSPF e BGPIntrodução ao OSPF e BGP
Introdução ao OSPF e BGP
 
Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
2. conceito de processos
2. conceito de processos2. conceito de processos
2. conceito de processos
 
Sistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMISistemas Distribuídos - Comunicação Distribuída - RMI
Sistemas Distribuídos - Comunicação Distribuída - RMI
 
Analise e Projeto de Sistemas
Analise e Projeto de SistemasAnalise e Projeto de Sistemas
Analise e Projeto de Sistemas
 
Gerenciamento de memória
Gerenciamento de memóriaGerenciamento de memória
Gerenciamento de memória
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídosAula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
Aula03 Sistemas Distribuídos - Arquiteturas de sistemas distribuídos
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
 

Viewers also liked

Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de TempoArthur Emanuel
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOAAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosArthur Emanuel
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Arthur Emanuel
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebArthur Emanuel
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Arthur Emanuel
 
Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Frederico Madeira
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosValdir Junior
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareAdriano Teixeira de Souza
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoThiago Marinho
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosGustavo Monteiro
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosrobsons75
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 

Viewers also liked (20)

Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de TempoSistemas Distribuídos -  Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
Sistemas Distribuídos - Aula 09 - Tempos, Relogios e Sincronizacao de Tempo
 
Sd05 (si) relógios e sincronização
Sd05 (si)   relógios e sincronizaçãoSd05 (si)   relógios e sincronização
Sd05 (si) relógios e sincronização
 
Sistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBASistemas Distribuídos - Comunicação Distribuída – CORBA
Sistemas Distribuídos - Comunicação Distribuída – CORBA
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
 
Sistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOASistemas Distribuídos - Comunicação Distribuída – SOA
Sistemas Distribuídos - Comunicação Distribuída – SOA
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06Sistemas Distribuídos - Aula 06
Sistemas Distribuídos - Aula 06
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Sistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos WebSistemas Distribuídos - Aula 07 - Servicos Web
Sistemas Distribuídos - Aula 07 - Servicos Web
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)Sistemas De Arquivos Distribuídos (SAD)
Sistemas De Arquivos Distribuídos (SAD)
 
Sistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de DadosSistemas Distribuídos - Replicação de Banco de Dados
Sistemas Distribuídos - Replicação de Banco de Dados
 
Sistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – MiddlewareSistemas Distribuídos - Comunicação Distribuída – Middleware
Sistemas Distribuídos - Comunicação Distribuída – Middleware
 
Apresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - ConceitoApresentação Sistemas Distribuídos - Conceito
Apresentação Sistemas Distribuídos - Conceito
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Sistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidosSistemas operacionais sistemas-distribuidos
Sistemas operacionais sistemas-distribuidos
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Sistemas Distribuídos - Clusters
Sistemas Distribuídos - ClustersSistemas Distribuídos - Clusters
Sistemas Distribuídos - Clusters
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 

Similar to Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica

16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptxRoberto Aragy
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockWilliams Gomes da Silva
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de ProcessosFatec Jales
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
Escalonamento lotérico e fração justa
Escalonamento lotérico e fração justaEscalonamento lotérico e fração justa
Escalonamento lotérico e fração justaVitor Renato
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre ProcessosRafaelPessoa22
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas DistribuídosRoberto Aragy
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2Gustavo Souza
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorSofia Trindade
 
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoCategorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoThaís Favore
 

Similar to Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica (20)

16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx16-Sistemas Distribuídos.pptx
16-Sistemas Distribuídos.pptx
 
SincronizacaoDist.pdf
SincronizacaoDist.pdfSincronizacaoDist.pdf
SincronizacaoDist.pdf
 
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, DeadlockApresentação Semáforos, monitores, troca de mensagens, Deadlock
Apresentação Semáforos, monitores, troca de mensagens, Deadlock
 
Escalonamento de Processos
Escalonamento de ProcessosEscalonamento de Processos
Escalonamento de Processos
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Algoritmo lamport
Algoritmo lamportAlgoritmo lamport
Algoritmo lamport
 
Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)Impasses cap 06 (ii unidade)
Impasses cap 06 (ii unidade)
 
Ad d lock
Ad d lockAd d lock
Ad d lock
 
Escalonamento lotérico e fração justa
Escalonamento lotérico e fração justaEscalonamento lotérico e fração justa
Escalonamento lotérico e fração justa
 
Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round Robin
 
Impasses S.O
Impasses S.OImpasses S.O
Impasses S.O
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Comunicacao entre Processos
Comunicacao entre ProcessosComunicacao entre Processos
Comunicacao entre Processos
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas Distribuídos
 
Circuit Breaker
Circuit BreakerCircuit Breaker
Circuit Breaker
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo EscalonadorCategorias de Escalonamento e Objetivos do Algorítmo Escalonador
Categorias de Escalonamento e Objetivos do Algorítmo Escalonador
 
Categorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamentoCategorias de escalonamento e objetivos do algoritmo de escalonamento
Categorias de escalonamento e objetivos do algoritmo de escalonamento
 

More from Arthur Emanuel

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningArthur Emanuel
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - JavaArthur Emanuel
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosArthur Emanuel
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com FacebookArthur Emanuel
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaArthur Emanuel
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuArthur Emanuel
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomArthur Emanuel
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoArthur Emanuel
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosArthur Emanuel
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoArthur Emanuel
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoArthur Emanuel
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioArthur Emanuel
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, FormulárioArthur Emanuel
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPSArthur Emanuel
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo WebservicesArthur Emanuel
 

More from Arthur Emanuel (20)

Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine LearningApresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
Apresentação - Minicurso de Introdução a Python, Data Science e Machine Learning
 
Exercícios - Herança - Java
Exercícios - Herança - JavaExercícios - Herança - Java
Exercícios - Herança - Java
 
Orientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - ExercíciosOrientação a Objetos - Introdução - Exercícios
Orientação a Objetos - Introdução - Exercícios
 
Android - Integração com Facebook
Android - Integração com FacebookAndroid - Integração com Facebook
Android - Integração com Facebook
 
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, MultimidiaDesenvolvimento para Android - Acelerômetro, GPS, Multimidia
Desenvolvimento para Android - Acelerômetro, GPS, Multimidia
 
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e MenuAula 06 - Desenvolvimento de Jogos para Android - Física e Menu
Aula 06 - Desenvolvimento de Jogos para Android - Física e Menu
 
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e SomAula 05 - Desenvolvimento de Jogos para Android - Layout e Som
Aula 05 - Desenvolvimento de Jogos para Android - Layout e Som
 
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e ColisaoAula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
Aula 04 - Desenvolvendo Jogos Para Android - Pontuação e Colisao
 
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - ObstáculosAula 03 - Desenvolvendo Jogos Para Android - Obstáculos
Aula 03 - Desenvolvendo Jogos Para Android - Obstáculos
 
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do JogoAula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
Aula 02 - Desenvolvendo Jogos Para Android - Controle do Jogo
 
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do JogoAula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
Aula 01 - Desenvolvendo Jogos Para Android - Ambiente do Jogo
 
Desenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - ExercícioDesenvolvendo Jogos Para Android - Exercício
Desenvolvendo Jogos Para Android - Exercício
 
CSS 3
CSS 3CSS 3
CSS 3
 
CSS
CSSCSS
CSS
 
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
HTML -  Listas, Estilos, Tabelas, Div, Span, FormulárioHTML -  Listas, Estilos, Tabelas, Div, Span, Formulário
HTML - Listas, Estilos, Tabelas, Div, Span, Formulário
 
HTML - Introducao
HTML - Introducao HTML - Introducao
HTML - Introducao
 
Android - Google Maps
Android - Google MapsAndroid - Google Maps
Android - Google Maps
 
Android - Bluetooth
Android - BluetoothAndroid - Bluetooth
Android - Bluetooth
 
Android - Acelerometro e GPS
Android - Acelerometro e GPSAndroid - Acelerometro e GPS
Android - Acelerometro e GPS
 
Android - Consumindo Webservices
Android - Consumindo WebservicesAndroid - Consumindo Webservices
Android - Consumindo Webservices
 

Sistemas Distribuídos - Aula 10 - Exclusão mútua e Acesso à Região Crítica

  • 1. SISTEMAS DISTRIBUÍDOS EXCLUSÃO MÚTUA, COORDENAÇÃO E ACORDO ARTHUR EMANUEL DE OLIVEIRA CAROSIA 1
  • 2. EXCLUSÃO MÚTUA • Concorrência e colaboração são pontos chave em sistemas distribuídos. • Em muitos casos processos precisam acessar os mesmos recursos. • É preciso evitar que recursos fiquem corrompidos ou inconsistentes. • Garantir acesso mutuamente exclusivo a recursos por parte dos processos. 2
  • 3. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS • Para tratamento de exclusão mútua e deadlocks • Algoritmos de Ficha • Algoritmo Centralizado • Algoritmo Descentralizado • Algoritmo Distribuído • Algoritmo Token Ring   • Coordenação de acesso a regiões críticas - Algoritmos de Eleição • Algoritmo do Ditador • Algoritmo do Anel 3
  • 4. EXCLUSÃO MÚTUA Soluções baseadas em ficha •  Processos trocam mensagem especial, chamada ficha. •  Quem possuir a ficha, possui acesso ao recurso. •  Solução simples e eficaz, sem inanição ou deadlocks. •  Desvantagem quando o processo que detém a ficha falha. Soluções baseadas em permissão •  Algoritmo Centralizado •  Algoritmo Descentralizado •  Algoritmo Distribuído •  Algoritmo Token Ring 4
  • 5. ALGORITMO CENTRALIZADO • Simular exclusão mútua como é feita em sistemas centralizados. • Um processo é escolhido como coordenador. • Outros processos enviam mensagens ao coordenador declarando que recursos querem usar. 5
  • 6. ALGORITMO CENTRALIZADO • Se o recurso estiver livre o coordenador concede acesso ao recurso. • Se o recurso estiver ocupado, nega por omissão ou enviando mensagem. • Ponto falho: se o coordenador falhar todo o sistema cai. 6
  • 7. ALGORITMO CENTRALIZADO O processo 1 solicita ao coordenador permissão para acessar um recurso compartilhado. A permissão é concedida. 7
  • 8. ALGORITMO CENTRALIZADO Depois o processo 2 solicita permissão para acessar o mesmo recurso. O coordenador não responde. 8
  • 9. ALGORITMO CENTRALIZADO Quando o processo 1 libera o recurso. Informa ao coordenador , que então responde 2. 9
  • 10. ALGORITMO DESCENTRALIZADO • Um único coordenador costuma ser uma abordagem ruim. • Solução: coordenador descentralizado. • Assume-se (hipoteticamente) que cada recurso está replicado. • Cada processo coordena o acesso ao recurso. • Processo interessado no recurso deve ter m > n/2 votos concedendo acesso. • Corretude do algoritmo baseado em probabilidade de acerto. 10
  • 11. ALGORITMO DISTRIBUÍDO • Exclusão Mútua no acesso de recursos compartilhados em sistemas distribuídos • Para qualquer evento no sistema não deve haver ambiguidade sobre qual processo solicitou o recurso ocorreu primeiro. • Quando um processo quer acessar um recurso compartilhado, monta uma mensagem com: • Nome do recurso • O número do processo • Hora corrente • Depois, envia a mensagem a todos os outros processos e para ele mesmo 11
  • 12. ALGORITMO DISTRIBUÍDO Três situações podem ocorrer: • Se o receptor não estiver acessando o recurso e não quiser acessá-lo: • Devolve uma mensagem OK ao remetente. • Se o receptor já tiver acesso ao recurso: • Coloca a requisição em uma fila. • Se o receptor também quiser acessar o recurso, mas ainda não acessou: • Compara a marca de tempo da mensagem que chegou com a marca de tempo contida na mensagem que enviou para todos. • A mais baixa vence. • Se a marca de tempo da mensagem acabou de chegar for mais baixa, o receptor devolve uma mensagem OK. • Se a marca de tempo de sua própria mensagem for mais baixa, o receptor enfileira a requisição que está chegando e nada envia. 12
  • 13. ALGORITMO DISTRIBUÍDO Dois processos querem acessar um recurso compartilhado no mesmo momento. 13
  • 14. ALGORITMO DISTRIBUÍDO O processo 0 tem a marca de tempo mais baixa, portanto vence. 14
  • 15. ALGORITMO DISTRIBUÍDO Quando o processo 0 conclui, também envia uma mensagem OK, portanto, agora 2 pode seguir adiante. 15
  • 16. ALGORITMO TOKEN RING • Admite-se uma “rede de barramento” de processos sem ordenação. • Anel lógico é construído via software, cada processo é atribuído a uma posição no anel. • Não importa a ordenação, apenas que cada processo saiba qual processo vem depois dele. • Na inicialização do anel o processo 0 recebe uma “ficha”. • A “ficha” trafega pelo anel do processo “k”para o processo “k+1”. • Quando um processo adquire o token de seu vizinho, ele verifica se necessita acessar a região. 16
  • 17. ALGORITMO TOKEN RING (a) Grupo de processos não ordenados em uma rede. (b) Um anel lógico é construído em software. 17
  • 19. SINCRONIZAÇÃO EM SISTEMAS DISTRIBUÍDOS •Coordenação de acesso a regiões críticas - Algoritmos de Eleição • Algoritmo do Ditador • Algoritmo do Anel 19
  • 20. ALGORITMOS DE ELEIÇÃO • Muitos algoritmos distribuídos requerem um coordenador. • Qualquer processo pode ser escolhido, no entanto um deles precisa ser escolhido. • Premissas: • Cada processo tem um número de processo exclusivo. • Um processo por máquina. • Todo processo sabe o número de todos os outros. • Algoritmos tradicionais • Algoritmo do Ditador (ou Maioral) • Algoritmo do Anel 20
  • 21. ALGORITMO DO DITADOR Assume-se que cada processo conhece o número dos demais processos • Casa processo sabe quem é o seu sucessor. • Quando um processo P, nota que o coordenador não está respondendo, ele inicia uma eleição. 21
  • 22. ALGORITMO DO DITADOR P envia uma mensagem de ELEIÇÃO para todo processo com número maior que o seu. • Se ninguém responde o processo P vence a eleição e se torna coordenador. • Se um com número mais alto responde, P sai do processo. 22
  • 23. ALGORITMO DO DITADOR (a) O processo 4 convoca uma eleição. (b) Os processos 5 e 6 respondem e mandam 4 parar. (c) Agora cada um 5 e 6 convoca uma eleição. 23
  • 24. ALGORITMO DO DITADOR (d) Processo 6 manda 5 parar. (e) Processo 6 vence e avisa ao demais. 24
  • 25. ALGORITMO DO ANEL Diferente da maioria, este algoritmo de anel não usa ficha e considera a ordenação Quando um processo nota que não há coordenador • Processo envia mensagem “ELEIÇÃO” para sucessor (no anel) • Se PID do remetente > PID do destinatário, mensagem é passada adiante • Se PID do remetente < PID do destinatário, este passa a participar da eleição • A certa altura a mensagem volta ao último processo que entrou na disputa (maior PID), que será o novo coordenador 25
  • 27. SISTEMAS DISTRIBUÍDOS EXCLUSÃO MÚTUA, COORDENAÇÃO E ACORDO ARTHUR EMANUEL DE OLIVEIRA CAROSIA 27