Instituto de Computação - UFF Drinking Philosophers Algoritmos Distribuídos Professora: Lúcia Drummond.

Slides:



Advertisements
Apresentações semelhantes
Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,
Advertisements

Array aggregates type columns is range 1 to 4; type row is array (columns) of std_logic; variable r1 : row := ('1', '0', '1', '1'); variable r2 : row :=
ADT – Arvore Binária de Pesquisa
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais.
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais.
Adaptado de material da profa. Maria Aparecida Livi
Algoritmos Distribuídos Professora: Lúcia Drummond
Instituto de Computação - UFF Detecção de Terminação Algoritmos Distribuídos Professora: Lúcia Drummond.
While While Condição // comandos End While. Exemplos While Var contador As Integer contador = 0 While (contador < 10) contador += 1 console.ConsoleWrite(contador)
Algoritmos Distribuídos Professora: Lúcia Drummond
Algoritmos Distribuídos Professora: Lúcia Drummond
2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
Silberschatz and Galvin Operating System Concepts Unidade 6: Sincronização de Processos Contexto O problema da seção crítica Hardware para sincronização.
Library IEEE; use ieee.std_logic_1164.all; use IEEE.std_logic_arith.all;
GRAFOS. Motivação Muitas aplicações em computação necessitam considerar conjunto de conexões entre pares de objetos: –Existe um caminho para ir de um.
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
SISTEMA BINÁRIO Hardware de Computadores. SISTEMA BINÁRIO Hardware de Computadores.
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
SQL Procedural Junho/2006.
Funções de Linha 24/04/06. Funções de Linha Gerar ou construir novo valor não existente na tabela inicial. Valor construído a partir de dados de uma ou.
Sintaxe de Fortran 25/abril/2006. Comandos Fortran PROGRAM PRINT READ STOP END.
Introdução ao Fortran 4/abril/2006. Pseudocódigo Compreensão do problema Elaboração da lógica de resolução Tradução da lógica para pseudocódigo.
Algoritmos com laços (ou seja, com conjuntos de instruções que devem ser executados repetidas vezes)
Teste Estrutural de Software
Protocolos Criptográficos. Múltiplas chaves em RSA Para RSA, escolhe-se dois números, e e d, tal que e. d = 1 mod (p-1).(q-1) Entretanto, também pode-se.
Processamento de Imagens
Geração de Código Otimizações independentes de máquina.
Geração de Código Algoritmo de Escalonamento de instruções – List Scheduling.
Problema do percurso mínimo
Capitulo 3 Técnicas de Diagnóstico CT-282 Tutores Inteligentes Diego Ajukas.
Técnicas de Diagnóstico. Objetivo Caracterizar técnicas de diagnóstico para o modelo do estudante Caracterizar técnicas de diagnóstico para o modelo do.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo III Comandos de Controle.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo XI Encadeamento de Estruturas por Ponteiros.
Capítulo V Análise Sintática
Função Gráficos. Domínio e imagem no gráfico.
Modelos de Iluminação Daniel Lemos. Definição MODELOS DE ILUMINAÇÃO são técnicas usadas para calcular a intensidade da cor de um ponto a ser exibido.
Curso Técnico em Informática La Salle - Canoas
Hoje é domingo, 30 de março de 2014domingo, 30 de março de 2014domingo, 30 de março de 2014domingo, 30 de março de 2014domingo, 30 de março de 2014domingo,
5W1H.
A Molécula isolada + excipientes B Molécula modificada a partir da molécula natural Como a molécula é isolada, apenas é patenteável na forma de uma composição.
EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 5a série de slides Versão 26/04/2012.
ALOCAÇÃO DINÂMICA DE MEMÓRIA
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
INPE / CAP-334 Celso L. Mendes Aula 4-D(1) Reestruturação de Programas em Sistemas Vetoriais (II) Tópicos: Suporte à Paralelização Vetorização.
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
Transporte Escolar Fluvial
Estruturas de Controlo em Pascal
Imagine there's no heaven Imagine não existir paraíso It's easy if you try É fácil se você tentar No hell below us Nenhum inferno abaixo de nós Above.
Exercícios de revisão.
Sincronização com Locks. Locks É um mecanismo de sincronização de processos/threads em que estas devem ser programadas de modo que seus efeitos sobre.
Funções Declaração function nomedafunção (arg_1, arg_2,..., arg_n) corpoDaFunção end.
WEKA. Roteiro Introdução Conceitos Exemplos práticos Chamada ao aplicativo.
Var a: tPtNo; begin { corpo principal } PercPreOrdem(a);... a Visão esquemática da memória.
Listas duplamente encadeadas Estrutura: tDado = integer; { ou real, char, etc.} tPtNo = ^tNo; tNo = record Ant: tPtNo Dado: tDado; Prox: tPtNo; end; var.
Procedure PercPreOrdem(a: tPtNo); var q: tPtNo; P: tPilha; begin Inicializa(P); Empilhar(P,a); while not PilhaVazia(P) do begin q:= Topo(P); Desempilhar(P);
O Portal do Estudante de Computação
Análise Sintática – Parte 1
Mergesort Katia Guimarães.
Funções ou procedures Professor Esp. Diego André Sant’Ana
RT-EXPERT Artis Corp. C calling program RTSUB [rule set subroutine] RTSUB [rule set subroutine] RTSUB [rule set subroutine]... DSL Decision Support Language.
Finite State Process 1° Exercício – Controle de Estacionamento (carpark)- Um controlador é necessários para carpark, que só permite a entrada de carros.
Computação Eletrônica
Expressões Lógicas e Comandos de Decisão
Transcrição da apresentação:

Instituto de Computação - UFF Drinking Philosophers Algoritmos Distribuídos Professora: Lúcia Drummond

Instituto de Computação - UFF 2 Drinking Philosophers Os nós podem acessar diferentes subconjuntos de recursos sempre que eles exigem acesso a recursos compartilhados, então passa a existir a possibilidade de que vizinhos em G acessem recursos compartilhados concorrentemente. A técnica de empregar um único garfo por aresta para assegurar acesso exclusivo aos recursos que dois vizinhos compartilham não é mais suficiente.

Instituto de Computação - UFF 3 Drinking Philosophers Ao invés disso, associado com todas as arestas deve existir um objeto para cada recurso que os correspondentes vizinhos compartilham. Tais objetos são garrafas.

Instituto de Computação - UFF 4 Algoritmo Drinking _Philosophers Variáveis thirsty i = false; holds_bottle i jk = false para todo n j Neig i e todo b k B i j ; holds_turn i j = false para todo n j Neig i ; owes_bottle i jk = false para todo n j Neig i e todo b k B i j ; needs_bottle i jk = false para todo n j Neig i e todo b k B i j ; X i =0; Y i =0;

Instituto de Computação - UFF 5 Algoritmo Drinking _Philosophers Algoritmo (1)Input: msg i = nil; Ação quando not thirsty e necessita-se do acesso ao recurso compartilhado: thirsty i := true; needs_bottle i jk := true para todo n j Neig i e todo b k B i j tal que acesso ao recurso que b k representa é necessário;

Instituto de Computação - UFF 6 Algoritmo Drinking _Philosophers para todo n j Neig i tal que existe b k B i j com needs_bootle i jk =true e holds_bottle i jk =false do begin Seja X i o subconjuntos de B i j tal que b k X i se e somente se needs_bottle i jk =true e holds_bottle i jk =false; Envie request(X i ) para todo n j ; X i; =0; end

Instituto de Computação - UFF 7 Algoritmo Drinking _Philosophers Algoritmo (cont) (2)Input: msg i = request(X) tal que origem i (msg i )=n j ; Ação: para todo b k X do if not thirsty i or not holds_turn i j or not needs_bottle i jk then begin holds_bottle i jk :=false; X i :=X i {b k }; if thirsty and needs_bottle i jk then Y i :=Y i {b k }; end

Instituto de Computação - UFF 8 Algoritmo Drinking _Philosophers else owes_bottle i jk :=true; if X i 0 then begin if Y i = 0 then Envie bottle(X i,nil) para n j ; else begin Envie bottle(X i,request(Y i )) para n j; Y i :=0; end X i :=0; end

Instituto de Computação - UFF 9 Algoritmo Drinking _Philosophers Algoritmo (cont) (3)Input: msg i = bottle(X,t) tal que origem i (msg i )=n j ; Ação: holds_bottle i jk := true para todo b k X; if t = turn then holds_turn i j := true; if t = request(Y) then owes_bottle i jk :=true para todo b k Y; if holds_bottle i kl para todo n k Neig i e todo b l B i k then

Instituto de Computação - UFF 10 Algoritmo Drinking _Philosophers begin acessa recursos compartilhados; thirsty i :=false; para todo n k Neig i do if holds_turn i k then begin holds_turn i k :=false; para todo b l B i k do if owes_bottle i kl then begin owes_bottle i kl :=false; holds_bottle i kl :=false; X i :=X i {b l }; end

Instituto de Computação - UFF 11 Algoritmo Drinking _Philosophers if X i 0 then begin Envie bottle(X i,turn) para n k ; X i :=0; end else Envie turn para n k ; end

Instituto de Computação - UFF 12 Algoritmo Drinking _Philosophers Algoritmo (cont) (4)Input: msg i = turn tal que origem i (msg i )=n j ; Ação: holds_turn i j := true;