Tipos de memoria

Solo disponible en BuenasTareas
  • Páginas : 6 (1423 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de octubre de 2010
Leer documento completo
Vista previa del texto
INSTITUTO TECNOLÓGICO SUPERIOR DE JESÚS CARRANZA

ESTRUCTURA DE DATOS

ING. MISAEL DE JESÚS LARA CASTELLANOS

UNIDAD 2 MANEJO DE MEMORIA ESTÁTICA Y MANEJO DE MEMORIA DINÁMICA

EDUARDO JIMÉNEZ TOLENTINO GRUPO 302 A

JESÚS CARRANZA VERACRUZ

A 10 SEPTIEMBRE DEL 2010.

INTRODUCCIÓN

EN ESTE TRABAJO DE INVESTIGACIÓN NOS ENTRAREMOS EN EL ÁMBITO DEL MANEJO DE MEMORIA DINÁMICA YMEMORIA ESTÁTICA LAS CUALES NOS SIRVEN PARA HACER USO DE LA RESERVA DE MEMORIA EN UN PROGRAMA QUE ESTEMOS REALIZANDO.

HABLAREMOS HACERCA DE SU USO Y APLICACIÓN COMO TAMBIÉN LA LIBERACIÓN DE MEMORIA QUE ES CUANDO ESE ESPACIO RESERVADO QUE YA NO SE UTILIZARÁ LA LIBERAMOS PARA QUE NO ESTÉ RESERVADA, O EL REALOJAMIENTO DE MEMORIA, QUE ES EL ACOMODAMIENTO DEL ESPACIO QUE SE ESTÁ UTILIZANDO.

ÍNDICEUNIDAD 2.- MANEJO DE MEMORIA

MEMORIA ESTÁTICA

MEMORIA DINÁMICA

RESERVA DE MEMORIA

LIBERACIÓN DE MEMORIA

REALOJAMIENTO DE MEMORIA

ASIGNACIÓN DINÁMICA

Memoria Estática La forma más fácil de almacenar el contenido de una variable en memoria en tiempo de ejecución es en memoria estática o permanente a lo largo de toda la ejecución del programa. No todos los objetos (variables)pueden ser almacenados estáticamente. Para que un objeto pueda ser almacenado en memoria estática su tamaño (número de bytes necesarios para su almacenamiento) ha de ser conocido en tiempo de compilación, como consecuencia de esta condición no podrán almacenarse en memoria estática: * Los objetos correspondientes a procedimientos o funciones recursivas, ya que en tiempo de compilación no se sabeel número de variables que serán necesarias. * Las estructuras dinámicas de datos tales como listas, árboles, etc. ya que el número de elementos que las forman no es conocido hasta que el programa se ejecuta. Las técnicas de asignación de memoria estática son sencillas. A partir de una posición señalada por un puntero de referencia se aloja el objeto X, y se avanza el puntero tantos bytes comosean necesarios para almacenar el objeto X. La asignación de memoria puede hacerse en tiempo de compilación y los objetos están vigentes desde que comienza la ejecución del programa hasta que termina. En los lenguajes que permiten la existencia de subprogramas, y siempre que todos los objetos de estos subprogramas puedan almacenarse estáticamente se aloja en la memoria estática un registro deactivación correspondiente a cada uno de los subprogramas. Estos registros de activación contendrán las variables locales, parámetros formales y valor devuelto por la función. Dentro de cada registro de activación las variables locales se organizan secuencialmente. Existe un solo registro de activación para cada procedimiento y por tanto no están permitidas las llamadas recursivas. El proceso que sesigue cuando un procedimiento p llama a otro q es el siguiente: 1. p evalúa los parámetros de llamada, en caso de que se trate de expresiones complejas, usando para ello una zona de memoria temporal para el almacenamiento intermedio. Por ejemplos, sí la llamada a q es q((3*5)+(2*2),7) las operaciones previas a la llamada propiamente dicha en código máquina han de realizarse sobre alguna zona dememoria temporal. (En algún momento debe haber una zona de memoria que contenga el valor intermedio 15, y el valor intermedio 4 para sumarlos a continuación). En caso de utilización de memoria estática ésta zona de temporales puede ser común a todo el programa, ya que su tamaño puede deducirse en tiempo de compilación.

2. q inicializa sus variables y comienza su ejecución. Dado que lasvariables están permanentemente en memoria es fácil implementar la propiedad de que conserven o no su contenido para cada nueva llamada Memoria Dinámica ¿Qué es la memoria dinámica? Supongamos que nuestro programa debe manipular estructuras de datos de longitud desconocida. Un ejemplo simple podría ser el de un programa que lee las líneas de un archivo y las ordena. Por tanto, deberemos leer un número...
tracking img