SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
1
Relógio Lógico
Algoritmo de Lamport
• Objetivo: Sincronização de clocks lógicos
• Os tempos associados aos eventos não são necessariamente
próximos ao tempo real.
• Os processos não precisam estar de acordo sobre o valor
exato do tempo, mas sobre a ordem em que os eventos
ocorrem.
• Relação acontecimento-anterioridade:
– Se a e b são eventos dentro do mesmo processo e se o evento
“a” acontece antes do “b” então:
C(a) < C(b)
– Se a é o envio de uma mensagem para um processo e se b é a
recepção desta mensagem por outro processo, então devem ser
atribuídos valores a C(a) e C(b) de maneira que C(a) < C (b)
Relógio Lógico
Algoritmo de Lamport
• Os processos executam em máquinas
diferentes, cada uma com seu clock.
• Cada mensagem leva o valor do clock do
transmissor.
• Se a mensagem traz um tempo superior ao
do receptor, este adianta seu clock em uma
unidade maior que o tempo recebido.
Relógio Físico
Algoritmo Centralizado
• ALGORITMO DE CRISTIAN:
• Sistemas de tempo real: importante conhecer o tempo
real dos eventos.
• Existe um servidor de hora exata. Os clientes enviam
mensagem ao servidor perguntando o tempo corrente e
ajustam seus clocks.
• PROBLEMAS:
– Transmissor adiantado em relação ao servidor: não pode
atrasar, pois geraria inconsistências.
SOLUÇÃO: ajuste gradativo ( adiantar mais devagar).
– Tempo não nulo de comunicação entre cliente-servidor.
SOLUÇÃO: adicionar metade do tempo entre
solicitação/resposta.
Relógio Físico
Algoritmo Centralizado
• ALGORITMO DE BERKELEY:
• Servidor de tempo ativo: periodicamente consulta cada
máquina para saber o tempo corrente da cada uma.
• Cada máquina responde com seu tempo corrente.
• Baseado nas respostas, o servidor calcula o tempo
médio e informa a todas as máquinas para adiantar ou
“atrasar” ( gradativamente) seus clocks.
• Como o próprio servidor muda seu tempo,
periodicamente o operador deve ajustá-lo manualmente.
2
Relógio Físico
Algoritmo DISTRIBUÍDO
• Dividem o tempo em intervalos fixos de
“ressincronização”
• No início de cada intervalo, cada máquina envia
broadcast com seu tempo corrente.
• Como os clocks são diferentes, estas mensagens não
vão ser todas simultâneas.
• Após enviar sua mensagem, cada máquina inicia um
temporizador para receber as mensagens em broadcast
das outras máquinas ( intervalo de aceitação das
respostas).
• Cada máquina roda um algoritmo que calcula a média
dos valores de tempo de todas máquinas da rede,
descartando os m valores mais baixos e mais altos.
Exclusão Mútua
Algoritmo Distribuído
COM USO DO RELÓGIO LÓGICO
• Processo deseja entrar numa RC:
– envia mensagem para todos processos ( que deve
confirmar o recebimento), com nome da região
crítica, seu próprio número e o tempo corrente.
• Processo só entra na RC se todos processos
lhe dão permissão para executá-la.
Exclusão Mútua
Algoritmo Distribuído
COM USO DO RELÓGIO LÓGICO (cont.)
• Processo recebe mensagem de requisição a uma RC:
– Se o receptor não está executando a RC e não deseja executá-
la: envia OK de volta ao transmissor.
– Se o receptor está executando a RC: ele não responde, e
guarda a requisição em uma fila (envia OK após sair da RC).
– Se o receptor deseja entrar na RC mas não o fez: compara o
tempo da mensagem recebida com o que ele enviou (o seu). O
valor mais baixo ganha.
– Logo, se o tempo da mensagem recebida for mais baixo, o
processo envia OK ao transmissor.
– Se o tempo de sua própria mensagem (seu próprio tempo) for
menor, o receptor coloca a requisição recebida em uma fila e
não responde nada (envia OK após sair da RC).
Exclusão Mútua
Algoritmo Distribuído
COM USO DO RELÓGIO LÓGICO (cont.)
• PROBLEMAS:
– Número de mensagens por entrada :2(n-1), onde n é
o número de processos total do sistema.
– N pontos de falha: destinatário fora do ar não
responde OK.
– Solução: Cada processo responder negando ou
confirmando solicitação de permissão para entrar na
RC. Se processo não responde após N tentativas:
está fora do ar.
3
Exclusão Mútua
Algoritmo Distribuído
COM PASSAGEM DE TOKEN
• É constituído um anel lógico em software.
• Cada processo conhece qual o próximo da
sequência.
• No início, processo “0” recebe o token e envia
ao seu sucessor e assim por diante.
• Quando o processo recebe o token:
– Verifica se ele próprio está querendo entrar na RC. Se estiver,
entra na RC e após terminá-la, envia o token ao seu sucessor.
– Se não está querendo entrar na RC, passa o token para o seu
sucessor.
Algoritmos de Eleição
• Promovem eleição para escolha de um
coordenador.
• Cada processo é identificado por um número
inteiro e conhece o número de identificação de
todos os demais.
• Processo com número de identificação mais alto
é designado como coordenador.
• Todos os processos do sistema devem saber
quem é o novo coordenador ao terminar a
eleição.
Algoritmos de Eleição
Algoritmo do Mandão
• Processo P nota que o coordenador não está
respondendo: inicia uma eleição
• P inicia eleição:
– Envia mensagem indicativa de eleição a todos processos com
número de identificação superiores ao seu.
– Se nenhum processo responde, P ganha a eleição e torna-se o
novo coordenador.
– Se um ou mais processos responderem, eles passam a
controlar a eleição.
– Processo com número de identificação mais alto, ganha a
eleição e será o novo coordenador.
– Novo coordenador informa a todos os demais processos que é o
novo coordenador.
Algoritmos de Eleição
Algoritmo do Mandão
• Fig 11.13
4
0
2
7
1
3
6
5 4
0
2 1
3
6
5 4
0
2 1
3
6
5
7 7
4
0
2
7
1
3
6
5
4
0
2
7
1
3
6
5
Coordenador
Coordenador
Eleição
Eleição
Eleição
O coordenador
anterior está
fora do ar
Eleição
Eleição
Eleição
OK
OK
OK
4
Algoritmos de Eleição
Algoritmo do Anel Lógico
• Processos física ou logicamente ordenados: cada um
conhece quem é seu sucessor. Não usa token
• Processo nota que o coordenador não está
respondendo:
– Monta mensagem de convocação de eleição com seu próprio
número e envia ao seu sucessor.
– Se este estiver inativo, envia ao sucessor do mesmo e assim
por diante até encontrar um processo ativo.
– Este processo se repete novamente, até que a mensagem volte
ao processo de origem. Cada processo coloca seu número de
identificação na mensagem.
– O processo com maior número de identificação será o novo
sucessor.
– O processo de origem envia uma outra mensagem
informando o número de identificação do novo
coordenador.
Controle de Concorrência
ALGORITMO DE CONTROLE DE CONCORRENCIA
• Quando várias transações estiverem sendo executadas
simultaneamente por diferentes processos, rodando em
processadores diferentes, há a necessidade de
mecanismos para que nenhum deles interfira no
processamento do outro.
• TRAVA: bloqueio de acesso a um arquivo.
• O processo gerente de bloqueio rejeita todas as
tentativas de bloquear arquivos já bloqueados por outros
processos.
• O bloqueio de acesso a um arquivo, antes do início de
uma transação, garante que ele não vai ser modificado
no decorrer da transação.
Controle Otimista
• A transação não se preocupa com conflitos. Nenhum
objeto é bloqueado.
• No ponto de aceitação da transação (validação), o
algoritmo verifica as demais transações para ver se
algum arquivo foi modificado desde o início da
transação.
• Caso positivo, a transação é abortada. Caso
negativo, é aceita.
Deteção de Deadlocks
Algorimo Distribuído
• Processo espera por um recurso bloqueado por
outro processo: envia mensagem de sondagem
para o(s) processo(s) detentor(es) do(s)
recurso(s).
• mensagem composta por três números: No. do
processo bloqueado, No. do processo que
enviou a mensagem, No. Do processo para o
qual a mensagem está sendo enviada.
• Mensagem chega ao destino: Receptor verifica
se ele próprio está aguardando recursos de
algum processo.
5
Deteção de Deadlocks
Algorimo Distribuído
• Se estiver, atualiza a mensagem, mantendo o
primeiro campo e substituindo os demais por
seu próprio No. (origem) e pelo No. do destino.
• DEADLOCK: mensagem volta à origem (ciclo).
• DESFAZER DEADLOCK:
– Processo que iniciou sondagem comete suicídio
• PROBLEMA: dois ou mais processos poderiam suicidar-se,
sendo o problema resolvido com o suicídio de apenas um.
– Cada processo coloca seu No. no final da mensagem.
Quando a mensagem retorna ao transmissor, ele
mata o processo com No. mais alto ou o convida a
suicidar-se.
Deteção de Deadlocks
Algorimo Distribuído
0 1 2 3
4
5
6
7
8
(0, 8, 0)
(0, 2, 3)
Máquina 0 Máquina 1 Máquina 2
(0, 4, 6)
(0, 5, 7)
(0, 0,1) (0, 1, 2)
Prevenção de Deadlocks Distribuídos
Prevenção Estrutural
• Cada transação leva um carimbo indicando o momento em que a
transação se inicia.
• WAIT-DIE
– Processo está esperando por um recurso que outro processo
detém:
• Só poderão esperar os processos mais velhos (carimbo
menor do que o do processo que ele está esperando, ou
seja, que detém o recurso).
• No caso inverso (processo mais jovem espera por um
recurso que o mais velho detém), o processo mais jovem é
assassinado.
– Neste algoritmo, na cadeia de processos esperando, os
carimbos vão sempre crescer, tornando impossível a formação
de ciclos(deadlocks).
Prevenção de Deadlocks Distribuídos
Prevenção Estrutural
• WOUND-WAIT
– Só poderão esperar os processos com carimbo maior
( mais jovem) que o processo esperado. Neste caso
os carimbos decrescem ao longo da cadeia.
– Processo velho deseja recurso que pertence a um
mais jovem: O mais velho provoca preempção do
mais jovem, cuja transação é assassinada.
– Caso contrário, o processo mais jovem espera a
liberação do recurso detido pelo mais velho.

Mais conteúdo relacionado

Semelhante a Algoritmos de sincronização de relógios e controle de concorrência

Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasWendel Moreira
 
Relógios lógicos
Relógios lógicosRelógios lógicos
Relógios lógicosJunior Asj
 
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
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Seminário sobre bitcoin por prof newton licciardi
Seminário sobre bitcoin   por prof newton licciardiSeminário sobre bitcoin   por prof newton licciardi
Seminário sobre bitcoin por prof newton licciardiNewton Licciardi
 
Seminário sobre Bitcoin- Professor Newton Licciardi
Seminário sobre Bitcoin- Professor Newton LicciardiSeminário sobre Bitcoin- Professor Newton Licciardi
Seminário sobre Bitcoin- Professor Newton LicciardiNewton Licciardi
 
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
 
Aula3 escalonamento
Aula3 escalonamentoAula3 escalonamento
Aula3 escalonamentoBruno Rick
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: ProcessosAlexandre Duarte
 
Bitcoin White Paper. Artigo original traduzido para o português
Bitcoin White Paper. Artigo original traduzido para o portuguêsBitcoin White Paper. Artigo original traduzido para o português
Bitcoin White Paper. Artigo original traduzido para o portuguêsRodrigo Henrik
 
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
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threadsIsraelCunha
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2Gustavo Souza
 

Semelhante a Algoritmos de sincronização de relógios e controle de concorrência (20)

Sd07 (si) eleição
Sd07 (si)   eleiçãoSd07 (si)   eleição
Sd07 (si) eleição
 
Relógios Lógicos
Relógios LógicosRelógios Lógicos
Relógios Lógicos
 
Gerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de ConsultasGerência de Transações Distribuídas de Consultas
Gerência de Transações Distribuídas de Consultas
 
Lamport
LamportLamport
Lamport
 
Relógios lógicos
Relógios lógicosRelógios lógicos
Relógios lógicos
 
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
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Seminário sobre bitcoin por prof newton licciardi
Seminário sobre bitcoin   por prof newton licciardiSeminário sobre bitcoin   por prof newton licciardi
Seminário sobre bitcoin por prof newton licciardi
 
Rc2 camada tcp camada 4 osi
Rc2 camada tcp camada 4 osiRc2 camada tcp camada 4 osi
Rc2 camada tcp camada 4 osi
 
Bitcoin Paper (pt-BR)
Bitcoin Paper (pt-BR)Bitcoin Paper (pt-BR)
Bitcoin Paper (pt-BR)
 
Seminário sobre Bitcoin- Professor Newton Licciardi
Seminário sobre Bitcoin- Professor Newton LicciardiSeminário sobre Bitcoin- Professor Newton Licciardi
Seminário sobre Bitcoin- Professor Newton Licciardi
 
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
 
Aula3 escalonamento
Aula3 escalonamentoAula3 escalonamento
Aula3 escalonamento
 
Algoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round RobinAlgoritmo de escalonamento Fuzzy Round Robin
Algoritmo de escalonamento Fuzzy Round Robin
 
Gerência de Processos: Processos
Gerência de Processos: ProcessosGerência de Processos: Processos
Gerência de Processos: Processos
 
Bitcoin White Paper. Artigo original traduzido para o português
Bitcoin White Paper. Artigo original traduzido para o portuguêsBitcoin White Paper. Artigo original traduzido para o português
Bitcoin White Paper. Artigo original traduzido para o português
 
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
 
Algoritimo de threads
Algoritimo de threadsAlgoritimo de threads
Algoritimo de threads
 
Estudo sistemas operacionais p2
Estudo sistemas operacionais  p2Estudo sistemas operacionais  p2
Estudo sistemas operacionais p2
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 

Último

PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfdanielemarques481
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfTipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfMarcos Boaventura
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3filiperigueira1
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 

Último (7)

PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfTipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 

Algoritmos de sincronização de relógios e controle de concorrência

  • 1. 1 Relógio Lógico Algoritmo de Lamport • Objetivo: Sincronização de clocks lógicos • Os tempos associados aos eventos não são necessariamente próximos ao tempo real. • Os processos não precisam estar de acordo sobre o valor exato do tempo, mas sobre a ordem em que os eventos ocorrem. • Relação acontecimento-anterioridade: – Se a e b são eventos dentro do mesmo processo e se o evento “a” acontece antes do “b” então: C(a) < C(b) – Se a é o envio de uma mensagem para um processo e se b é a recepção desta mensagem por outro processo, então devem ser atribuídos valores a C(a) e C(b) de maneira que C(a) < C (b) Relógio Lógico Algoritmo de Lamport • Os processos executam em máquinas diferentes, cada uma com seu clock. • Cada mensagem leva o valor do clock do transmissor. • Se a mensagem traz um tempo superior ao do receptor, este adianta seu clock em uma unidade maior que o tempo recebido. Relógio Físico Algoritmo Centralizado • ALGORITMO DE CRISTIAN: • Sistemas de tempo real: importante conhecer o tempo real dos eventos. • Existe um servidor de hora exata. Os clientes enviam mensagem ao servidor perguntando o tempo corrente e ajustam seus clocks. • PROBLEMAS: – Transmissor adiantado em relação ao servidor: não pode atrasar, pois geraria inconsistências. SOLUÇÃO: ajuste gradativo ( adiantar mais devagar). – Tempo não nulo de comunicação entre cliente-servidor. SOLUÇÃO: adicionar metade do tempo entre solicitação/resposta. Relógio Físico Algoritmo Centralizado • ALGORITMO DE BERKELEY: • Servidor de tempo ativo: periodicamente consulta cada máquina para saber o tempo corrente da cada uma. • Cada máquina responde com seu tempo corrente. • Baseado nas respostas, o servidor calcula o tempo médio e informa a todas as máquinas para adiantar ou “atrasar” ( gradativamente) seus clocks. • Como o próprio servidor muda seu tempo, periodicamente o operador deve ajustá-lo manualmente.
  • 2. 2 Relógio Físico Algoritmo DISTRIBUÍDO • Dividem o tempo em intervalos fixos de “ressincronização” • No início de cada intervalo, cada máquina envia broadcast com seu tempo corrente. • Como os clocks são diferentes, estas mensagens não vão ser todas simultâneas. • Após enviar sua mensagem, cada máquina inicia um temporizador para receber as mensagens em broadcast das outras máquinas ( intervalo de aceitação das respostas). • Cada máquina roda um algoritmo que calcula a média dos valores de tempo de todas máquinas da rede, descartando os m valores mais baixos e mais altos. Exclusão Mútua Algoritmo Distribuído COM USO DO RELÓGIO LÓGICO • Processo deseja entrar numa RC: – envia mensagem para todos processos ( que deve confirmar o recebimento), com nome da região crítica, seu próprio número e o tempo corrente. • Processo só entra na RC se todos processos lhe dão permissão para executá-la. Exclusão Mútua Algoritmo Distribuído COM USO DO RELÓGIO LÓGICO (cont.) • Processo recebe mensagem de requisição a uma RC: – Se o receptor não está executando a RC e não deseja executá- la: envia OK de volta ao transmissor. – Se o receptor está executando a RC: ele não responde, e guarda a requisição em uma fila (envia OK após sair da RC). – Se o receptor deseja entrar na RC mas não o fez: compara o tempo da mensagem recebida com o que ele enviou (o seu). O valor mais baixo ganha. – Logo, se o tempo da mensagem recebida for mais baixo, o processo envia OK ao transmissor. – Se o tempo de sua própria mensagem (seu próprio tempo) for menor, o receptor coloca a requisição recebida em uma fila e não responde nada (envia OK após sair da RC). Exclusão Mútua Algoritmo Distribuído COM USO DO RELÓGIO LÓGICO (cont.) • PROBLEMAS: – Número de mensagens por entrada :2(n-1), onde n é o número de processos total do sistema. – N pontos de falha: destinatário fora do ar não responde OK. – Solução: Cada processo responder negando ou confirmando solicitação de permissão para entrar na RC. Se processo não responde após N tentativas: está fora do ar.
  • 3. 3 Exclusão Mútua Algoritmo Distribuído COM PASSAGEM DE TOKEN • É constituído um anel lógico em software. • Cada processo conhece qual o próximo da sequência. • No início, processo “0” recebe o token e envia ao seu sucessor e assim por diante. • Quando o processo recebe o token: – Verifica se ele próprio está querendo entrar na RC. Se estiver, entra na RC e após terminá-la, envia o token ao seu sucessor. – Se não está querendo entrar na RC, passa o token para o seu sucessor. Algoritmos de Eleição • Promovem eleição para escolha de um coordenador. • Cada processo é identificado por um número inteiro e conhece o número de identificação de todos os demais. • Processo com número de identificação mais alto é designado como coordenador. • Todos os processos do sistema devem saber quem é o novo coordenador ao terminar a eleição. Algoritmos de Eleição Algoritmo do Mandão • Processo P nota que o coordenador não está respondendo: inicia uma eleição • P inicia eleição: – Envia mensagem indicativa de eleição a todos processos com número de identificação superiores ao seu. – Se nenhum processo responde, P ganha a eleição e torna-se o novo coordenador. – Se um ou mais processos responderem, eles passam a controlar a eleição. – Processo com número de identificação mais alto, ganha a eleição e será o novo coordenador. – Novo coordenador informa a todos os demais processos que é o novo coordenador. Algoritmos de Eleição Algoritmo do Mandão • Fig 11.13 4 0 2 7 1 3 6 5 4 0 2 1 3 6 5 4 0 2 1 3 6 5 7 7 4 0 2 7 1 3 6 5 4 0 2 7 1 3 6 5 Coordenador Coordenador Eleição Eleição Eleição O coordenador anterior está fora do ar Eleição Eleição Eleição OK OK OK
  • 4. 4 Algoritmos de Eleição Algoritmo do Anel Lógico • Processos física ou logicamente ordenados: cada um conhece quem é seu sucessor. Não usa token • Processo nota que o coordenador não está respondendo: – Monta mensagem de convocação de eleição com seu próprio número e envia ao seu sucessor. – Se este estiver inativo, envia ao sucessor do mesmo e assim por diante até encontrar um processo ativo. – Este processo se repete novamente, até que a mensagem volte ao processo de origem. Cada processo coloca seu número de identificação na mensagem. – O processo com maior número de identificação será o novo sucessor. – O processo de origem envia uma outra mensagem informando o número de identificação do novo coordenador. Controle de Concorrência ALGORITMO DE CONTROLE DE CONCORRENCIA • Quando várias transações estiverem sendo executadas simultaneamente por diferentes processos, rodando em processadores diferentes, há a necessidade de mecanismos para que nenhum deles interfira no processamento do outro. • TRAVA: bloqueio de acesso a um arquivo. • O processo gerente de bloqueio rejeita todas as tentativas de bloquear arquivos já bloqueados por outros processos. • O bloqueio de acesso a um arquivo, antes do início de uma transação, garante que ele não vai ser modificado no decorrer da transação. Controle Otimista • A transação não se preocupa com conflitos. Nenhum objeto é bloqueado. • No ponto de aceitação da transação (validação), o algoritmo verifica as demais transações para ver se algum arquivo foi modificado desde o início da transação. • Caso positivo, a transação é abortada. Caso negativo, é aceita. Deteção de Deadlocks Algorimo Distribuído • Processo espera por um recurso bloqueado por outro processo: envia mensagem de sondagem para o(s) processo(s) detentor(es) do(s) recurso(s). • mensagem composta por três números: No. do processo bloqueado, No. do processo que enviou a mensagem, No. Do processo para o qual a mensagem está sendo enviada. • Mensagem chega ao destino: Receptor verifica se ele próprio está aguardando recursos de algum processo.
  • 5. 5 Deteção de Deadlocks Algorimo Distribuído • Se estiver, atualiza a mensagem, mantendo o primeiro campo e substituindo os demais por seu próprio No. (origem) e pelo No. do destino. • DEADLOCK: mensagem volta à origem (ciclo). • DESFAZER DEADLOCK: – Processo que iniciou sondagem comete suicídio • PROBLEMA: dois ou mais processos poderiam suicidar-se, sendo o problema resolvido com o suicídio de apenas um. – Cada processo coloca seu No. no final da mensagem. Quando a mensagem retorna ao transmissor, ele mata o processo com No. mais alto ou o convida a suicidar-se. Deteção de Deadlocks Algorimo Distribuído 0 1 2 3 4 5 6 7 8 (0, 8, 0) (0, 2, 3) Máquina 0 Máquina 1 Máquina 2 (0, 4, 6) (0, 5, 7) (0, 0,1) (0, 1, 2) Prevenção de Deadlocks Distribuídos Prevenção Estrutural • Cada transação leva um carimbo indicando o momento em que a transação se inicia. • WAIT-DIE – Processo está esperando por um recurso que outro processo detém: • Só poderão esperar os processos mais velhos (carimbo menor do que o do processo que ele está esperando, ou seja, que detém o recurso). • No caso inverso (processo mais jovem espera por um recurso que o mais velho detém), o processo mais jovem é assassinado. – Neste algoritmo, na cadeia de processos esperando, os carimbos vão sempre crescer, tornando impossível a formação de ciclos(deadlocks). Prevenção de Deadlocks Distribuídos Prevenção Estrutural • WOUND-WAIT – Só poderão esperar os processos com carimbo maior ( mais jovem) que o processo esperado. Neste caso os carimbos decrescem ao longo da cadeia. – Processo velho deseja recurso que pertence a um mais jovem: O mais velho provoca preempção do mais jovem, cuja transação é assassinada. – Caso contrário, o processo mais jovem espera a liberação do recurso detido pelo mais velho.