SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasAlex Camargo
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Críticacamila_seixas
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Cristiano Pires Martins
 
Análise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasAnálise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasDiego Marek
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidoresMarco Guimarães
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01thomasdacosta
 
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Leinylson Fontinele
 
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
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processosComputação Depressão
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: ThreadsAlexandre Duarte
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
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
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Leinylson Fontinele
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 

Was ist angesagt? (20)

Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normas
 
Aula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região CríticaAula 10 - Exclusão Mútua e Região Crítica
Aula 10 - Exclusão Mútua e Região Crítica
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Análise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasAnálise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemas
 
222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores222097384 aulas-de-rede-tipos-de-servidores
222097384 aulas-de-rede-tipos-de-servidores
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01
 
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
 
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
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos
 
Aula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem JavaAula 2 - POO: Fundamentos da linguagem Java
Aula 2 - POO: Fundamentos da linguagem Java
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: Threads
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
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)
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
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
 
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
Sistemas Operacionais - Aula 01 (Conceitos básicos de so)
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 

Andere mochten auch

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
 
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
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuídoTiago R. Sampaio
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur 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 - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketAdriano Teixeira de Souza
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Arthur Emanuel
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Arthur 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
 
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
 

Andere mochten auch (20)

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
 
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
 
Sincronização de um sistema distribuído
Sincronização de um sistema distribuídoSincronização de um sistema distribuído
Sincronização de um sistema distribuído
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
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 - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - SocketSistemas Distribuídos - Comunicação Distribuída - Socket
Sistemas Distribuídos - Comunicação Distribuída - Socket
 
Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00Sistemas Distribuídos - Aula 00
Sistemas Distribuídos - Aula 00
 
Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01Sistemas Distribuídos - Aula 01
Sistemas Distribuídos - Aula 01
 
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
 
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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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