Diferencia entre revisiones de «Memoria Virtual»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
Línea 12: Línea 12:
  
 
Los tiempos de descarga y recarga de páginas tienen una penalización considerable. Esto se debe a los tiempos de acceso al dispositivo disco magnético son mucho mayores que los de la memoria principal. En general, un buen criterio de reemplazo de páginas debe no descargar páginas que vayan a ser necesitadas en poco tiempo, reduciendo así la cantidad de accesos a disco asociados a la descarga y recarga de páginas. A día de hoy con el auge de los [http://es.wikipedia.org/wiki/Unidad_de_estado_s%C3%B3lido SSD (Solid-State Drive)], podríamos mitigar esto en gran parte debido a basarse en memoria flash y tener tiempos de acceso del orden de 0.1ms e inferiores al no depender de partes mecánicas para la lectura/escritura de datos.  
 
Los tiempos de descarga y recarga de páginas tienen una penalización considerable. Esto se debe a los tiempos de acceso al dispositivo disco magnético son mucho mayores que los de la memoria principal. En general, un buen criterio de reemplazo de páginas debe no descargar páginas que vayan a ser necesitadas en poco tiempo, reduciendo así la cantidad de accesos a disco asociados a la descarga y recarga de páginas. A día de hoy con el auge de los [http://es.wikipedia.org/wiki/Unidad_de_estado_s%C3%B3lido SSD (Solid-State Drive)], podríamos mitigar esto en gran parte debido a basarse en memoria flash y tener tiempos de acceso del orden de 0.1ms e inferiores al no depender de partes mecánicas para la lectura/escritura de datos.  
 +
 +
== Elementos de análisis ==
 +
Dado un criterio de sustitución, nos preguntamos si es bueno o malo, y lo comparamos con otro para saber cual es el mejor y cuanto mejor. El criterio de localidad no es una herramienta, sino una propiedad que empíricamente se comprueba que se cumple. Las herramientas para conocerlo son:
 +
 +
''' Cadenas de referencia '''
 +
 +
Secuencia de páginas referidas por un proceso. Suponiendo que un proceso hace los siguientes accesos a memoria (pagina/desplazamiento):
 +
0, 1, 0, 0/6, 0/8, 1/0, 0/0, 0/2,2, 255, 2… 1/1, 1/4, 0/8, 2/15, 2/18, 2/15, 2/18, 255/32, 255/36, 2/15
 +
 +
No nos importan ni los desplazamientos ni que se acceda varias veces consecutivas a la misma página, el fallo de página se produce en el primer acceso. En una cadena de referencia, nunca aparecerán varias referencias consecutivas a la misma página. Realizar la traza de lo programado es complicado porque no conocemos el futuro, se obtiene una simulación.
 +
 +
''' Índices de valoración '''
 +
 +
Sirve para medir las prestaciones de los criterios. Todos ellos están referidas a una cadena de referencia. 
 +
*F(m): Número de fallos de páginas con m marcos.
 +
*f= F(m) /A: Tasa de fallos de páginas.
 +
*fc= (F(m) -m )/A: Tasa de fallos de páginas en caliente.
 +
*F(m) -m: Número de fallos de páginas en caliente.
 +
*A = Número de accesos.
 +
 +
''' Curva paracorde '''
 +
 +
Representación del número de fallos de páginas para una cadena de referencia, frente al número de marcos utilizados. Sea p = número de páginas (distintas) en cadena de referencia. El número característico es el área bajo la curva, y es una buena medida de la calidad del algoritmo.
 +
 +
''' Principio de localidad '''
 +
*Localidad espacial: Si una página es accedida es muy probable que se acceda eventualmente a una página próxima a ella.
 +
 +
*Localidad temporal: Si una página es accedida en un instante de tiempo, es muy probable que en el futuro inmediato vuelva a ser accedida.
 +
 +
El principio de localidad nos beneficia pues, si los accesos a memoria fuesen totalmente aleatorios, la probabilidad de producirse un fallo sería inversamente proporcional al número de marcos, con lo que la curva paracorde sería una recta de pendiente negativa. No obstante, se comprueba que las curvas paracordes típicas tienen una forma como la que presentamos, sensiblemente mejor que la probabilidad inversa al número de páginas.
 +
  
 
A continuación, nos centraremos en el estudio de los diferentes [[Criterios de reemplazo|criterios de reemplazo]] para páginas que permiten seleccionar la página víctima.
 
A continuación, nos centraremos en el estudio de los diferentes [[Criterios de reemplazo|criterios de reemplazo]] para páginas que permiten seleccionar la página víctima.

Revisión del 22:44 21 ene 2013

La memoria virtual es una técnica que puede implementar el administrador de memoria con soporte de paginación para aumentar el grado de multiprogramación. Para ello se emplea una zona en disco conocida como zona de intercambio o swap para descargar en ella segmentos o páginas que se encuentran en memoria principal.

La zona de intercambio se implementa siguiendo dos posibles estrategias:

  • Se destina una parte del disco reservada explícitamente para ello. En este caso, dicho espacio de memoria no puede ser empleado para almacenar información útil del usuario. Los sistemas operativos tipo-Unix implementan esta estrategia.
  • Se emplea un fichero oculto que puede tener un tamaño fijo(donde dicho espacio estará reservado y el usuario no podra hacer uso de el) o variable para almacenar las páginas descargadas. Los sistemas operativos de tipo-Microsoft implementan esta aproximación.

La técnica de memoria virtual se manifiesta cuando toda la memoria principal está en uso y, por tanto, no existe espacio libre para cargar una cierta pagina que es requerida por un proceso. Ante esta situación, el mecanismo de memoria virtual permite seleccionar una página víctima que será descargada a la zona de intercambio. De esta manera se libera memoria principal para poder cargar la página que nuestro proceso en estado activo requiere. La selección de las páginas víctima se hace en base a diferentes criterios que veremos en esta unidad didáctica. También hay programas que hacen uso de esta memoria virtual aún cuando hay memoria física disponible, como por ejemplo programas de edición fotográfica provocan errores sin él.

Por tanto, en caso de que un proceso activo requiera una página o segmento que está descargado en la zona de intercambio, hay que seleccionar una página víctima de otro proceso, preferentemente en estado preparado o bloqueado, que será descargada en disco para hacer espacio a la página requerida.

Los tiempos de descarga y recarga de páginas tienen una penalización considerable. Esto se debe a los tiempos de acceso al dispositivo disco magnético son mucho mayores que los de la memoria principal. En general, un buen criterio de reemplazo de páginas debe no descargar páginas que vayan a ser necesitadas en poco tiempo, reduciendo así la cantidad de accesos a disco asociados a la descarga y recarga de páginas. A día de hoy con el auge de los SSD (Solid-State Drive), podríamos mitigar esto en gran parte debido a basarse en memoria flash y tener tiempos de acceso del orden de 0.1ms e inferiores al no depender de partes mecánicas para la lectura/escritura de datos.

Elementos de análisis

Dado un criterio de sustitución, nos preguntamos si es bueno o malo, y lo comparamos con otro para saber cual es el mejor y cuanto mejor. El criterio de localidad no es una herramienta, sino una propiedad que empíricamente se comprueba que se cumple. Las herramientas para conocerlo son:

Cadenas de referencia

Secuencia de páginas referidas por un proceso. Suponiendo que un proceso hace los siguientes accesos a memoria (pagina/desplazamiento): 0, 1, 0, 0/6, 0/8, 1/0, 0/0, 0/2,2, 255, 2… 1/1, 1/4, 0/8, 2/15, 2/18, 2/15, 2/18, 255/32, 255/36, 2/15

No nos importan ni los desplazamientos ni que se acceda varias veces consecutivas a la misma página, el fallo de página se produce en el primer acceso. En una cadena de referencia, nunca aparecerán varias referencias consecutivas a la misma página. Realizar la traza de lo programado es complicado porque no conocemos el futuro, se obtiene una simulación.

Índices de valoración

Sirve para medir las prestaciones de los criterios. Todos ellos están referidas a una cadena de referencia.

  • F(m): Número de fallos de páginas con m marcos.
  • f= F(m) /A: Tasa de fallos de páginas.
  • fc= (F(m) -m )/A: Tasa de fallos de páginas en caliente.
  • F(m) -m: Número de fallos de páginas en caliente.
  • A = Número de accesos.

Curva paracorde

Representación del número de fallos de páginas para una cadena de referencia, frente al número de marcos utilizados. Sea p = número de páginas (distintas) en cadena de referencia. El número característico es el área bajo la curva, y es una buena medida de la calidad del algoritmo.

Principio de localidad

  • Localidad espacial: Si una página es accedida es muy probable que se acceda eventualmente a una página próxima a ella.
  • Localidad temporal: Si una página es accedida en un instante de tiempo, es muy probable que en el futuro inmediato vuelva a ser accedida.

El principio de localidad nos beneficia pues, si los accesos a memoria fuesen totalmente aleatorios, la probabilidad de producirse un fallo sería inversamente proporcional al número de marcos, con lo que la curva paracorde sería una recta de pendiente negativa. No obstante, se comprueba que las curvas paracordes típicas tienen una forma como la que presentamos, sensiblemente mejor que la probabilidad inversa al número de páginas.


A continuación, nos centraremos en el estudio de los diferentes criterios de reemplazo para páginas que permiten seleccionar la página víctima.