X-Git-Url: https://git.llucax.com/z.facultad/75.00/informe.git/blobdiff_plain/b0956c037ae52da777b06705157486067755ec2c..b9bd72d41bc4bec9ec5c5811083e8897227d930f:/source/resumen.rst diff --git a/source/resumen.rst b/source/resumen.rst index 76c4408..5bcda9e 100644 --- a/source/resumen.rst +++ b/source/resumen.rst @@ -1,49 +1,57 @@ -.. Resumen del trabajo - ESTADO: TERMINADO - - -.. _ref_resumen: +.. _resumen: Resumen ============================================================================ -**RESUMEN** - -El problema del manejo de memoria ha sido un factor clave en los lenguajes -de programación desde que empezaron a forjarse los primero lenguajes con un -mínimo nivel de abstracción, dado que la administración de memoria -explícita ha sido un flagelo constante en el mundo de la informática, -provocando pérdidas de memoria que degradan la eficiencia de programas de -larga vida y siendo la principal fuente de problemas de seguridad, entre -otros problemas. - -Es por esto que se desde la primera aparición de lenguajes de más alto -nivel, se buscó abstraer al programador de administrar la memoria -explícitamente, desarrollando un área de investigación por mérito propio -denominada **recolección de basura** (o *garbage collection* en inglés). Se -trata de un servicio provisto (generalmente por el lenguaje) que permite -auto-detectar cuando una celda de memoria ha dejado de ser utilizada por el -programa para poder ser reciclada en el futuro, liberando al programador de -llevar cuenta del tiempo de vida de una celda y su liberación explícita -cuando ésta deja de utilizarse. - -D es un lenguaje de programación multi-paradigma, que soporta programación -de bajo nivel pero provee construcciones de muy alto nivel también, -incluyendo un *recolector de basura*. Dadas las amplias y variadas -características del lenguaje, D propone un nuevo desafío en cuanto al -diseño de un recolector de basura, y si bien D ya cuenta con un recolector -que hace lo necesario para funcionar de forma aceptable, su diseño -e implementación son relativamente sencillas comparadas con el estado del -arte de la recolección de basura en general. - -El objetivo de este trabajo es explorar los problemas del recolector de -basura actual, evaluar cuales son de mayor importancia para la comunidad, -analizar la viabilidad de algoritmos y optimizaciones para mejorarlo, -implementar la solución y proveer todos los elementos necesarios para que -la solución pueda ser adoptada por el lenguaje. Esto último es de vital -importancia para este trabajo: la solución tiene que tener buenas -probabilidades de ser aceptada por la comunidad de D. - - -.. vim: set ts=2 sts=2 sw=2 et tw=75 : +.. raw:: latex + + \pagestyle{empty} + \section*{Resumen} + +El manejo de memoria es un problema recurrente en los lenguajes de +programación; dada su complejidad es muy propenso a errores y las +consecuencias de dichos errores pueden ser muy graves. La *recolección de +basura* es el área de investigación que trata las técnicas de manejo +automático de memoria. D_ es un lenguaje de programación compilado, con tipado +estático y multi-paradigma que combina el poder de lenguajes de programación +de bajo nivel, como C, con la facilidad de los de alto nivel, como Python_ +o Java_. D_ provee recolección de basura pero ha sido frecuentemente criticada +por sus varias falencias. Dadas las particularidades del lenguaje, plantea un +desafío casi único en cuanto al diseño de un recolector. + +Este trabajo hace un recorrido por el estado del arte en recolección de basura +teniendo en cuenta los requerimientos de D_; analiza la implementación del +recolector actual y propone mejoras con el objetivo principal de minimizar los +tiempos de pausa. Finalmente se construye un banco de pruebas para verificar +los resultados, que muestran una disminución de hasta 200 veces en el tiempo +de pausa del recolector y de hasta 3 veces en el tiempo total de ejecución. + + +.. raw:: latex + + \vfill + \section*{Agradecimientos} + +A mis viejos y hermanos por soportarme y apoyarme, a Ali por estar siempre +para darme un empujoncito cuando me estanco, a Rosita por introducirme en el +tema, aguantar mis baches y ayudarme a mantener el foco, a Albertito por los +aportes técnicos invaluables a cambio de helado, a la gente que hizo la +innumerable cantidad de Software Libre que usé en este trabajo por +simplificarme enormemente la vida, y a la gente que me estoy olvidando por +hacer eso que me estoy olvidando que hizo. + +.. raw:: latex + + \vspace{1in} + \epigraph{¡Es basura! ¡Es basura! ¡Es basura!}{Jay Sherman} + + \clearpage + \setcounter{page}{1} + \pagenumbering{arabic} + \pagestyle{normal} + + +.. include:: links.rst + +.. vim: set ts=3 sts=3 sw=3 et tw=78 spelllang=es :