3.2 Organización de Memoria Virtual
El
almacenamiento Virtual suele asociarse con la capacidad para obtener acceso a
direcciones en un espacio de almacenamiento mucho mayor que el disponible en el
almacenamiento primario. Los dos métodos más comunes para poner en practica
este almacenamiento son: La Paginación y la Segmentación
Beneficios de la Mem. Virtual
Se produce un aumento del grado de multiprogramación al no ser necesario que todo el mapa de memoria de un proceso este en memoria principal
Se
puede ejecutar programas más grandes que la memoria principal disponible
3.2.1 EVOLUCIÓN DE LAS ORGANIZACIONES DE ALMACENAMIENTO

3.2.2 PAGINACIÓN
La
unidad básica de este tipo de esquema es la pagina. La pagina corresponde con
una zona de memoria contigua de un determinado tamaño, por motivos de
eficiencia este tamaño debe ser potencia de 2 (un tamaño de pagina de 4kb es
un valor bastante típico) una dirección en un sistema de paginación es un par
ordenado(p,d) en el cual:
P:
es el numero de la pagina de almacenamiento en la que reside el elemento al que
se hace referencia
d:
Es el desplazamiento dentro de la pagina P donde se localiza dicho elemento.
Un
proceso puede ejecutarse si su pagina activa
se encuentra en el almacenamiento primario
Formas
de traducción:
|
Traducción
de Direcciones en la Paginación por Correspondencia Directa |
Tanto la dirección virtual que se traduce como la dirección base de la tabla de correspondencia de páginas se conservan en registros de alta velocidad en el procesador de control, de manera que las operaciones en las que participan pueden realizarse con rapidez dentro de un solo ciclo de ejecución de instrucciones. Pero la tabla de correspondencia de páginas con correspondencia directa, que puede ser muy grande, se conserva por lo regular en almacenamiento primario. En consecuencia, la referencia a la tabla requiere un ciclo completo de almacenamiento primario. Como el tiempo de un ciclo de almacenamiento primario representa la mayor parte de un ciclo de ejecución de instrucciones y se necesita un ciclo de ejecución de almacenamiento primario adicional para la correspondencia de páginas, el empleo de traducción de direcciones de páginas mediante correspondencia directa puede hacer que el sistema ejecute los programas a la mitad de la velocidad, lo cual es inadmisible. Por lo tanto, para lograr una traducción más rápida, la mayor parte de los sistemas actuales colocan la tabla completa de correspondencia directa de páginas en una memoria caché de muy alta velocidad. Tal cosa ha sido posible gracias a que los costos de la memoria caché han disminuido constantemente debido a los avances en la tecnología de memorias (Sm82).
|
Traducción
de Direcciones en la Paginación por Correspondencia Asociativa |
El dilema que se presenta es que la traducción dinámica de direcciones debe ejecutarse con rapidez para hacerse práctico el concepto de almacenamiento virtual. Si resulta muy costoso el empleo de la memoria caché para establecer una correspondencia directa pura, o del almacenamiento asociativo para establecer una correspondencia asociativa pura, los diseñadores pueden escoger un esquema intermedio que ofrezca muchas de las ventajas de la memoria caché o del almacenamiento asociativo, pero con un costo más modesto.
|
Traducción
de Direcciones en la Paginación por Correspondencia Combinada
Asociativa/Directa |
En
las tres últimas décadas, las mejoras han sido mucho más rápidas en el
hardware que en el software. Se ha llegado el punto en que los diseñadores
prefieren no comprometerse con una tecnología de hardware en particular, pues
esperan que pronto se disponga de una tecnología de mejor. Los diseñadores de
sistemas operativos no tienen por lo general muchas opciones, ya que deben poner
en práctica los sistemas operativos con las tecnologías existentes. También
deben enfrentarse a las realidades y los factores económicos del hardware
actual. Hoy en día, la memoria caché y la asociativa son mucho más caras que
el almacenamiento primario de acceso directo, lo que lleva a algunos diseñadores
a recurrir a un mecanismo conciliador de correspondencia de páginas.
Se utiliza un almacenamiento asociativo capaz de contener sólo un pequeño porcentaje de la tabla de correspondencia de páginas de un proceso (esto se denomina a veces buffer de traducción de búsqueda rápida, translation lookaside buffer). Las entradas de página mantenidas en este mapa de correspondencias concuerdan nada más con las páginas a la que se ha hecho referencia más recientemente, utilizando la heurística de que tales páginas tienen probabilidades de ser requeridas en un futuro cercano.
El
mapa de correspondencias de páginas asociativo parcial no necesita ser grande
para lograr un buen desempeño. De hecho, sistemas que utilizan esta técnica
con sólo 8 ó 16 registros de almacenamiento asociativo alcanzan a menudo un
90% del rendimiento que podría obtenerse con un mapa de correspondencias
asociativo completo, el cual podría requerir en los sistemas actuales cientos o
hasta miles de veces ese número de registros. Esto ocurre también gracias al
fenómeno de localidad.
Utilizar o no el mecanismo combinado de correspondencia
asociativa/directa es una decisión de ingeniería basada en los factores económicos
y capacidades relativos de las tecnologías de hardware existentes. En
consecuencia, es importante que los estudiantes y diseñadores de sistemas
operativos estén al tantote las nuevas tecnologías de hardware.
3.2.3 SEGMENTACIÓN
En
los sistemas de almacenamiento virtual con segmentación, una dirección es un
par ordenado V=(s,d)
s: es el numero de segmento en almacenamiento virtual en el que se
encuentra el elemento al que se hace referencia
d: Es el emplazamiento dentro del segmento s en donde se localiza dicho
elemento
Un
segmento entrante puede colocarse en cualquier área disponible del
almacenamiento primario cuyo tamaño sea suficiente para contenerlo.
Las
estrategias de colocación para la segmentación
son idénticas a las empleadas en la multiprogramación con particiones
variables, y las técnicas mas
comunes son las del primer ajuste y del mejor ajuste
3.2.4 SISTEMAS DE PAGINACIÓN - SEGMENTACIÓN
Los segmentos tienen por lo general un tamaño múltiplo de paginas; no es necesario que todas las paginas de un segmento estén en almacenamiento primario a la vez, las paginas que son contiguas en el almacenamiento virtual no son por fuerza contiguas en el almacenamiento virtual no son por fuerza contiguas en el almacenamiento real. V=(s,p,d)
s: Es el numero de segmento
p: Numero de Pagina
d:
El Desplazamiento dentro de la Pagina
Segmentación: En los sistemas de almacenamiento real con segmentación se elimina dicha restricción y un programa (y sus datos) puede ocupar muchos bloques separados de almacenamiento real.