Diferencia entre revisiones de «Memoria Virtual»
m |
|||
Línea 5: | Línea 5: | ||
* 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 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. | + | * 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. | 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. |
Revisión del 18:29 18 dic 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.
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.
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.