ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Compilador


Enviado por   •  3 de Octubre de 2013  •  664 Palabras (3 Páginas)  •  194 Visitas

Página 1 de 3

e estar almacenado en memoria principal. El compilador reserva

en la sección de código una zona contigua de memoria para cada conjunto de overlays.

El tamaño de esta zona debe ser igual al del mayor módulo que se cargue sobre ella. Es

función del programador determinar cuantas zonas de overlay se definen, qué funciones

y procedimientos se encapsulan en cada módulo de overlay, y cómo se organizan estos

módulos para ocupar cada una de las zonas de overlay. Una restricción a tener en cuenta

es que las funciones de un módulo no deben hacer referencia a funciones de otro

módulo del mismo overlay, ya que nunca estarán simultáneamente en memoria.

Evidentemente, el tiempo de ejecución de un programa estructurado con

overlays es mayor que si no tuviese overlays y todo el código estuviese residente en

memoria, puesto que durante la ejecución del programa es necesario cargar cada módulo

cuando se realiza una llamada a alguna de las funciones que incluye. También es tarea

del programador diseñar la estructura de overlays de manera que se minimice el número

de estas operaciones. La técnica de overlays no sólo se utiliza cuando el programa a

compilar es muy grande en relación con la disponibilidad de memoria del sistema, sino

también cuando se desea obtener programas de menor tamaño que deben coexistir con

otros del sistema operativo cuando la memoria es escasa.

9.3 Zona de datos

Los datos que maneja un programa se dividen actualmente en tres grandes

bloques:

• Uno dedicado a almacenar las variables globales accesibles por cualquier línea

de código del programa. Este bloque es la Zona de Datos de Tamaño Fijo.

• Otro dedicado a almacenar las variables locales a cada función y

procedimiento. Éstas no pueden almacenarse en el bloque anteriorpor dos

motivos principales: a) no es necesario almacenar las variables de una función

hasta el momento en que ésta es invocada y, una vez que finaliza su ejecución,

tampoco; y b) durante la ejecución de una función recursiva deben

almacenarse varias instancias de sus variables locales, concretamente tantas

como invocaciones a esa misma función se hayan producido. Este bloque es

la Pila.

• Un último bloque dedicado a almacenar los bloques de memoria gestionados

directamente por el usuario mediante sentencias malloc/free, new/dispose,

etc. La cantidad de memoria requerida para estos menesteres varia de

ejecución en ejecución del programa, y los datos ubicados no son locales a

Gestión de la memoria en tiempo de ejecución

284

Figura 9.3 Asignación de un bloque de memoria para una variable global X

ninguna función, sino que perduran hasta que son liberados.

...

Descargar como (para miembros actualizados) txt (4 Kb)
Leer 2 páginas más »
Disponible sólo en Clubensayos.com