Building efficient and highly run-time adaptable virtual machines

Programming language virtual machines (VMs) realize language semantics, enforce security properties, and execute applications efficiently. Fully Reflective Execution Environments (EEs) are VMs that additionally expose their whole structure and behavior to applications. This enables developers to obs...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Garbervetsky, Diego
Publicado: 2016
Materias:
Acceso en línea:https://bibliotecadigital.exactas.uba.ar/collection/paper/document/paper_97814503_v_n_p60_Chari
http://hdl.handle.net/20.500.12110/paper_97814503_v_n_p60_Chari
Aporte de:
id paper:paper_97814503_v_n_p60_Chari
record_format dspace
spelling paper:paper_97814503_v_n_p60_Chari2023-06-08T16:37:32Z Building efficient and highly run-time adaptable virtual machines Garbervetsky, Diego Metaobject protocols Performance Reflection Virtual machines Dynamic light scattering Optimization Program compilers Reflection Semantics Execution environments Language semantics Metaobject protocol Optimization modeling Performance Security properties Software adaptation Virtual machines C (programming language) Programming language virtual machines (VMs) realize language semantics, enforce security properties, and execute applications efficiently. Fully Reflective Execution Environments (EEs) are VMs that additionally expose their whole structure and behavior to applications. This enables developers to observe and adapt VMs at run time. However, there is a belief that reflective EEs are not viable for practical usages because such flexibility would incur a high performance overhead. To refute this belief, we built a reflective EE on top of a highly optimizing dynamic compiler. We introduced a new optimization model that, based on the conjecture that variability of low-level (EE-level) reflective behavior is low in many scenarios, mitigates the most significant sources of the performance overheads related to the reflective capabilities in the EE. Our experiments indicate that reflective EEs can reach peak performance in the order of standard VMs. Concretely, that a) if reflective mechanisms are not used the execution overhead is negligible compared to standard VMs, b) VM operations can be redefined at language-level without incurring in significant overheads, c) for several software adaptation tasks, applying the reflection at the VM level is not only lightweight in terms of engineering effort, but also competitive in terms of performance in comparison to other ad-hoc solutions. Fil:Garbervetsky, D. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales; Argentina. 2016 https://bibliotecadigital.exactas.uba.ar/collection/paper/document/paper_97814503_v_n_p60_Chari http://hdl.handle.net/20.500.12110/paper_97814503_v_n_p60_Chari
institution Universidad de Buenos Aires
institution_str I-28
repository_str R-134
collection Biblioteca Digital - Facultad de Ciencias Exactas y Naturales (UBA)
topic Metaobject protocols
Performance
Reflection
Virtual machines
Dynamic light scattering
Optimization
Program compilers
Reflection
Semantics
Execution environments
Language semantics
Metaobject protocol
Optimization modeling
Performance
Security properties
Software adaptation
Virtual machines
C (programming language)
spellingShingle Metaobject protocols
Performance
Reflection
Virtual machines
Dynamic light scattering
Optimization
Program compilers
Reflection
Semantics
Execution environments
Language semantics
Metaobject protocol
Optimization modeling
Performance
Security properties
Software adaptation
Virtual machines
C (programming language)
Garbervetsky, Diego
Building efficient and highly run-time adaptable virtual machines
topic_facet Metaobject protocols
Performance
Reflection
Virtual machines
Dynamic light scattering
Optimization
Program compilers
Reflection
Semantics
Execution environments
Language semantics
Metaobject protocol
Optimization modeling
Performance
Security properties
Software adaptation
Virtual machines
C (programming language)
description Programming language virtual machines (VMs) realize language semantics, enforce security properties, and execute applications efficiently. Fully Reflective Execution Environments (EEs) are VMs that additionally expose their whole structure and behavior to applications. This enables developers to observe and adapt VMs at run time. However, there is a belief that reflective EEs are not viable for practical usages because such flexibility would incur a high performance overhead. To refute this belief, we built a reflective EE on top of a highly optimizing dynamic compiler. We introduced a new optimization model that, based on the conjecture that variability of low-level (EE-level) reflective behavior is low in many scenarios, mitigates the most significant sources of the performance overheads related to the reflective capabilities in the EE. Our experiments indicate that reflective EEs can reach peak performance in the order of standard VMs. Concretely, that a) if reflective mechanisms are not used the execution overhead is negligible compared to standard VMs, b) VM operations can be redefined at language-level without incurring in significant overheads, c) for several software adaptation tasks, applying the reflection at the VM level is not only lightweight in terms of engineering effort, but also competitive in terms of performance in comparison to other ad-hoc solutions.
author Garbervetsky, Diego
author_facet Garbervetsky, Diego
author_sort Garbervetsky, Diego
title Building efficient and highly run-time adaptable virtual machines
title_short Building efficient and highly run-time adaptable virtual machines
title_full Building efficient and highly run-time adaptable virtual machines
title_fullStr Building efficient and highly run-time adaptable virtual machines
title_full_unstemmed Building efficient and highly run-time adaptable virtual machines
title_sort building efficient and highly run-time adaptable virtual machines
publishDate 2016
url https://bibliotecadigital.exactas.uba.ar/collection/paper/document/paper_97814503_v_n_p60_Chari
http://hdl.handle.net/20.500.12110/paper_97814503_v_n_p60_Chari
work_keys_str_mv AT garbervetskydiego buildingefficientandhighlyruntimeadaptablevirtualmachines
_version_ 1768546278032015360