PDF de programación - Tema 4 - Administración de la memoria

Imágen de pdf Tema 4 - Administración de la memoria

Tema 4 - Administración de la memoriagráfica de visualizaciones

Publicado el 10 de Febrero del 2017
1.182 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
  • Links de descarga
http://lwp-l.com/pdf2382

Comentarios de: Tema 4 - Administración de la memoria (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad