untitled

Plataformas de ejecución de software reflexivas


Fully reflective execution environments

Chari, Guido Martín

Director(a):
Garbervetsky, Diego
 
Institución otorgante:
Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
Fecha:
2017-12-13
Tipo de documento: 
info:eu-repo/semantics/doctoralThesis
 
Formato:
application/pdf
Idioma:
eng
Temas:
MAQUINAS VIRTUALES - REFLEXION - COMPILADORES DINAMICOS - COMPILADORES DE TRAZAS - EVALUACION PARCIAL - ESPECULACION - ADAPTACION DE SOFTWARE - EVOLUCION DE SOFTWARE - VIRTUAL MACHINES - REFLECTION - JUST IN TIME COMPILATION - TRACING COMPILER - PARTIAL EVALUATION - SPECULATION - SOFTWARE ADAPTATION - SOFTWARE EVOLUTION - DYNAMIC ADAPTATION
Descripción:
Las Máquinas Virtuales (MV) son artefactos de software complejos. Sus responsabilidades abarcan desde realizar la semántica de algún lenguaje de programación en particular hasta garantizar propiedades tales como la eficiencia, la portabilidad y la seguridad de los programas. Actualmente, las MV son construidas como “cajas negras”, lo cual reduce significativamente la posibilidad de observar o modificar su comportamiento mientras están siendo ejecutadas. En este trabajo pregonamos que la falta de interacción entre las aplicaciones y las MV impone un límite a las posibilidades de adaptación de los programas, mientras están siendo ejecutados, ante nuevos requerimientos. Para solucionar esta limitación presentamos la noción de plataformas de ejecución reflexivas: un tipo especial de MV que promueve su propia inspección y modificación en tiempo de ejecución permitiendo de este modo a las aplicaciones reconfigurar el comportamiento de la MV cuando sus requerimientos cambian. Proponemos una arquitectura de referencia para construir plataformas de ejecución reflexivas e introducimos una serie de optimizaciones específicamente diseñadas para este tipo de plataformas. En particular proponemos aplicar técnicas de optimización especulativa, técnicas estándar en el contexto de los lenguajes dinámicos, a nivel dela MV misma. Para evaluar nuestro enfoque construimos dos plataformas de ejecución reflexivas, una basada en un compilador de métodos y la otra en un optimizador de trazas. Luego, analizamos una serie de casos de estudio que nos permitieron evaluar sus propiedades distintivas para lidiar con escenarios adaptativos. Comparamos nuestras implementaciones con soluciones alternativas de nivel de lenguaje y argumentamos porqué una plataforma de ejecución reflexiva potencialmente las subsume a todas. Por otra parte, mostramos empíricamente que las MV reflexivas pueden ejecutarse con un desempeño asintótico similar al de las MV estándar (no reflexivas) cuando las capacidades reflexivas no se usan. También que la degradación deldesempeño es bajo (comparado con las soluciones alternativas) cuando estos mecanismos sí son utilizados. Aprovechando nuestras dos implementaciones, estudiamos cómo impactan las diferentes familias de compiladores (por método vs. por trazas) en los resultados finales. Por último, realizamos una serie de experimentos con el objetivo de estudiarlos efectos de exponer el comportamiento de los módulos de compilación a las aplicaciones. Los resultados preliminares muestran que este es un enfoque plausiblepara mejorar el desempeño de aplicaciones sobre las cuales las heurísticas de los compiladores dinámicos producen resultados subóptimos.
Identificador:
https://hdl.handle.net/20.500.12110/tesis_n6346_Chari
Derechos:
info:eu-repo/semantics/openAccess
http://creativecommons.org/licenses/by-nc-nd/2.5/ar/
Licencia de uso:
Licencia Creative Commons

Descargar texto: tesis_n6346_Chari.oai

Cita bibliográfica:

Chari, Guido Martín  (2017-12-13).     Plataformas de ejecución de software reflexivas.  (info:eu-repo/semantics/doctoralThesis).    Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales.    [consultado:  ] Disponible en el Repositorio Digital Institucional de la Universidad de Buenos Aires:  <https://hdl.handle.net/20.500.12110/tesis_n6346_Chari>