Publicado el 10 de Febrero del 2017
1.529 visualizaciones desde el 10 de Febrero del 2017
2,7 MB
128 paginas
Tema 4
Administración de la memoria
Pilar González Férez
Tema 4 Administraci ón de la memoria – p.1/128
Índice
Introducción (Carretero [C4.1, C4.2], Stallings [C7.1])
Partición de memoria (Stallings [C7.2], Tanenbaum [C4.2.1 y C.4.2.2])
Memoria virtual con paginación (Tanenbaum [C4.3, C4.4, C4.6])
Memoria virtual con segmentación (Tanenbaum [C4.8])
Gestión de la memoria en Linux
Gestión de la memoria en Windows 2000
Tema 4 Administraci ón de la memoria – p.2/128
Índice
1. Introducción
1.1. Objetivos del sistema de gestión de memoria (Carretero
[C4.1], Stallings [C7.1])
1.2. Modelo de memoria de un proceso (Carretero [C4.2])
Tema 4 Administraci ón de la memoria – p.3/128
1. Introducción
Memoria principal: Recurso a repartir entre el S.O. y los procesos
Sistema con monoprogramación ) memoria principal
divida entre el S.O. y el proceso en ejecución
Sistema con multiprogramación ) memoria principal
dividida en dos partes:
Una parte para el sistema operativo
El resto repartida entre los procesos en ejecución
S.O. ) reparto de memoria ) eficiente, transparente y
seguro, proporcionando un espacio independiente a cada
proceso y evitando interferencias entre ellos
Sistema de gestión o administración de memoria )
la parte del S.O. que lleva a cabo, dinámicamente, las
tareas de reparto y control de la memoria
Tema 4 Administraci ón de la memoria – p.4/128
1.1 Objetivos del sistema de gestión de memoria
Sistemas con multiprogramación
Requisitos deseables a cumplir por cualquier política de
administración de memoria:
Reubicación
Protección
Compartición
Organización lógica de los programas
Organización física
Maximizar el rendimiento
Mapas de memoria de los procesos
Tema 4 Administraci ón de la memoria – p.5/128
Reubicación
A priori no se puede conocer la posición de memoria en
la que se va a cargar un programa al ejecutarse
Además, al reanudar un proceso ) nueva posición de
memoria (es muy poco probable que pudiese ocupar la misma posición que tenía
antes de ser suspendido)
El proceso se ha de reubicar en un área de memoria:
Traducir las direcciones de memoria a las que hace referencia,
direcciones lógicas, en las direcciones de la memoria principal
asignadas al mismo, direcciones físicas
La MMU (unidad de administración de memoria) ) realizará la
traducción de las direcciones
Se crea un espacio lógico (o mapa) independiente para cada
proceso proyectándolo sobre la parte correspondiente de la
memoria principal de acuerdo con la función de traducción
Tema 4 Administraci ón de la memoria – p.6/128
Protección
Un proceso no puede acceder a la zona de memoria
asignada a otros procesos, ni a la del S.O.
Es necesario un mecanismo para proteger al S.O. y a
los procesos entre sí ) espacios lógicos disjuntos
La reubicación complica la protección
Todas las referencias a memoria de un proceso deben
comprobarse durante su ejecución ) sólo accedan a
su espacio de memoria
La protección de memoria se tiene que satisfacer a
nivel hardware, y no software (El S.O. tendría que tomar el
control en cada referencia a memoria, para realizar la comprobación)
El mecanismo de protección suele estar integrado en
la función de traducción
Tema 4 Administraci ón de la memoria – p.7/128
Compartición
Debe haber flexibilidad para permitir que varios
procesos accedan a un misma zona de memoria:
Dos procesos ejecutando el mismo programa ) mismo código
Varios procesos pueden utilizar una misma estructura de datos
Permitir que direcciones lógicas de dos o más
procesos, posiblemente distintas entre sí, se
correspondan con la misma dirección física )
compartir memoria
La compartición de memoria no debe comprometer la
protección básica
El mecanismo empleado para la reubicación es la
base para las capacidades de compartición
Tema 4 Administraci ón de la memoria – p.8/128
Organización lógica de los programas
Programas ) organizados en módulos, cada uno con
sus características (algunos son modificables y otros no)
Si el S.O. y el HW pueden tratar de forma efectiva los
programas de usuario y los datos en forma de módulos,
se tienen una serie de ventajas:
Se pueden escribir y compilar independientemente, y el sistema
resuelve en ejecución todas las referencias de un módulo a otro
Distintos grados de protección: sólo lectura, sólo ejecución
Posibilidad de compartir módulos (más fácil para el usuario)
Segmentación ) herramienta que más fácilmente
satisface estas necesidades
Tema 4 Administraci ón de la memoria – p.9/128
Organización física
La memoria está organizada, al menos, en dos niveles:
Principal ) acceso más rápido, coste más alto y volátil
Secundaria ) más lenta y barata, y no volátil
Secundaria ) almacenar, a largo plazo, programas y
datos
Principal ) mantener los programas y datos de uso
actual
La organización del flujo de información entre la
memoria principal y la secundaria es responsabilidad
del S.O. ) Esencia de la gestión de memoria
Tema 4 Administraci ón de la memoria – p.10/128
Maximizar el rendimiento
El gestor de memoria debe maximizar el número de
procesos en memoria, y minimizar el desperdicio
inherente al reparto
Política de asignación ) decidir qué direcciones de
memoria se asignan para satisfacer una petición
La propia gestión de memoria supone un gasto de
memoria
Óptimo: cualquier dirección lógica ) traducida por
cualquier dirección física (¡Irrealizable!)
Hay zonas de memoria que no se pueden asignar a
procesos (DMA, S.O., disp. mapeados a memoria)
Para un mejor aprovechamiento de la memoria ) casi
todos los S.O. usan paginación
Para optimizar el rendimiento ) memoria virtual
Tema 4 Administraci ón de la memoria – p.11/128
Mapas de memoria de los procesos
Problema: los mapas de memoria de los procesos son muy grandes
y no caben en memoria
Inicialmente la memoria era muy cara ) los procesos se veían
limitados por su tamaño. Una solución fue:
Overlays ) dividir el programa en una serie de fases que se
ejecutan sucesivamente, pero estando residente en memoria
sólo una fase. Cada fase, al terminar, carga la siguiente fase, y le
cede el control.
Memoria virtual ) permite proporcionar a un proceso,
transparentemente, un mapa de memoria mayor que la memoria
principal
La disponibilidad de memorias mayores permite a los programadores
crear aplicaciones con mayores necesidades de memoria ) sigue
siendo necesario el uso de la memoria virtual
Tema 4 Administraci ón de la memoria – p.12/128
1.2 Modelo de memoria de un proceso
Fases en la generación de un ejecutable
Aplicación ) conjunto de módulos de código que han
de ser procesados para obtener el ejecutable:
Compilación ) genera el código máquina de cada módulo
fuente, asignando direcciones a los símbolos definidos en el
módulo, y resolviendo las referencias a los mismos
Montaje o enlace ) genera un ejecutable agrupando todos los
archivos objeto y resolviendo las referencias entre módulos y a
símbolos de bibliotecas
Bibliotecas de objetos
Colección de objetos relacionados, normalmente, entre sí
Hay un conjunto de bibliotecas predefinidas que proporcionan
servicios a las aplicaciones, como los correspondientes al S.O.
Tema 4 Administraci ón de la memoria – p.13/128
1.2.1 Fases de la generación de un ejecutable
Bibliotecas estáticas ) las referencias a sus
símbolos se resuelven en la fase de montaje o enlace
Desventajas del enlace estático de las bibliotecas:
El archivo ejecutable puede tener un tamaño considerable (código
aplicación + código de las funciones externas)
Todos los programas que usen una determinada función de
biblioteca, tendrán una copia del código (p.e. la función printf )
Gran desperdicio de memoria ) en ejecuciones simultáneas de
programas que usan las mismas funciones de biblioteca, habrá
múltiples copias de las mismas en memoria
Actualizar una biblioteca supone tener que volver a enlazar todos
los programas que usan esa biblioteca (si queremos que usen
las nuevas funciones)
Tema 4 Administraci ón de la memoria – p.14/128
1.2.1 Fases de la generación de un ejecutable
Bibliotecas dinámicas o enlazadas dinámicamente
El proceso de enlace se aplaza y se realiza en tiempo de
ejecución del programa ) enlace dinámico implícito
Fase del montaje ) se anota el nombre de la biblioteca para
cargarla y enlazarla al ejecutarse
Se incluye un módulo de montaje dinámico ) realizará la
carga y montaje de la biblioteca en la primera referencia a ella en
tiempo de ejecución
En el ejecutable:
Las referencias a símbolos de la biblioteca se corresponden con símbolos en
el módulo de montaje dinámico
1a referencia a uno de esos símbolos ) activación del módulo ) carga y
montaje de la biblioteca
También se resuelve la referencia a ese símbolo, para posteriores usos
Podría suponer modificar durante la ejecución el código (en principio de sólo
lectura)
Tema 4 Administraci ón de la memoria – p.15/128
Bibliotecas dinámicas
Ventajas:
Tamaño de los ejecutables ) disminuye considerablemente
Rutinas de biblioteca ) únicamente en un archivo
Varios procesos en ejecución ) compartir el código de la
biblioteca
Actualización inmediata
Si se producen cambios en la interfaz ) no podrá usar
la biblioteca. Posible solución:
Mantener número de versión asociado a cada biblioteca
En el montaje guardar el número de versión en el fichero
ejecutable, para usarlo en el enlace durante la ejecución
Cambio de interfaz ) nueva versión de la biblioteca
Tema 4 Administraci ón de la memoria – p.16/128
Bibliotecas dinámicas (ii)
¿Cómo compartir el código de una biblioteca dinámica
entre distintos procesos? Tres posibles alternativas:
Establecer un rango de direcciones predeterminado y específico
para cada biblioteca dinámica. Todos los procesos incluirán ese
rango en su mapa de memoria.
Poco flexible ) limita el número de bibliotecas
Es posible encontrar procesos con mapas de memoria grandes, pero con
zonas sin utilizar
Reubicar las referencias presentes en el código de la biblioteca
durante la carga de la misma, ajustándose a las direcci
Comentarios de: Tema 4 - Administración de la memoria (0)
No hay comentarios