miércoles, 13 de mayo de 2009

GESTION DE MEMORIA EN TIEMPO DE EJECUCION

Disposición de los Programas en Memoria
Sist. Operativo (cargador/loader) suministra espacio sobre el que se ejecutara el programa S.O. + Compilador determinan organización del espacio asignado al programa objeto Compilador debe incorporar código adicional al programa objeto para gestionarlo.
Organización típica
CODIGO
MEMORIA
ESTATICA
PILA

...........................
...........................


MOTICULO
(heap)

CODIGO: Almacena instrucciones en código maquina del programa ejecutable
1. incluye el código de funciones y procedimientos
2. su tamaño puede fijarse en tiempo de compilación
MEM. ESTATICA: Datos (variables) cuyo tamaño se conoce en tiempo de compilación
1. Variables globales + Literales (constantes)(enteros, reales, strings, ...)
2. Variables estáticas (var. locales cuyo valor se mantiene entre llamadas a procedimientos) (static en C)
3. Otros: direcciones reservadas (por el S.O.), código y datos estáticos cargados desde librerías o módulos pre compilados
PILA Zona dinámica.
Mantiene registros de activación de los procedimientos que se han llamado
1. Reg. activación: contienen var. Locales del procedimiento + info. De control adicional
2. Pila crece (en llamadas a procedim.) y decrece (al retornar)
MOTICULO Zona dinámica.
Generalmente: Comienza en la dirección más alta y crece “hacia abajo”.
Guarda datos cuyo tamaño varía en tiempo de ejecución o que no se pueden mantener en mem. Estática ni en pila
Espacio puede ser asignado y desasignado en cualquier momento

No hay comentarios:

Publicar un comentario