Uno de tantos

Páginas: 5 (1098 palabras) Publicado: 3 de febrero de 2011
Memoria Dinámica

Cuando vamos a realizar un programa independientemente del problema que sea, primero es necesario tener muy claro cómo va a ser el manejo de memoria, la diferencia entre la estructura estática y dinámica es el manejo de memoria.
En la estática, por ejemplo durante la ejecución del programa, el tamaño de la estructura no cambia, en cambio en la dinámica, durante este mismoproceso, el tamaño de la estructura puede cambiar, es decir, el espacio que ocupa una variable dinámica es asignado y liberado según las necesitemos conforme avancemos en el programa.

La memoria dinámica, más que un tipo de memoria es una manera de utilizarla. Consiste en declarar variables y eliminarlas cuando ya no sean necesarias, mediante subprogramas.
La memoria dinámica es un espaciode almacenamiento que se puede solicitar en tiempo de ejecución. Además de solicitar espacios de almacenamiento, también podemos liberarlos al momento que dejemos de necesitarlos.

Para mostrar lo mencionado antes, supongamos que nuestro programa debe manipular estructuras de datos de un tamaño desconocido. Un ejemplo simple podría ser el de un programa que lee deba solicitar datos yrellenarlos conforme sean los campos y además ordenarlas.
Por tanto, deberemos leer un número indeterminado de datos, y tras leer el último, utilizar un método para ordenarlas. Una forma de manejar este tipo de problemas de números indeterminados‘, sería declarar una constante total de campos por ejemplo tot, dándole así un valor vergonzosamente grande, y declarar un arreglo de tamaño tot. Esto,obviamente, es muy ineficiente al momento de compilar por los espacios que dejamos libres y que siempre tiene que estar recorriendo.
Además nuestro programa no sólo quedaría limitado por ese valor máximo, sino que además gastaría esa enorme cantidad de memoria para procesar hasta el más pequeño de los espacios. La solución consiste en utilizar memoria dinámica. La memoria dinámica es un espacio dealmacenamiento que se solicita en tiempo de ejecución. De esa manera, a medida que el proceso va necesitando espacio para más espacios, va solicitando más memoria para guardarlas.
Cuando se crea un programa en el que es necesario manejar memoria dinámica el sistema operativo divide el programa en cuatro partes que son: texto, datos estáticos, pila y heap que en este caso es una parte o unasección libre en donde no hay nada.
En esta última parte es donde queda la memoria libre para poder utilizarla de forma dinámica. En el momento de la ejecución habrá tanto partes libres como partes asignadas al proceso por lo cual si no se liberan las partes utilizadas de la memoria y que han quedado inservibles es posible que se termine o se llene esta parte y por lo tanto la fuente de la memoriadinámica. También la pila cambia su tamaño dinámicamente, pero esto no depende del programador sino del sistema operativo.
La memoria dinámica es liberada automáticamente, pero esta liberación no se lleva a cabo hasta que todas las referencias a esa memoria son null o dejan de existir.
De esto se encarga el recolector de basura, el cual se encarga de liberar la memoria que ya no es utilizada por elusuario en este caso memoria que ya no nos sirve es destruida para que no quede flotando y ocupando espacio en nuestro programa haciendo del mismo modo más rápida la compilación. En java existen colecciones de datos, son clases especiales que nos permiten manejar datos que cuando ya no sean útiles podemos eliminarlos de memoria.

Memoria Estática

La forma más fácil de almacenar el contenidode una variable en memoria en tiempo de ejecución en una memoria estática o permanente a lo largo de toda la ejecución del programa.
En la memoria estática se Define la cantidad de memoria necesaria para un programa durante el tiempo de compilación.
No todos los objetos (los cuales son variables) pueden ser almacenados estáticamente.

Para que un objeto pueda ser almacenado en memoria...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Uno De Tantos
  • tanta
  • Uno De Tantos
  • Tantán
  • Tantan
  • Tantan
  • Tantan yo
  • Entre tantos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS