sábado, 1 de mayo de 2010

Algoritmos recolectores de basura

Cuando ejecutamos programas estos instancian objetos y asignan espacios en memoria para su uso durante su ejecución. Al terminar su ejecución estos dejan los espacios o huecos y en algunos casos información basura en memoria, cuando ya no queda más espacio disponible, o cuando la rutina de recolección de basura se ejecuta, la memoria se compacta, colocando todos los objetos que se están usando al inicio y así elimina los espacios que ya no son usados en memoria, quedando así espacio en memoria para creación de nuevos objetos.

Como se muestra en la siguiente imagen al crear objetos se van llenado diferentes espacios en memoria (representado con colores cada asignación de memoria), al salir de estos programas se liberan espacios o se deja la información, es aquí donde la memoria se compacta y así reorganiza los objetos.

Aunque en algunos lenguajes de programacion ya cuentan con recolectores de basura implitos, entre ellos se encuentran: ALGOL 68, BASIC, C#, Java, JavaScript, Modula-3, Perl,PHP, Prolog, Python, Ruby, Smalltalk.

Estos algoritmos de recolección los que vienen implícitamente en los lenguajes o los creados, son importantes ya que sin ellos la memoria sufriría de sobrecarga en cuanto a información o basura que se almacena en ella y no es liberada.

Teniendo en consideración que si el programador desea crear el algoritmo de recolección de basura tendrá que ser cuidados con esta tarea ya que podría cometer errores y liberar espacio que están siendo usados por otros programas y en perores casos por el SO.

1 comentario:

  1. Un poco corto el post! traté de colocar entradas un tanto más largas.
    saludos

    ResponderEliminar