martes, 6 de abril de 2010

memoria dinamica

Memoria dinámica

La memoria dinámica se refiere a aquella que no puede ser definida ya que no se conoce o no se tiene idea del número de la variable a considerarse, la solución a esto es la memoria dinámica que permite solicitar memoria en tiempo de ejecución real, por lo que mientras mas memoria se necesite, esta se va pidiendo al sistema operativo. El medio por el cual el sistema operativo puede manejar la memoria es el puntero, por la misma naturaleza del proceso nos impide conocer el tamaño de la memoria necesaria al momento compilar.

Un dato importante es que como tal este tipo de datos se crean y se destruyen mientras se ejecuta el programa y por lo tanto la estructura de datos se va dimensionando de forma precisa a los requerimientos del programa, evitándonos así perder datos o desperdiciar memoria si hubiéramos tratado de definirla cantidad de memoria a utilizar en el momento de compilar el programa.

Lo que pasa cuando hacemos un programa en el que será necesario manejar memoria dinámica es que primero el sistema operativo divide el programa en cuatro partes que son: texto, datos (estáticos), pila y una zona libre o heap. En la ultima 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 “agote” esta parte y por lo tanto la fuente de la memoria dinámica. Tenemos que por ejemplo la parte llamada pila también cambia de tamaño dinámicamente pero esto no depende del programador si no del sistema operativo.


No hay comentarios:

Publicar un comentario