domingo, 2 de mayo de 2010

Algoritmos Recolectores de Basura

Un programa o sistema informático desarrollado maneja o gestiona cierta cantidad de memoria que le es asignada por el propio sistema operativo. Esta memoria debe ser gestionada por el programa para lograr los siguientes objetivos:

  1. Reservar los espacios de memoria que serán utilizados.
  2. Liberar espacios de memoria utilizados anteriormente.
  3. Compactar los espacios de memoria libres y colocarlos consecutivamente para su mejor uso
  4. Administrar los espacios no utilizados.


Algunos lenguajes ya cuentan con su propia rutina recolectora de basura y generalmente la ejecuta también de forma automática sin la intervención del programador. En muchos casos será necesario que el programador programe los llamados a las rutinas recolectoras. Para estos casos el programador puede valerse de los siguientes recursos:

  1. Esperar a que se utilice el total de la memoria, quedando así sin memoria disponible y ejecutar la rutina.
  2. Fijar un porcentaje de la memoria que se utilizará y cuando el programa sobrepase este porcentaje establecido, entonces ejecutará la rutina.
  3. Ejecutar la rutina recolectora a ciertos intervalos de tiempo o intervalos regulares.
  4. Ejecutar la rutina recolectora justo antes de cada reserva de memoria.
  5. Permitir al programador que invoque al programador cuando el desee.

Ejemplos de lenguajes con recolector de basura

  • ALGOL 68
  • BASIC
  • Caml
  • Clean
  • Eiffel
  • Haskell
  • Java
  • JavaScript
  • Lisp
  • Lua
  • Mercury
  • ML
  • Modula-3
  • Oberon
  • Oz
  • Objective C 2.0
  • Perl
  • PHP
  • Prolog
  • Python
  • Ruby
  • Smalltalk
  • SNOBOL
  • SuperCollider

1 comentario:

  1. Muy buen post! faltó el comentario final donde usted debió dar su opinión. No olvide este aspecto en los futuros post!
    saludos

    ResponderEliminar