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.

Slides:



Advertisements
Apresentações semelhantes
Presenter’s Notes Some Background on the Barber Paradox
Advertisements

TADs Vector, Lista e Sequência
Chapter Six Pipelining
Instituto de Computação - UFF Drinking Philosophers Algoritmos Distribuídos Professora: Lúcia Drummond.
Presente Contínuo Prof.:Marina Inglês.
ADT – Arvore Binária de Pesquisa
The indefinite Pronouns
Projeto de Sistemas de Software Luana Lachtermacher
Java RMI Alcides Calsavara. Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância.
Listas Encadeadas Circulares Listas Duplamente Encadeadas
Listas Encadeadas Circulares Listas Duplamente Encadeadas
Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
Silberschatz and Galvin Operating System Concepts Unidade 6: Sincronização de Processos Contexto O problema da seção crítica Hardware para sincronização.
Ronaldo Celso Messias Correia
Sincronização de Processos (7) - Problemas Clássicos -
Sistemas Operacionais
Fundamentos da teoria dos semicondutores Faixas de energia no cristal semicondutor. Estatística de portadores em equilíbrio. Transporte de portadores.
FORTRAN 90 Denise Yumi Takamura.
Transações.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker.
Classes Internas e Anônimas
GT Processo Eletrônico SG Documentos Eletrônicos Segunda reunião – 28/08/2009 Interlegis.
Estudo Certificação Java
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Programação Concorrente com Thread Java
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.
Because we were commissioned toGo…make disciples World Evangelism Fund Offering(date)
Juliane Roitmam Renata Roberto
Conquista do Paraíso Conquest of Paradise Cantado por:Dana Winner Cantado por: Dana Winner.
HOW CAN I GO ON COMO POSSO CONTINUAR. This away Desta maneira When all the salt É como se todo o sal Is taken from the sea Fosse retirado do mar.
So this is Christmas Então já é Natal And what have you done E o que você tem feito Another year over Um outro ano se encerra And new one just begun.
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.
OER LIFE CYCLE Andrew Moore and Tessa Welch.
Tópicos Especiais em Aprendizagem Reinaldo Bianchi Centro Universitário da FEI 2012.
Fazendo e Brincando: Confecção de Materiais para as Aulas de Inglês
Controle de Concorrência
Locks.
Controle de Concorrência
Threads, Gerenciamento de Threads Pool de Threads, Grupo de Threads Variáveis Locais à Threads.
JAVA MULTITHREADING TECHNIQUES
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
Thresholding, Otsu Trabalho 2 - CG.
Java em Redes de Computadores
Clique com o mouse para avançar e acompanhando a letra da música Freddie Mercury.
Lecture 2 Properties of Fluids Units and Dimensions 1.
Análise Sintática – Parte 1
Scala Bruno Barros e Rebeka Gomes
Introdução à Criptografia Moderna – 2ª Lista de Exercícios
Where English is Fun!!!... Onde o Inglês é divertido!!! Escola Internacional de Linguas BRAVOwww.bravoecole.com.br Brasilia - DF THE FUN CLUB.
WELCOME TO MY WORLD (Bem-Vinda Ao Meu Mundo) WELCOME TO MY WORLD (Bem-Vinda Ao Meu Mundo)
Kiss and Say Goodbye Barry White This is got to be the saddest day of my life Esse vai ser o dia mais triste de minha vida I called you here today for.
Boy Meets Girl Waiting for a star to fall I hear your name whispered on the Wind Eu ouço o seu nome sussurrado no vento It’s a sound that makes me.
Aceitacao Acceptance. Aceita a vida que Deus te deu. Accept the life God gave you.
Nunca se diga inútil nos mecanismos da vida. Never say you are worthless in the mechanisms of life.
Prof Afonso Ferreira Miguel
Equação da Continuidade e Equação de Navier-Stokes
Tipos Especiais de Listas
Alisson Rafael Appio SOP aplicado em um jogo tipo de corrida usando a arquitetura cliente e servidor Alisson Rafael Appio
RELATÓRIO CEMEC 06 COMPARAÇÕES INTERNACIONAIS Novembro 2013.
Aula Teórica 18 & 19 Adimensionalização. Nº de Reynolds e Nº de Froude. Teorema dos PI’s , Diagrama de Moody, Equação de Bernoulli Generalizada e Coeficientes.
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 2: Otimizando a modelagem para documentação Tiago Marçal Ricotta Gerente.
Smile Nat King Cole Rolagem automática.
VOCÊ JÁ FALA INGLÊS FLUENTEMENTE?
Controle de Concorrência Locks. Conceito de Transação Transações podem ser vistas como um grupo de operações combinadas em uma unidade lógica de trabalho.
Transações Concorrentes
Rick Astley Cry for help She’s taken my time. Ela tem tomado o meu tempo Convince me she’s fine. Me convencendo de que está bem But when she leaves.
Catarina Braga 2º ano – Turma D Este jogo joga-se com, pelo menos, 5 crianças. As criança colocam-se nos quatro cantos de um quadrado e uma fica a.
Subway Network - São Paulo City
Three analogies to explain reactive power Why an analogy? Reactive power is an essential aspect of the electricity system, but one that is difficult to.
Transcrição da apresentaçã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 os dados compartilhados sejam equivalentes serialmente.

Locks Um exemplo simples de mecanismos para disposição em série é o caso de locks (travas) exclusivos. Nesse esquema, um servidor tenta impedir o acesso (travar) a qualquer objeto que esteja para ser usado por qualquer operação de uma thread (ou transação) de um cliente do servidor.

Locks Se um cliente solicitar acesso a um objeto que já está bloqueado (travado) devido a uma thread de outro cliente, o pedido será suspenso e o cliente deverá esperar até que o objeto seja destravado.

Locks A implementação de locks pode ser feita para que o funcionamento dos locks (travas) para bloqueio, sejam implementados por um objeto em separado num servidor, que chamamos de gerenciador de locks (travas).

Locks O gerenciador de locks (travas) mantém um conjunto de locks (por exemplo, numa tabela hashing). Cada lock (trava) é uma instância da classe Lock e é associado a um objeto (uma conta bancária, por exemplo) em particular.

Locks Os métodos de Lock são sincronizados para que as threads (transações) que estão tentando adquirir (método aquire, que usa wait) ou liberar (método release, que usa notify) uma trava, não interfiram umas com as outras.

Locks Tentativas de adquirir a trava usam o método wait quando precisam esperar que outra thread a libere. Todos os pedidos para obter travas (locks) e liberá-las em nomes de threads (transações) são enviadas para uma instância do gerenciador de travas (class LockManager).

Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012 Figure LockManager class public class LockManager { private Hashtable theLocks; public void setLock(Object object, TransID trans, LockType lockType){ Lock foundLock; synchronized(this){ // find the lock associated with object // if there isnt one, create it and add to the hashtable } foundLock.acquire(trans, lockType); } // synchronize this one because we want to remove all entries public synchronized void unLock(TransID trans) { Enumeration e = theLocks.elements(); while(e.hasMoreElements()){ Lock aLock = (Lock)(e.nextElement()); if(/* trans is a holder of this lock*/ ) aLock.release(trans); }

Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012 Figure Lock class public class Lock { private Object object;// the object being protected by the lock private Vector holders; // the TIDs of current holders private LockType lockType; // the current type public synchronized void acquire(TransID trans, LockType aLockType ){ while(/*another transaction holds the lock in conflicing mode*/) { try { wait(); }catch ( InterruptedException e){/*...*/ } } if(holders.isEmpty()) { // no TIDs hold lock holders.addElement(trans); lockType = aLockType; } else if(/*another transaction holds the lock, share it*/ ) ){ if(/* this transaction not a holder*/) holders.addElement(trans); } else if (/* this transaction is a holder but needs a more exclusive lock*/) lockType.promote(); } Continues on next slide

Instructors Guide for Coulouris, Dollimore, Kindberg and Blair, Distributed Systems: Concepts and Design Edn. 5 © Pearson Education 2012 Figure Lock class continued public synchronized void release(TransID trans ){ holders.removeElement(trans); // remove this holder // set locktype to none notifyAll(); }