tema 5: gestión de la memoria principal - inf-cr.uclm.es · unidad de memoria, y la dirección que...

29
Asignación de Direcciones Estrategias Generales de Gestión de Memoria Resumen y Lecturas Recomendadas Tema 5: Gestión de la Memoria Principal SSOO - Curso 2005/06 E. Domínguez C. Villarrubia Departamento de Tecnologías y Sistemas de Información Escuela Superior de Informática Universidad de Castilla - La Mancha Abril de 2006 E. Domínguez, C. Villarrubia Tema 5

Upload: phamque

Post on 22-Oct-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Tema 5:Gestión de la Memoria Principal

SSOO - Curso 2005/06

E. Domínguez C. Villarrubia

Departamento de Tecnologías y Sistemas de InformaciónEscuela Superior de Informática

Universidad de Castilla - La Mancha

Abril de 2006

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Índice

1 Asignación de Direcciones

2 Estrategias Generales de Gestión de Memoria

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Tema 5: Gestión de la Memoria Principal

Sesión 1:Generalidades sobre la Gestión de MemoriaPrincipal

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Índice

1 Asignación de Direcciones

2 Estrategias Generales de Gestión de Memoria

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Preparación de la Ejecución de Programas de Usuario

EtapasCompilaciónEnlaceCargaEjecución

Etapas Previas a la Ejecución de unPrograma de Usuario

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Preparación de la Ejecución de Programas de Usuario

EtapasCompilaciónEnlaceCargaEjecución

Etapas Previas a la Ejecución de unPrograma de Usuario

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Preparación de la Ejecución de Programas de Usuario

EtapasCompilaciónEnlaceCargaEjecución

Etapas Previas a la Ejecución de unPrograma de Usuario

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Preparación de la Ejecución de Programas de Usuario

EtapasCompilaciónEnlaceCargaEjecución

Etapas Previas a la Ejecución de unPrograma de Usuario

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Transformación de Direcciones

SituaciónCuando un programador escribe un programa, lasdirecciones que utiliza en sus instrucciones no son las quefinalmente usa el hardware de memoria cuando elprograma está en ejecución (direcciones físicas)

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Transformación de Direcciones (cont.)

ProblemasLas direcciones del programa raramente son absolutas(idénticas a las físicas) cuando el programa se escribe,puesto que el programador, en general, no sabe en quélugar de la memoria va a cargarse su programa (direcciónde carga)Por otra parte muchas veces, el formato de dirección queusa una CPU no coincide con el formato que acepta launidad de memoria, y la dirección que figura en elprograma necesita ser traducida (vinculación) en tiempode ejecución

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Transformación de Direcciones (cont.)

ProblemasLas direcciones del programa raramente son absolutas(idénticas a las físicas) cuando el programa se escribe,puesto que el programador, en general, no sabe en quélugar de la memoria va a cargarse su programa (direcciónde carga)Por otra parte muchas veces, el formato de dirección queusa una CPU no coincide con el formato que acepta launidad de memoria, y la dirección que figura en elprograma necesita ser traducida (vinculación) en tiempode ejecución

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Transformación de Direcciones (cont.)

¿Cuándo puede suceder?Tiempo de compilación: Si la ubicación del programa enmemoria es conocida a priori, puede generarse códigoabsoluto. Se debe recompilar el código si se cambia ladirección de carga en memoriaTiempo de carga: Si la ubicación en memoria no esconocida en tiempo de compilación, debe generarsecódigo reubicable. Después el cargador del sistema debemodificar las direcciones (reubicación)Tiempo de ejecución: Si se genera código que puedaejecutarse independientemente de su posición enmemoria, la transformación puede retrasarse hasta elmomento de la ejecución

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Transformación de Direcciones (cont.)

¿Cuándo puede suceder?Tiempo de compilación: Si la ubicación del programa enmemoria es conocida a priori, puede generarse códigoabsoluto. Se debe recompilar el código si se cambia ladirección de carga en memoriaTiempo de carga: Si la ubicación en memoria no esconocida en tiempo de compilación, debe generarsecódigo reubicable. Después el cargador del sistema debemodificar las direcciones (reubicación)Tiempo de ejecución: Si se genera código que puedaejecutarse independientemente de su posición enmemoria, la transformación puede retrasarse hasta elmomento de la ejecución

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Transformación de Direcciones (cont.)

¿Cuándo puede suceder?Tiempo de compilación: Si la ubicación del programa enmemoria es conocida a priori, puede generarse códigoabsoluto. Se debe recompilar el código si se cambia ladirección de carga en memoriaTiempo de carga: Si la ubicación en memoria no esconocida en tiempo de compilación, debe generarsecódigo reubicable. Después el cargador del sistema debemodificar las direcciones (reubicación)Tiempo de ejecución: Si se genera código que puedaejecutarse independientemente de su posición enmemoria, la transformación puede retrasarse hasta elmomento de la ejecución

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Índice

1 Asignación de Direcciones

2 Estrategias Generales de Gestión de Memoria

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Carga Dinámica

DescripciónLas funciones, procedimientos o subrutinas no soncargadas hasta que son utilizadasMejor utilización del espacio de memoria. Las funcionesno usadas no son cargadasEs útil cuando se necesitan grandes cantidades de códigopara manejar casos que se presentan con poca frecuenciaNo necesita soporte del sistema operativo; se implementaa través del diseño del programa

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Carga Dinámica

DescripciónLas funciones, procedimientos o subrutinas no soncargadas hasta que son utilizadasMejor utilización del espacio de memoria. Las funcionesno usadas no son cargadasEs útil cuando se necesitan grandes cantidades de códigopara manejar casos que se presentan con poca frecuenciaNo necesita soporte del sistema operativo; se implementaa través del diseño del programa

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Carga Dinámica

DescripciónLas funciones, procedimientos o subrutinas no soncargadas hasta que son utilizadasMejor utilización del espacio de memoria. Las funcionesno usadas no son cargadasEs útil cuando se necesitan grandes cantidades de códigopara manejar casos que se presentan con poca frecuenciaNo necesita soporte del sistema operativo; se implementaa través del diseño del programa

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Carga Dinámica

DescripciónLas funciones, procedimientos o subrutinas no soncargadas hasta que son utilizadasMejor utilización del espacio de memoria. Las funcionesno usadas no son cargadasEs útil cuando se necesitan grandes cantidades de códigopara manejar casos que se presentan con poca frecuenciaNo necesita soporte del sistema operativo; se implementaa través del diseño del programa

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Enlace Dinámico

DescripciónEl enlace de algunas piezas de código se retrasa hasta eltiempo de ejecuciónUna pequeña pieza de código (stub) es usada paralocalizar la función en la biblioteca una vez que ésta secarga en memoriaEse fragmento de código es sustituido por la dirección enmemoria de la función mismaEl sistema operativo se ocupa de comprobar que lafunción esté en memoria y permitir su enlace

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Enlace Dinámico

DescripciónEl enlace de algunas piezas de código se retrasa hasta eltiempo de ejecuciónUna pequeña pieza de código (stub) es usada paralocalizar la función en la biblioteca una vez que ésta secarga en memoriaEse fragmento de código es sustituido por la dirección enmemoria de la función mismaEl sistema operativo se ocupa de comprobar que lafunción esté en memoria y permitir su enlace

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Enlace Dinámico

DescripciónEl enlace de algunas piezas de código se retrasa hasta eltiempo de ejecuciónUna pequeña pieza de código (stub) es usada paralocalizar la función en la biblioteca una vez que ésta secarga en memoriaEse fragmento de código es sustituido por la dirección enmemoria de la función mismaEl sistema operativo se ocupa de comprobar que lafunción esté en memoria y permitir su enlace

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Enlace Dinámico

DescripciónEl enlace de algunas piezas de código se retrasa hasta eltiempo de ejecuciónUna pequeña pieza de código (stub) es usada paralocalizar la función en la biblioteca una vez que ésta secarga en memoriaEse fragmento de código es sustituido por la dirección enmemoria de la función mismaEl sistema operativo se ocupa de comprobar que lafunción esté en memoria y permitir su enlace

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Superposiciones (Overlays)

DescripciónSe mantienen en memoria sólo las instrucciones y datosque son necesarios en cada momentoLa técnica puede aplicarse cuando las necesidades dememoria del proceso son mayores que la memoriaasignadaEl esquema es implementado por el programador sinapenas soporte del sistema operativoEl diseño del programa con superposiciones es complejo

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Superposiciones (Overlays)

DescripciónSe mantienen en memoria sólo las instrucciones y datosque son necesarios en cada momentoLa técnica puede aplicarse cuando las necesidades dememoria del proceso son mayores que la memoriaasignadaEl esquema es implementado por el programador sinapenas soporte del sistema operativoEl diseño del programa con superposiciones es complejo

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Superposiciones (Overlays)

DescripciónSe mantienen en memoria sólo las instrucciones y datosque son necesarios en cada momentoLa técnica puede aplicarse cuando las necesidades dememoria del proceso son mayores que la memoriaasignadaEl esquema es implementado por el programador sinapenas soporte del sistema operativoEl diseño del programa con superposiciones es complejo

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Superposiciones (Overlays)

DescripciónSe mantienen en memoria sólo las instrucciones y datosque son necesarios en cada momentoLa técnica puede aplicarse cuando las necesidades dememoria del proceso son mayores que la memoriaasignadaEl esquema es implementado por el programador sinapenas soporte del sistema operativoEl diseño del programa con superposiciones es complejo

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas Recomendadas

Superposiciones (Overlays)(cont.)

Ejemplo de overlay para un ensamblador de dos pasos

E. Domínguez, C. Villarrubia Tema 5

Asignación de DireccionesEstrategias Generales de Gestión de Memoria

Resumen y Lecturas RecomendadasResumen

Resumen

En esta sesión hemos vistoTransformaciones que deben sufrir las direcciones delprograma del usuario para poder ser interpretadas por lamemoriaEstrategias simples de gestión de memoria para ejecutarprogramas grandes

E. Domínguez, C. Villarrubia Tema 5