Monografia

Solo disponible en BuenasTareas
  • Páginas : 6 (1445 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de enero de 2012
Leer documento completo
Vista previa del texto
IDEA DE PROYECTO PERSONAL

1.-Idea:
Recolección de basura en D

2.-Tema:

3.-Problema:
Descripción del Problema:

Formulación del Problema:

4.-Objetivos:
Objetivos Generales:

Objetivos Específicos:
5.-Marco Teórico:

RECOLECCION DE BASURA:
Recolección de basura se refiere a la recuperación automática de memoria del 〖head〗^1 una vez que el programa hadejado de hacer referencia a ella (y por lo tanto, ha dejado de utilizarla).
A medida que el tiempo pasa, cada vez los programas son más complejos y es más compleja la administración de memoria. Uno de los aspectos más importantes de un recolector de basura es lograr un mayor nivel de abstracción y modularidad, dos conceptos claves en la ingeniería de software [JOLI96]. En particular, al diseñaro programar bibliotecas, de no haber un recolector de basura, la administración de memoria pasa a ser parte de la interfaz, lo que produce que los módulos tengan un mayor grado de acoplamiento.
Además hay una incontable cantidad de problemas asociados al manejo explícito de memoria que simplemente dejan de existir al utilizar un recolector de basura. Por ejemplo, los errores en el manejo dememoria (como 〖buffer overflows 〗^2o 〖dangling pointers〗^3) son la causa más frecuente de problemas de seguridad [BEZO06].
La recolección de basura nació junto a Lisp a finales de 1950 y en los siguientes años estuvo asociada principalmente a lenguajes funcionales, pero en la actualidad está presente en prácticamente todos los lenguajes de programación, de alto o bajo nivel, aunque sea deforma opcional. En los últimos 10 años tuvo un gran avance, por la adopción en lenguajes de desarrollo rápido utilizados mucho en el sector empresarial, en especial Java, que fue una plataforma de facto para la investigación y desarrollo de recolectores de basura (aunque no se limitaron a este lenguaje las investigaciones).
En las primeras implementaciones de recolectores de basura lapenalización en el rendimiento del pro- grama se volvía prohibitiva para muchas aplicaciones. Es por esto que hubo bastante resistencia a la utilización de recolectores de basura, pero el avance en la investigación fue haciendo que cada vez sea

1.-Heap es un área de memoria que se caracteriza por ser dinámica (a diferencia del área de memoria estática que está disponible durante toda laejecución de un programa). Un programa puede reservar memoria en tiempo de ejecución según sea necesario y liberarla cuando ya no la necesita. A diferencia del stack, la duración de la reserva no está atada a un bloque de código.
2.-Un buffer overflow (desbordamiento de memoria en castellano) se produce cuando se copia un dato a un área de memoriaque no es lo suficientemente grande para contenerlo.Esto puede producir que el programa sea abortado por una violación de segmento, o peor, sobreescribir un área de memoria válida, en cuyo caso los resultados son impredecibles.
3.-Un dangling pointer (puntero colgante en castellano) es un puntero que apunta a un área de memoria inválida. Ya sea porque el elemento apuntado no es el mismo tipo o porque la memoria ya ha sido liberada. Al serdesreferenciado, los resultados son impredecibles, el programa podría abortarse por una violación de segmento o podrían pasar peores cosas si el área de memoria fue re-asignada para almacenar otro objeto.
una alternativa más viable al manejo manual de memoria, incluso para aplicaciones con altos reque- rimientos de rendimiento. En la actualidad un programa que utiliza un recolector modernopuede ser comparable en rendimiento con uno que utiliza un esquema manual. En particular, si el programa fue di- señado con el recolector de basura en mente en ciertas circunstancias puede ser incluso más eficiente que uno que hace manejo explícito de la memoria. Muchos recolectores mejoran 〖localidad de referencia〗^4, haciendo que el programa tenga un mejor comportamiento con el caché y la...
tracking img