Tema 6. Gestión de la memoria

Anuncio
 Tema 6. Gestión de la memoria
Introducción
Compartición de memoria
Memoria virtual
Soporte en los procesadores: la MMU
Gestión de la memoria en Linux
Índice
Gestión de la memoria en Windows NT/2000
Sistemas Operativos II (II-UJI)
1
Gestión de la memoria
Tema 6. Gestión de la memoria
Necesidad de la gestión de la memoria
Requisitos
Introducción
Modelo de memoria de los procesos
Sistemas Operativos II (II-UJI)
2
Gestión de la memoria
Introducción
Necesidad de gestión de la memoria
La memoria es un recurso más, muy importante, del sistema.
Los procesos compiten por disponer de tal recurso.
Todos los procesos en ejecución están consumiendo memoria.
La memoria que necesita un proceso durante toda su ejecución
puede asignarse por demanda.
¿De qué depende la memoria mínima necesaria para la ejecución
de un proceso?
La memoria se debe poder compartir.
Entre el SO y un proceso (monotarea)
Entre el SO y los distintos procesos activos (multitarea)
Sistemas Operativos II (II-UJI)
3
Gestión de la memoria
Introducción
Requisitos de la gestión de la memoria
Cada proceso debe tener un conjunto de direcciones propio,
independiente del estado instantáneo de la memoria del sistema.
Posibilidad de reubicación.
Espacio de direcciones lógico para cada proceso.
Un proceso no debe poder acceder a la memoria asignada a otro.
Distintos procesos deben poder compartir zonas de memoria comunes.
El sistema operativo debe dar soporte adecuado a las distintas zonas de
memoria de los procesos.
El sistema de gestión de memoria debe ser eficiente.
Sistemas Operativos II (II-UJI)
4
Gestión de la memoria
Introducción
Modelo de memoria de los procesos
Un proceso es un programa en ejecución.
Se genera mediante compilación y enlazado de diversos módulos
fuente y objeto.
Tiene una estructura específica de fichero ejecutable en disco.
A la hora de crear un proceso, el SO interpreta el formato y asigna
adecuadamente la memoria y otros recursos, y crea las estructuras
de datos necesarias.
La estructura de los distintos formatos de ejecutables es similar:
Un conjunto de regiones contiguas en disco y en memoria, con sus
propiedades y usos bien definidos.
Un conjunto de símbolos y referencias dinámicos.
Indicaciones acerca de direcciones de memoria.
Sistemas Operativos II (II-UJI)
5
Gestión de la memoria
Introducción
Modelo de memoria de los procesos (continuación)
Los tipos de regiones utilizados son:
Código: +rx. Código ejecutable del proceso.
Datos constantes: +r.
Datos inicializados: +rw.
Datos no inicializados: +rw.
Pila: +rw.
Heap: +rw. Bloque de memoria dinámica.
Archivos en memoria: +rw
Memoria compartida
...
Sistemas Operativos II (II-UJI)
6
Gestión de la memoria
Tema 6. Gestión de la memoria
Asignación de memoria contigua
Segmentación
Paginación
Compartición de memoria
Segmentación paginada
Sistemas Operativos II (II-UJI)
7
Gestión de la memoria
Compartición de memoria
Conceptos básicos:
La memoria física del sistema debe poder repartirse entre los distintos
procesos con los requisitos que hemos visto:
Independencia
Protección
Eficacia
Mecanismos de compartición
Asignación de memoria contigua
Segmentación
Paginación
Segmentación paginada
Sistemas Operativos II (II-UJI)
8
Gestión de la memoria
Compartición de memoria
Asignación de memoria contigua
El sistema operativo busca un hueco para ubicar el mapa de memoria
completo de un proceso.
El hardware de soporte es muy simple:
Registro límite del mapa de memoria del proceso.
Registro de traducción de direcciones.
Inconvenientes:
Asignación de huecos en memoria.
Fragmentación externa.
Protección limitada –accesos del propio proceso.
Sistemas Operativos II (II-UJI)
9
Gestión de la memoria
Compartición de memoria
Segmentación
Se adapta perfectamente al modelo de memoria de los procesos.
El mapa de memoria del proceso se divide lógicamente en trozos
disjuntos de tamaño variable llamados segmentos.
Cada segmento se ubica en memoria según el esquema anterior.
Hacen falta dos registros –como antes- por segmento, más
información acerca de permisos, etcétera.
Se crea una Tabla de Descriptores de Segmento (ej. IA32)
Inconvenientes:
Asignación de huecos en memoria.
Fragmentación externa.
Modelo de direcciones segmentadas o estancas.
Soluciona los problemas de protección del modelo anterior.
Sistemas Operativos II (II-UJI)
10
Gestión de la memoria
Compartición de memoria
Paginación
Consigue satisfacer los requisitos de un sistema de gestión de memoria,
con las siguientes características:
Permite un buen aprovechamiento de la memoria.
Facilita la gestión de la memoria virtual.
No necesita de direcciones segmentadas, permitiendo regiones no
estancas de memoria.
Necesita soporte más complejo por parte del sistema operativo y del
hardware.
Es la técnica más usada en los procesadores actuales.
Sistemas Operativos II (II-UJI)
11
Gestión de la memoria
Compartición de memoria
Paginación (continuación)
En un sistema con paginación la memoria –lógica y física- se considera
dividida en trozos de igual tamaño.
Los trozos de memoria lógica se llaman páginas.
Los trozos de memoria física se denominan marcos.
Ciertos sistemas permiten páginas de distintos tamaños. En este
caso los tamaños son múltiplos del tamaño del marco –o de la
menor página.
Cada página en memoria física ocupa un marco cualquiera.
Se requiere una estructura compleja de traducción (Tablas de
Páginas).
Se evita la fragmentación externa a costa de interna.
Sistemas Operativos II (II-UJI)
12
Gestión de la memoria
Compartición de memoria
Paginación (continuación)
Tablas de páginas y traducción de direcciones.
Una dirección lógica se divide en dos campos:
Número de página
Desplazamiento –offsett- dentro de la página.
Para traducir la dirección se cambia el nº de página por el de marco
Las traducciones se guardan en la Tabla de Páginas.
Se incluye información adicional –PID, permisos, caché...
Se necesita soporte hardware para la traducción (TLB).
Soporta perfectamente la compartición.
El tamaño de las tablas de páginas puede ser considerable, siendo
las tablas invertidas una solución.
Sistemas Operativos II (II-UJI)
13
Gestión de la memoria
Compartición de memoria
Segmentación paginada
Sobre un esquema de memoria segmentada, se superpone otro de
paginación.
Las direcciones sufren una doble traducción.
Se evita la fragmentación externa, pero no la interna.
Se añade un nivel de protección –límite de segmento.
Se permiten direcciones segmentadas.
Facilita la gestión de memoria virtual.
Sistemas Operativos II (II-UJI)
14
Gestión de la memoria
Tema 6. Gestión de la memoria
Conceptos básicos
Esquemas de memoria virtual
Problemas de la memoria virtual
Memoria virtual
Otras consideraciones
Sistemas Operativos II (II-UJI)
15
Gestión de la memoria
Memoria Virtual
Conceptos básicos
Como se ha visto, no existe una relación directa entre el espacio de
direcciones de un proceso y el mapa de memoria físico.
El espacio de direccionamiento de un proceso está limitado por la
arquitectura, la memoria física por otros condicionantes
El espacio de direcciones de un proceso es mucho mayor que la
memoria física disponible.
Un sistema operativo multitarea debe dar soporte a varios procesos
en ejecución al mismo tiempo.
La memoria virtual es un mecanismo para poder gestionar
adecuadamente estas paradojas.
Se utiliza un dispositivo de almacenamiento masivo, más lento y
barato, como zona de intercambio o swap.
Las páginas que no ocupan un marco son llevadas a disco.
Aprovecha la localidad de referencia de los accesos a memoria.
Sistemas Operativos II (II-UJI)
16
Gestión de la memoria
Memoria Virtual
Esquemas de memoria virtual
El más utilizado es la paginación por demanda.
Se utiliza en modelos de compartición paginados.
Las páginas residen en memoria física o en disco.
Las tablas de páginas se extienden con información acerca de la
relación del estado de la página –en disco, limpia, modificada...
Las tablas de páginas –mucho mayores- no están permanentemente en
memoria. Para acabar encontrando las referencias en memoria se
utilizan:
Tablas de páginas de varios –dos- niveles.
Tablas de páginas del núcleo siempre en memoria principal.
Sistemas Operativos II (II-UJI)
17
Gestión de la memoria
Memoria Virtual
Problemas de la memoria virtual
Las páginas pueden no encontrarse en memoria cuando se necesitan.
Se produce entonces un fallo de página.
El SO busca la página en disco, la lleva a memoria y actualiza las
tablas.
Se han de establecer políticas de planificación: adquisición,
asignación a procesos y reemplazo.
Se pueden producir fenómenos indeseados:
Hiperpaginación: cuando hay demasiados procesos en ejecución, el
SO invierte gran parte de su tiempo en el intercambio de páginas.
Sistemas Operativos II (II-UJI)
18
Gestión de la memoria
Memoria Virtual
Otras consideraciones
De qué depende el número mínimo de páginas en memoria por proceso.
Ciertas estructuras y código del núcleo se dejan siempre en memoria
principal.
Se utilizan políticas de preadquisición etcétera para mejorar las
prestaciones.
Se requiere de un extenso soporte del hardware (MMU)
Sistemas Operativos II (II-UJI)
19
Gestión de la memoria
Tema 6. Gestión de la memoria
Necesidad de soporte físico
Estructura y función del TLB
Excepciones
Soporte en los procesadores: la MMU
Memoria virtual y caché
Sistemas Operativos II (II-UJI)
20
Gestión de la memoria
Soporte en los procesadores: la MMU
Necesidad de soporte físico
La traducción de direcciones se realiza al menos una vez por instrucción,
luego debe ser muy rápida.
Se deben utilizar excepciones para solucionar los problemas propios de
la gestión de la memoria –por ejemplo, fallos de página.
Toda la circuitería de soporte a la gestión de memoria se encuentra en la
Unidad de Gestión de Memoria (MMU, Memory Management Unit)
Sistemas Operativos II (II-UJI)
21
Gestión de la memoria
Soporte en los procesadores: la MMU
Estructura y función del TLB
El Translation Lookaside Buffer es una caché de entradas de tablas de
página, por lo que replica su estructura.
Se utiliza para traducir direcciones sin acceder a memoria.
Se rellena mediante instrucciones especiales, y puede generar
excepciones.
Requiere de políticas de actualización y reemplazo.
Sistemas Operativos II (II-UJI)
22
Gestión de la memoria
Soporte en los procesadores: la MMU
Excepciones
Violaciones de privilegio.
Fallo de página.
Fallo del TLB.
Sistemas Operativos II (II-UJI)
23
Gestión de la memoria
Soporte en los procesadores: la MMU
Memoria virtual y caché
Las cachés virtuales son más rápidas, pero producen aliasing.
Las cachés físicas son más lentas, luego suelen darse en el nivel 2.
Sistemas Operativos II (II-UJI)
24
Gestión de la memoria
Descargar