III - GESTIÓN DE MEMORIA. ALMACENAMIENTO VIRTUAL: ORGANIZACIÓN

Preview:

Citation preview

III - GESTIÓN DE MEMORIA

ALMACENAMIENTO VIRTUAL: ORGANIZACIÓN

Memoria virtual

La idea es proporcionar un espacio de direcciones de memoria mucho mayor que el que la MP o MR proporciona.

Para ello se usa la MP y también algo de MR. Es el sistema operativo quien gestiona esta

“ilusión” de poseer una memoria mayor. Hay dos técnicas: paginación y segmentación. A continuación se muestra como ha sido la

evolución histórica.

Conceptos básicos

La clave es la disociación de las direcciones a las que hace referencia un proceso en ejecución de las direcciones disponibles en MP.

Así, hay direcciones reales y direcciones virtuales, y existe un mecanismo de correspondencia entre las mismas.

Esta correspondencia se realiza en tiempo de ejecución.

Conceptos básicos

La contigüidad artificial establece que los elementos contiguos en memoria virtual no necesariamente se corresponden con elementos contiguos en MP.

Almacenamiento en múltiples niveles

La memoria virtual se basa en un esquema de 2 niveles para el almacenamiento.

Correspondencia de bloques Se trata entonces de mantener mapas de

correspondencia de traducción de direcciones.

Ahora, si existiera una entrada en el mapa de correspondencias por cada entrada en el espacio de direcciones virtual, entonces la información de correspondencias sería tan voluminosa que sería inimplementable.

Entonces, al no poder hacer correspondencia individual de direcciones, se hace correspondencia de bloques.

continuación

La información se agrupa en bloques. Los bloques pueden estar en MP o MS. Se lleva un registro de dónde está cada

bloque. Los bloques más grandes reducen el

overhead de espacio al traducir direcciones, pero aumentan el tiempo de transferencia de páginas.

Cuando los bloques son todos del mismo tamaño se llaman páginas, y si son de tamaños distintos se llaman segmentos.

Direccionamiento

El direccionamiento es bidireccional. Dirección virtual v V=(b,d)B=bloqueD=desplazamiento (dirección relativa

dentro del bloque).

Direcciones

Cada proceso tiene su tabla de correspondencia de bloques.

Un registro de origen de la tabla de correspondencia de bloques se carga con la dirección real a, de la tabla de correspondencia de bloques del proceso, durante la conmutación de contexto.

La tabla tiene una entrada por cada bloque.

Dirección real r=b’+d

Paginación

Es el método más común. V=(p,d) dirección virtual La figura muestra la memoria real

dividida en marcos de página.

Traducción de direcciones en paginación

Figura explicando la traducción de una dirección v=(p,d)

Varias formas de implementar la traducción

1) Paginación por correspondencia directa.

2) Traducción por correspondencia asociativa pura

La memoria asociativa accede por contenido, y no por dirección, y tiene ciclos de acceso 1 orden de magnitud más rápidos que en almacenamiento primario común.

3) Mecanismo mixto asociativa/directa

Compartimiento sobre paginación

En la mayor parte de los casos se separan programas y datos.

En la figura se muestra un ejemplo.

Segmentación

De lo anterior persiste el problema de ejecutar los programas en un bloque de localidades contiguas de almacenamiento real.

Ahora, con segmentos de largo variable no hay problema.

Claves de protección del almacenamiento

Para que los usuarios no se invadan unos a otros.

En paginación era muy simple.

Traducción

Una dirección virtual v=(s,d) En la figura se muestra como se traduce:

Los bloques pueden tener distintos permisos de acceso a los usuarios.

A continuación se muestran algunos ejemplos de control de acceso.

Una entrada típica en la tabla de correspondencia de segmentos sería la que sigue.

Traducción en un sistema mixto La siguiente figura ilustra la traducción

de direcciones en un sistema mixto…

ALMACENAMIENTO VIRTUAL: ADMINISTRACIÓN

Estrategias de administración de memoria virtual Estrategias de obtención: próxima

página/sgto. a traer de MS a MP. Estrategias de colocación: en qué lugar

se coloca la nueva página que entra a MP. En paginación es trivial, pues todos los marcos de página son del mismo tamaño.

Estrategias de reemplazo: qué página sale de MP a MS.

Estrategias de reemplazo

Principio de optimalidad: quitar la que tardará más tiempo en ser usada.

Reemplazo aleatorio: cualquiera. Reemplazo PEPS. Reemplazo LRU (least recently used) (se

etiquetan en el tiempo). Reemplazo LFU (se mide frecuencia de

uso). Reemplazo página NUR (no usada

recientemente).

Anomalía PEPS: una curiosidad Con PEPS, se observa que ampliando MP

pueden aumentar los page fault. A continuación se muestra este ejemplo,

que es más que nada una curiosidad.

Localidad

Se ha observado empíricamente que: Los procesos tienden a acceder a la

memoria en patrones no uniformes y altamente localizados.

Los procesos tenderán a favorecer ciertos subconjuntos de páginas, y éstas tienden a ser adyacentes en el espacio de direcciones virtuales.

Working set

La administración del almacenamiento mediante grupos de trabajo, intenta mantener en MP los working set de los procesos.

Estrategias de obtención

Paginación por demanda: la página que es accedida es la próxima a alojar en MP.

Paginación anticipada: trata de anticipar la necesidad, trayendo en forma predictiva, páginas de MS a MP.

Otros puntos a discutir

Tamaño óptimo de página Cuanto menor sea la página, hay más páginas

y marcos y mayor es el tamaño de las tablas. Con páginas más grandes, se mueven entre MP

y MS bloques más grandes. Se desea reducir al mínimo las transferencia de

y a disco. La localidad referencial indica empíricamente

que sirven páginas relativamente chicas. Una medida empírica del working set puede

ayudar a determinar el tamaño óptimo de página.

Control de lectura

A esta altura ya debería haber leído hasta el capítulo 10 (inclusive) de Deitel o su equivalente en los otros textos.

Recommended