Herramientas Personales
Usted está aquí: Inicio / Agenda / Defensa Tesis Doctorado Guido Chari
Agenda [Ver +]
Defensa Tesis Doctorado Guido Chari 13/12/2017 14:00 — Laboratorio 4
Charla de la Carrera 13/12/2017 18:30 — Hall Central
Defensa Tesis Licenciatura Santiago Alvarez Colombo 14/12/2017 17:00 — Laboratorio 5
 

Defensa Tesis Doctorado Guido Chari

Titulo: Plataformas de Ejecución de Software Reflexivas Director: Diego Garbervetsky

Detalles del evento

Cuándo

13/12/2017
de 14:00 a 16:00

Dónde

Laboratorio 4

Agregar evento al calendario

  • Titulo:Plataformas de Ejecución de Software Reflexivas
  • Director: Diego Garbervetsky
  • Resumen:

Las Máquinas Virtuales (MV) son artefactos de software complejos cuya responsabilidad principal es realizar la semántica de algún lenguaje de programación y al mismo tiempo garantizar propiedades tales como eficiencia, portabilidad y 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 completamente reflexivas (FREE). Un FREE es una 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 FREEs 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 de la MV misma.

Para evaluar nuestro enfoque construimos dos máquinas virtuales reflexivas, una basada en un compilador de métodos y la otra en un optimizador de trazas. Analizamos una serie de casos de estudio que nos permitieron evaluar las propiedades distintivas de un FREE para lidiar con escenarios adaptativos. Comparamos nuestras implementaciones con soluciones alternativas de nivel de lenguaje y argumentamos porqué un FREE potencialmente las subsume a todas. Luego 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 del desempeño es bajo (comparado con las soluciones alternativas) cuando estos mecanismos sí son utilizados. Por otro lado, 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 estudiar los efectos de exponer el comportamiento de los módulos de compilación a las aplicaciones. Los resultados preliminares muestran que este es un enfoque plausible para mejorar el desempeño de aplicaciones sobre las cuales las heurísticas de los compiladores dinámicos producen resultados subóptimos.