Você está na página 1de 13

INTRODUCCION A LAS

ESTRUCTURAS DE
DATOS
UNIDAD I
1.4 MANEJO DE MEMORIA

INTRODUCCION

La administracin de memoria de una computadora es una tarea


fundamental debido a que la cantidad de memoria es limitada.

El RTS (Run Time System) de un lenguaje de programacin administra la


memoria para cada programa en ejecucin.
1.4 MANEJO DE MEMORIA

1.4.1 MEMORIA ESTATICA

Es la memoria que se reserva en el momento de la compilacin


antes de comenzar a ejecutar el programa. Los objetos son
creados al iniciar el programa y destruidos al finalizar el mismo.
Mantienen la misma localizacinLos
en memoria durante todo el
transcurso del programa hasta que son destruidos.

Los objetos administrados de este modo son : variables globales,


variables estaticas de funciones, miembros static de clases y
literales de cualquier tipo.
1.4 MANEJO DE MEMORIA

1.4.1 MEMORIA ESTATICA

Las estructuras de datos estticas:


Son aquellas en las que el tamao ocupado en memoria se define
antes de que el programa se ejecute y no puede modificarse
dicho tamao durante la ejecucinLos
del programa.

Su principal caracteristica es que ocupan una sola casilla de


memoria, por lo tanto una variable simple hace referencia a un
unico valor a la vez, dentro de este grupo de datos se
encuentran: enteros, reales, caracteres, boleanos, enumerados y
subrangos ( los ultimos no existen en algunos lenguajes de
programacion ).
1.4 MANEJO DE MEMORIA

1.4.1 MEMORIA ESTATICA

ELEMENTOS QUE RESIDEN EN MEMORIA ESTATICA:

Codigo del programa


Variables definidas en la seccin principal del programa, las cuales pueden solo
cambiar su contenido no su tamao.

Estoselementos se almacenan en direcciones fijas que son relocalizadas dependiendo


de la direccin en donde el cargador las coloque para su ejecucin.
1.4 MANEJO DE MEMORIA

1.4.1 MEMORIA ESTATICA

MAPA DE MEMORIA ( map memory )


Es una estructura de datos ( tablas ) que indica cmo est distribuida la memoria.
Contiene informacin sobre el tamao total de memoria y las relaciones que existen
entre las direcciones lgicas y fsicas.
1.4 MANEJO DE MEMORIA

1.4.1 MEMORIA ESTATICA


1.4 MANEJO DE MEMORIA

1.4.2 MEMORIA DINAMICA

Es tambin llamada almacenamiento libre ( freestore ) y en estos


casos el programador solicita ( new ) memoria para almacenar un
objeto y es reponsable de liberarla ( delete ) para que pueda
ser reutilizada por otros objetos.

Es aquella que se reserva en tiempo de ejecucin despus de leer


los datos y conocer el tamao exacto del problema a resolver.

Puntero ( apuntador ): un puntero o apuntador es un tipo especial


de variable que almacena el valor de una direccin de memoria
la cual puede ser una variable individual, de un elemento de un
arreglo, una estructura u objeto de una clase y se anota de la
siguiente manera:
1.4 MANEJO DE MEMORIA

1.4.2 MEMORIA DINAMICA

Tipo de apuntador + nombre de la variable.

Int *Pint; puntero a un entero.


char *Pchar; puntero a un carcter.
Fecha *Pfecha; puntero objeto de la clase fecha.
1.4 MANEJO DE MEMORIA

1.4.2 MEMORIA DINAMICA

Cuando el sistema operativo carga un programa para ejecutarlo y lo


convierte en proceso, le asigna cuatro partes lgicas en memoria
principal: texto, datos (estticos), pila y una zona libre.

Esta zona libre (o heap) es la que va a contener los datos dinmicos, la


cual, a su vez, en cada instante de la ejecucin tendr partes asignadas a
los mismos y partes libres que fragmentarn esta zona, siendo posible que
se agote si no se liberan las partes utilizadas ya inservibles. (La pila
tambin vara su tamaoo dinmicamente, pero la gestiona el sistema
operativo, no el programador):
1.4 MANEJO DE MEMORIA

1.4.2 MEMORIA DINAMICA

Para trabajar con datos dinmicos necesitamos dos cosas:


1. Subprogamas predefinidos en el lenguaje que nos permita
gestionar la memoria de forma dinmica ( asignacin y
liberacin )
2. Algun tipo de dato con el que podamos accedr a esos datos
dinmicos ( ya que con los vtipos vistos hasta ahora slo
podemos acceder a datos con un tamao y forma ya
determinados).
1.4 MANEJO DE MEMORIA

1.4.2 MEMORIA DINAMICA


1.4 MANEJO DE MEMORIA

1.4.2 MEMORIA DINAMICA

Tipo PUNTERO
Fisicamente,
un puntero no es mas que una direccin de memoria. En el siguiente ejemplo
se muestra el contenido de la memoria con un puntero que apunta a la direccin 78AC
( 16, la cual contiene 6677 ( 16

Você também pode gostar