Memórias Transacionais

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Desempenho da Computação Paralela em Ambientes Virtualizados
Checkpoint SGBD com alta demanda de transações Checkpoint
Tópicos em System-Level
Recuperação Como garantir a integridade da informação, em caso de avarias de HW ou SW forma de suportar a reposição de um estado consistente da informação.
Bloqueios partilhados
Gestão de transacções noções básicas modelo simples modelo elaborado
Transações Atômicas Distribuídas
Transações Atômicas Distribuídas
Cap Recuperação Pretende garantir a atomicidade e durabilidade das transações. Atomicidade => É responsabilidade do gerente de recuperação voltar.
Arquitetura de Sistemas Operacionais
Sumário 1 SQL Embutida 2 Processamento de Consultas
Conceitos de Programação Paralela - 2
Problemas com Threads MO801/MC972. Muitas threads Se algumas threads ajudam o programa, muitas threads devem ajudar mais –Certo? O overhead de escalonamento.
Arquiteturas Superescalares
Técnicas de Predição de Desvios
Aproveitamento do Processador
Chapter 4: Threads.
Sistemas Operacionais
Controle de Concorrência em Sistemas Distribuídos
Fundamentals of Database Processing
Editores Colaborativos
Processos Conceitos Básicos.
Claudio de Oliveira – Thread 09/03/10 20:13 Claudio de Oliveira –
Threads.
RECUPERAÇÃO APÓS FALHA
Sistemas Operacionais
2- Entendendo o que é Arquitetura e Organização
REDUNDÂNCIA POR SOFTWARE
Gerenciamento de Transações - Introdução
Unidade 1-1 Processos e Threads
SISTEMAS OPERACIONAIS
CUDA vs OpenCL Introdução.
Linguagem de Programação IV
Tópicos em redes e sistemas distribuídos
Controle de Concorrência em Transações Álvaro Vinícius de Souza Coêlho
Sistema Operacional Processos
Concorrência entre Threads Java
Gerencia de Redes Redes de Computadores II
Conteúdo 1. Introdução Threads 2. Ambiente Monothread 3. Ambiente Multithread 4. Arquitetura e Implementação 5. Modelos de Programação.
Unidade 2 - Parte 1 Programação Concorrente
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
Processadores Multicore
PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.
Transações Atômicas Distribuídas Prof. Alcides Calsavara
Controle de concorrência
Sistemas Operacionais
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
Sistemas Operacionais
Unidade Central De Processamento: Processador
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Processos.
Transações Concorrentes
SISTEMAS DISTRIBUÍDOS Transações Atômicas
SISTEMAS OPERACIONAIS I
Troca de Mensagens Programação concorrente
Network Virtualization: Breaking the Performance Barrier Departamento de Eletrônica – Escola Politécnica Programa de Engenharia Elétrica – COPPE Rafael.
Sistemas Operacionais
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Um alternativa para o armazenamento
Controle de Concorrência
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Projeto e Implementação de Sistemas de Arquivos
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Hierarquia de Memória – Parte 2 Prof. André Luis M. Silva
Bruna Cavallero Martins Universidade Católica de Pelotas.
Transcrição da apresentação:

Memórias Transacionais Izumi Oniki Chiquito Rafael Auler

Motivação Redução do período de clock melhora o desempenho, mas também aumenta a dissipação de energia Surgimento de sistemas multi-core Necessidade de executar trechos de código simultaneamente (paralelismo)

Motivação Modelo multi-thread  uso de bloqueios (locks) Difícil composabilidade Programador pode gerar longos trechos seriais que prejudicam desempenho paralelo Instabilidades Deadlocks Convoying Inversão de prioridade

Motivação Memória transacional (transactional memory – TM) como alternativa de programação concorrente Utiliza o conceito de transações Detecta conflitos e verifica necessidade de re-executar trechos de código Composabilidade Responsabilidade de sincronização é completamente do sistema

Conceitos Básicos Transação: uma seqüência de instruções que impõe modificações no sistema baseada no estado atual Isolamento (seriabilidade) Atomicidade Resultados: Commit ou Abort

Interface programador-sistema de memória transacional Bloco atômico bool mutexX, mutexY; exemploLock (x, y) { lock(mutexX); lock(mutexY); x = x + y; y = 0; unlock(mutexX); unlock(mutexY); } exemploAtomic (x, y) { atomic { x = x + y; y = 0; }

Interface programador-sistema de memória transacional Retry orElse atomic { if (tamanhoFila > 0) fila.remover(); else retry; } atomic { { filaPref.atender(); } orElse { filaRegular.atender(); } }

Desafios de Implementação Versionamento de dados Versionamento adiantado undo log Versionamento tardio (atrasado) buffer local Detecção de conflito Detecção adiantada Detecção tardia

Desafios de Implementação Detecção de conflito adiantada Pessimista Problema em potencial: livelock Escreve X Lê X T1 T2 T2 aguarda para verificar se T1 irá efetivar ou abortar Lê X Escreve X T1 T2 reinicia efetivação

Desafios de Implementação Detecção de conflito atrasada Problema em potencial: starvation Escreve X Lê X T1 T2 efetivação reinicia

Desafios de Implementação Aninhamento de transações Flattening Aninhamento fechado (closed nesting) Dados separados para cada transação Aninhamento aberto (open nesting)

Modelos de Memória Transacional Hardware transaction memory (HTM) Software transaction memory (STM) Modelos híbridos

Memória Transacional de Herlihy e Moss (HMTM) 1993 Memória transacional deve ser rápida  apoio do hardware Alterar a arquitetura do processador para incluir novas instruções Cache transacional Transações não são explicitamente definidas Resolução de conflitos adiantada e versionamento tardio Limitações de recursos transacionais e tempo de vida das transações (trocas de contexto)

Software Transactional Memory (STM) 1997 – Shavit e Toitou Eliminação dos problemas relacionados à falta de recursos do hardware ou troca de contexto Possibilidade de melhor explorar a semântica de programação Portabilidade Exigência cara: transações estáticas

Unbounded Transactional Memory (UTM) 2005 Desempenho do hardware, eliminando restrições do HMTM Utópico  exige muitas modificações na arquitetura Virtualização do tempo e do espaço Detecção de conflitos adiantada, versionamento adiantado e flattening

Large Transaction Memory (LTM) 2005 Modelo menos exigente Não virtualiza o tempo Não permite troca de transações entre processadores Versionamento tardio

Virtual Transaction Memory (VTM) 2005 Abordagem semelhante a UTM Virtualização do espaço e do tempo Versionamento tardio

LogTM 2006 Exemplo de bom desempenho em versionamento adiantado Ponteiro para log das modificações Escritas diretas na memória comum Software responsável pela recuperação Duas versões Flat LogTM Nested LogTM Suporte a aninhamento aberto e fechado

Desempenho igual ou superior a VTM e modelos mais flexíveis Unbounded Page-Based Transactional Memory (PTM) Extended Transactional Memory (XTM) 2006 Alocação de páginas na memória, aproveitando a memória virtual, quando atingida a limitação do hardware Desempenho igual ou superior a VTM e modelos mais flexíveis Virtualização de aninhamento XTM adota versionamento e detecção de conflitos tardios PTM adota o oposto ou uma abordagem híbrida quanto ao versionamento

Memória Transacional Híbrida Combinam HTM e STM Estratégia geral: Executar transações em hardware  maior velocidade Reiniciar transações em software  combate problema da falta de recursos

Resumo Paralelismo/Programação concorrente Uso de transações Abstração de programação Dificuldades de implementação Modelos de memórias transacionais

Conclusão Uso de transações para resolver problemas de concorrência é eficiente A abstração facilita a programação Memórias transacionais prometem ao software o melhor aproveitamento dos processadores de vários núcleos Importante área de pesquisa