Tema 6. Gestión de la memoria -...

24
Sistemas Operativos II (II-UJI) Gestión de la memoria 1 Tema 6. Gestión de la memoria Índice Introducción Compartición de memoria Memoria virtual Soporte en los procesadores: la MMU Gestión de la memoria en Linux Gestión de la memoria en Windows NT/2000

Transcript of Tema 6. Gestión de la memoria -...

Sistemas Operativos II (II-UJI) Gestión de la memoria1

���� �� �Tema 6. Gestión de la memoria

Índice

� Introducción

� Compartición de memoria

� Memoria virtual

� Soporte en los procesadores: la MMU

� Gestión de la memoria en Linux

� Gestión de la memoria en Windows NT/2000

Sistemas Operativos II (II-UJI) Gestión de la memoria2

���� �� �Tema 6. Gestión de la memoria

Introducción

� Necesidad de la gestión de la memoria

� Requisitos

� Modelo de memoria de los procesos

Sistemas Operativos II (II-UJI) Gestión de la memoria3

���� �� �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) Gestión de la memoria4

���� �� �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) Gestión de la memoria5

���� �� �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 suspropiedades y usos bien definidos.

� Un conjunto de símbolos y referencias dinámicos.

� Indicaciones acerca de direcciones de memoria.

Sistemas Operativos II (II-UJI) Gestión de la memoria6

���� �� �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) Gestión de la memoria7

���� �� �Tema 6. Gestión de la memoria

Compartición de memoria

� Asignación de memoria contigua

� Segmentación

� Paginación

� Segmentación paginada

Sistemas Operativos II (II-UJI) Gestión de la memoria8

���� �� �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) Gestión de la memoria9

���� �� �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) Gestión de la memoria10

���� �� �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) Gestión de la memoria11

���� �� �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) Gestión de la memoria12

���� �� �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) Gestión de la memoria13

���� �� �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) Gestión de la memoria14

���� �� �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) Gestión de la memoria15

���� �� �Tema 6. Gestión de la memoria

Memoria virtual

� Conceptos básicos

� Esquemas de memoria virtual

� Problemas de la memoria virtual

� Otras consideraciones

Sistemas Operativos II (II-UJI) Gestión de la memoria16

���� �� �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) Gestión de la memoria17

���� �� �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) Gestión de la memoria18

���� �� �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) Gestión de la memoria19

���� �� �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) Gestión de la memoria20

���� �� �Tema 6. Gestión de la memoria

Soporte en los procesadores: la MMU

� Necesidad de soporte físico

� Estructura y función del TLB

� Excepciones

� Memoria virtual y caché

Sistemas Operativos II (II-UJI) Gestión de la memoria21

���� �� �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) Gestión de la memoria22

���� �� �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) Gestión de la memoria23

���� �� �Soporte en los procesadores: la MMU

� Excepciones

� Violaciones de privilegio.

� Fallo de página.

� Fallo del TLB.

Sistemas Operativos II (II-UJI) Gestión de la memoria24

���� �� �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.