SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
 
Proteção e segurança do Sistema Operacional
Proteção e segurança do Sistema OperacionalProteção e segurança do Sistema Operacional
Proteção e segurança do Sistema OperacionalAmanda Luz
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Leinylson Fontinele
 
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
 
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
 
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
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaVictor Hazin da Rocha
 
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 - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoAdriano Teixeira de Souza
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoLuciano Almeida
 
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
 
Algoritmo de servidor centralizado
Algoritmo de servidor centralizadoAlgoritmo de servidor centralizado
Algoritmo de servidor centralizadostevencueva3
 

Tendances (20)

Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosSistemas Operacionais - Aula 4 - Revisão e Exercícios
Sistemas Operacionais - Aula 4 - Revisão e Exercícios
 
Proteção e segurança do Sistema Operacional
Proteção e segurança do Sistema OperacionalProteção e segurança do Sistema Operacional
Proteção e segurança do Sistema Operacional
 
Algoritmo de Anillo
Algoritmo de AnilloAlgoritmo de Anillo
Algoritmo de Anillo
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)Sistemas Operacionais - Aula 9 (Gerencia do Processador)
Sistemas Operacionais - Aula 9 (Gerencia do Processador)
 
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
 
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
 
Modelo paso de mensajes
Modelo paso de mensajesModelo paso de mensajes
Modelo paso de mensajes
 
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
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação Indireta
 
Sistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids ComputacionaisSistemas Distribuídos - Grids Computacionais
Sistemas Distribuídos - Grids Computacionais
 
Vantagens__Desvantagens_Tipos_de_servidores
Vantagens__Desvantagens_Tipos_de_servidoresVantagens__Desvantagens_Tipos_de_servidores
Vantagens__Desvantagens_Tipos_de_servidores
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Análise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contextoAnálise estruturada de sistemas - Modelo de contexto
Análise estruturada de sistemas - Modelo de contexto
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
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
 
Algoritmo de servidor centralizado
Algoritmo de servidor centralizadoAlgoritmo de servidor centralizado
Algoritmo de servidor centralizado
 

En vedette

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

En vedette (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 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
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 - 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
 
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 - 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
 

Similaire à 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
 
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
 

Similaire à 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
 
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)
 
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
 

Plus de 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
 

Plus de 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