Detalhes bibliográficos
Ano de defesa: |
2017 |
Autor(a) principal: |
Perez, Taciano Dreckmann
 |
Orientador(a): |
De Rose, César Augusto Fonticielha
 |
Banca de defesa: |
Não Informado pela instituição |
Tipo de documento: |
Tese
|
Tipo de acesso: |
Acesso aberto |
Idioma: |
eng |
Instituição de defesa: |
Pontifícia Universidade Católica do Rio Grande do Sul
|
Programa de Pós-Graduação: |
Programa de Pós-Graduação em Ciência da Computação
|
Departamento: |
Faculdade de Informática
|
País: |
Brasil
|
Palavras-chave em Português: |
|
Palavras-chave em Inglês: |
|
Área do conhecimento CNPq: |
|
Link de acesso: |
http://tede2.pucrs.br/tede2/handle/tede/7562
|
Resumo: |
Sistemas computacionais da atualidade tradicionalmente separam memória e armazenamento. Linguagens de programação tipicamente refletem essa distinção usando diferentes representações para dados em memória (ex. estruturas de dados, objetos) e armazenamento (ex. arquivos, bancos de dados). A movimentação de dados entre esses dois níveis e representações, bidirecionalmente, compromete tanto a eficiência do programador quanto de execução dos programas. Tecnologias recentes de memoria não-volátil, tais como memória de transição de fase, resistiva e magnetoresistiva, possibilitam combinar memória principal e armazenamento em uma única entidade de memória persistente, abrindo caminho para abstrações mais eficientes para lidar com persistência de dados. Essa tese de doutorado introduz uma abordagem de projeto para o ambiente de execução de linguagens com gerência automática de memória, baseado numa combinação original de persistência ortogonal, programação para memória persistente, persistência por alcance, e transações com atomicidade em caso de falha. Esta abordagem pode melhorar significativamente a produtividade do programador e a eficiência de execução dos programas, uma vez que estruturas de dados em memória passam a ser persistentes de forma transparente, sem a necessidade de programar explicitamente o armazenamento, e removendo a necessidade de cruzar fronteiras semânticas. De forma a validar e demonstrar a abordagem proposta, esse trabalho também apresenta JaphaVM, a primeira Máquina Virtual Java especificamente projetada para memória persistente. Resultados experimentais usando benchmarks e aplicações reais demonstram que a JaphaVM, na maioria dos casos, executa as mesmas operações cerca de uma a duas ordens de magnitude mais rapidamente do que implementações equivalentes usando bancos de dados ou arquivos, e, ao mesmo tempo, requer significativamente menos linhas de código. |