Algoritmos Distribuídos Professora: Lúcia Drummond

Slides:



Advertisements
Apresentações semelhantes
Semáforos Eduardo Nicola F. Zagari
Advertisements

Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Geometria Computacional Fecho Convexo II
Sistemas Operacionais
Deadlocks Professora: Lúcia Drummond. Deadlocks Recursos: hardware ou informação Preemptivo Não preemptivo Uso do Recurso: 1. Pedido (Request ou Open)
Especificação de Concorrência Professora: Lúcia Drummond.
Programação de Computadores
Instituto de Computação - UFF Drinking Philosophers Algoritmos Distribuídos Professora: Lúcia Drummond.
SISTEMAS OPERACIONAIS (SO) Aula 5 Luciana A. F. Martimiano 2002
Construção de Aplicativos Computacionais METEOROLOGIA
Algoritmos Distribuídos
Exercícios PAA- Grafos
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
Pesquisa em profundidade
9 de Março de 2006Trajectória de um Projéctil1 Pedro Barahona DI/FCT/UNL Introdução aos Computadores e à Programação 2º Semestre 2005/2006.
Programação Concorrente
Teste de Software Parte 3.
Arquitetura de Sistemas Operacionais
Monitores.
Capítulo 7: Deadlocks.
Algoritmos Distribuídos Professora: Lúcia Drummond
Instituto de Computação - UFF Detecção de Terminação Algoritmos Distribuídos Professora: Lúcia Drummond.
Algoritmos Distribuídos Professora: Lúcia Drummond
Sistemas Operacionais II
Teoremas Teorema 5.1: Para, o número máximo de candi- datos restantes no pulso s=2k no algoritmo S_Elect_Leader_C é. Prova: No pulso s=2k, por (5.3) um.
2002 LCG/UFRJ. All rights reserved. 1 Localização no Plano Claudio Esperança Paulo Roma.
Padrões GoF – Factory Method
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Aula.
Métodos de Classificação por Seleção: HeapSort
Sincronização de Processos (5)
Sincronização de Processos (3) Exercícios - Semáforos
Sincronização de Processos (6) - Troca de Mensagens -
Sincronização de Processos (2)
DeadLock Sistemas Operacionais I
ESTRUTURA DE COMUNICAÇÃO DE DADOS
Sincronização e Comunicação entre Processos
Capítulo 5 – Tanenbaum Capítulo 10,11,12 e 13 - Coulouris
Robson Godoi / Sandra Siebra
Exclusão Mútua A solução mais simples para evitar os problemas de compartilhamento é impedir que dois ou mais processos estiver acessando determinado recurso,
Aula 07 Comandos de Repetição while e for
Protocolo CMB em simulação distribuída
Unidade 3 Controle de Concorrência
OO-SC (Meyer) - Cap 121 OO-SC (MEYER) Quando o contrato é quebrado: tratamento de exceções.
Exercícios: Alg Gulosos Eduardo Laber. Cap 4-Exercício 2 a)Verdadeiro, já que trocando cada elemento pelo seu quadrado não altera a ordem das arestas.
Caminhamento em Grafos: Busca em Largura e Busca em Profundidade
Exercícios PAA- Grafos
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
Capítulo 7: Deadlocks.
O Portal do Estudante de Computação
Universidade da Beira Interior Processadores Fail-Stop Trabalho realizado por: Rui ferreira Nº Eng. Informática.
Capítulo 7: Deadlocks.
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação Programa de Pós-Graduação.
Bruna Rafaella da Costa Moura Silvana dos Santos Lima
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
1 Sincronização em Sistemas Distribuídos Alcides Calsavara.
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Computação Eletrônica
Implementação de Sincronização n Protocolos que usam busy waiting:  Difíceis de projetar, compreender e provar corretos  Complexos  Variáveis usadas.
Sistemas Operacionais
Exercícios de Fluxo em Redes
Concorrência em LF1 Paradigmas de Linguagens de Programação 20 de junho de 2006 Aline Timóteo Carlos Rodrigues Flávia Falcão Tiago Rolim.
Comunicação Interprocesso Condições de Disputa (corrida)
Sistemas Operacionais Sincronização e Comunicação Introdução Aplicações concorrentes (mecanismos de sincronização: variáveis compartilhadas e troca de.
ProgramaçãoConcorrente Glêdson Elias
Transcrição da apresentação:

Algoritmos Distribuídos Professora: Lúcia Drummond Jantar dos Filósofos Algoritmos Distribuídos Professora: Lúcia Drummond

Algoritmo Dining_Philosophers Variáveis hungryi = false; Holds_forki j = false para todo nj; Holds_turni j = false para todo nj; owes_forki j = false para todo nj; Instituto de Computação - UFF

Algoritmo Dining_Philosophers (1)Input: msgi = nil; Ação quando not hungry e necessita-se do acesso ao recurso compartilhado: hungryi := true; Envie request para todo nj tal que holds_forkij= false; Instituto de Computação - UFF

Algoritmo Dining_Philosophers Algoritmo (cont) (2)Input: msgi = request tal que origemi(msgi)=nj; Ação: if not hungryi or not holds_turnij then Begin holds_forkij:= false; if not hungryi then Envie fork(nil) para nj; else Envie fork(request) para nj; end else owes_forkij:= true; Instituto de Computação - UFF

Algoritmo Dining_Philosophers Algoritmo (cont) (3)Input: msgi = fork(t) tal que origemi(msgi)=nj; Ação: holds_forkij:= true; if t = turn then holds_turnij:= true; if t = request then owes_forkij:= true; Instituto de Computação - UFF

Algoritmo Dining_Philosophers Algoritmo (cont) if holds_forkij para todo nk ∈ Neigi then begin acessa recursos compartilhados; hungryi := false; for all nk ∈ Neigi do if holds_turnik then holds_turnik:= false; if owes_forkik then Instituto de Computação - UFF

Algoritmo Dining_Philosophers Algoritmo (cont) begin owes_forkik:= false; holds_forkik:= false; Envie fork(turn) para nk; end else Envie turn para nk; Instituto de Computação - UFF

Algoritmo Dining_Philosophers Algoritmo (cont) (4)Input: msgi = turn tal que origemi(msgi)=nj; Ação: holds_turnij:= true; Instituto de Computação - UFF

Instituto de Computação - UFF Teoremas Teorema: O algoritmo assegura exclusão mútua no acesso ao recurso compartilhado e além disso está livre de deadlock e livre de starvation. Prova: Por 3, um nó somente acessa os recursos compartilhados se este possui os garfos correspondentes a todas as tarefas incidentes a ele. Por 2 e 3, somente um entre dois vizinhos pode pegar o garfo que eles compartilham em qualquer estado global, e por isso dois vizinhos nunca acessam recursos compartilhados concorrentemente. Instituto de Computação - UFF

Instituto de Computação - UFF Teoremas Prova (cont): Como nós que não são vizinhos nunca compartilham recursos, a exclusão mútua é garantida. A orientação de G é sempre acíclica, e então G sempre tem no mínimo um sink. Sinks são nós que possuem os turns correspondentes a todas as arestas incidentes a eles, e então por 1 e 2 devem adquirir todos os garfos que eles não possuem dentro de um tempo finito. Assim, o deadlock não é possível. Instituto de Computação - UFF

Instituto de Computação - UFF Teoremas Prova (cont): A um nó que não é um sink mas executa 1 a fim de acessar os recursos compartilhados também é assegurado acessar todos os garfos necessários dentro de um tempo finito e então starvation não ocorre. Esta conclusão se baseia no fato de que ou um nó adquire todos os garfos porque seus vizinhos que possuem a vez não precisam acessar os recursos compartilhados (por 2 e 3), ou porque ele eventualmente adquire todos os turns (por 3 e 4) e então os garfos como uma consequência da aciclicidade das orientações de G. Instituto de Computação - UFF

O(número máximo de vizinhos) Complexidades O número de mensagens que precisa ser trocado por acesso aos recursos compartilhados pode ser calculado da seguinte forma: O nó deve enviar mensagens de request para todos os vizinhos. Pode acontecer que ni não possua nenhum turn e os pedidos que este envia encontram nós que não precisam acessar os recursos compartilhados e então enviam ni garfos. A complexidade de mensagem é: O(número máximo de vizinhos) Instituto de Computação - UFF

Instituto de Computação - UFF Complexidades A complexidade de tempo por acesso a recurso compartilhado está relacionada a maior cadeia de mensagens iniciando com o envio de requests por um nó e terminando com a recepção por esse por esse nó da última mensagem de fork que ele espera. Tal cadeia ocorre para um nó que é uma fonte na orientação acíclica, quando todos os nós requerem acesso a recursos compartilhados. Instituto de Computação - UFF

a complexidade de tempo é O(n). Complexidades Neste caso, a distância direta deste nó aos sinks pode ser tão grande quanto n-1 e então: a complexidade de tempo é O(n). Instituto de Computação - UFF