Please use this identifier to cite or link to this item: https://hdl.handle.net/10923/10721
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorDe Rose, César Augusto Fonticielha
dc.contributor.authorPerez, Taciano Dreckmann
dc.date.accessioned2017-09-27T12:05:52Z-
dc.date.available2017-09-27T12:05:52Z-
dc.date.issued2017pt_BR
dc.identifier.urihttp://hdl.handle.net/10923/10721-
dc.description.abstractSistemas 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.pt_BR
dc.description.abstractCurrent computer systems separate main memory from storage. Programming languages typically reflect this distinction using different representations for data in memory (e.g. data structures, objects) and storage (e.g. files, databases). Moving data back and forth between these different layers and representations compromise both programming and execution efficiency. Recent nonvolatile memory technologies, such as Phase-Change Memory, Resistive RAM, and Magnetoresistive RAM make it possible to collapse main memory and storage into a single layer of persistent memory, opening the way for simpler and more efficient programming abstractions for handling persistence. This Ph.D. thesis introduces a design for the runtime environment for languages with automatic memory management, based on an original combination of orthogonal persistence, persistent memory programming, persistence by reachability, and lock-based failure-atomic transactions. Such design can significantly increase programming and execution efficiency, as in-memory data structures are transparently persistent, without the need for programmatic persistence handling, and removing the need for crossing semantic boundaries. In order to validate and demonstrate the proposed concepts, this work also presents JaphaVM, the first Java Virtual Machine specifically designed for persistent memory. In experimental results using benchmarks and real-world applications, JaphaVM in most cases executed the same operations between one and two orders of magnitude faster than database- and file-based implementations, while requiring significantly less lines of code.en_US
dc.language.isoPortuguêspt_BR
dc.publisherPontifícia Universidade Católica do Rio Grande do Sulpt_BR
dc.rightsopenAccessen_US
dc.subjectMEMÓRIA DE COMPUTADORpt_BR
dc.subjectJAVA (LINGUAGEM DE PROGRAMAÇÃO)pt_BR
dc.subjectARQUITETURA DE COMPUTADORpt_BR
dc.subjectINFORMÁTICApt_BR
dc.titlePersistent memory and orthogonal persistence: a persistent heap design and its implementation for the Java virtual machinept_BR
dc.typedoctoralThesispt_BR
dc.degree.grantorPontifícia Universidade Católica do Rio Grande do Sulpt_BR
dc.degree.departmentFaculdade de Informáticapt_BR
dc.degree.programPrograma de Pós-Graduação em Ciência da Computaçãopt_BR
dc.degree.levelDoutoradopt_BR
dc.degree.date2017pt_BR
dc.publisher.placePorto Alegrept_BR
Appears in Collections:Dissertação e Tese

Files in This Item:
File Description SizeFormat 
000484995-Texto+Completo-0.pdfTexto Completo1,74 MBAdobe PDFOpen
View


All Items in PUCRS Repository are protected by copyright, with all rights reserved, and are licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Read more.