Gestión de memoria virtual

16
1 SISTEMAS OPERATIVOS Ing. Samanta Patricia Cueva MEMORIA VIRTUAL

Transcript of Gestión de memoria virtual

1

SISTEMAS OPERATIVOS

Ing. Samanta Patricia Cueva

MEMORIA VIRTUAL

FUNDAMENTOS• La técnica de Memoria Virtual es un mecanismo que permite la ejecución de procesos que no se encuentran completamente en la memoria.

•Una ventaja es que los programas pueden tener un tamaño mayor que la propia memoria física

•La memoria virtual no resulta fácil de implementar y puede reducir sustancialmente el rendimiento del sistema si se la utiliza sin el cuidado.

Fundamentos•La posibilidad de ejecutar un programa que sólo se encontrará parcialmente en la memoria proporciona muchas ventajas:

• Los programas ya no estarán restringidos por la cantidad de memoria física disponible, se podrán escribir programas para un espacio de direcciones virtual extremadamente grande.

• Cada programa de usuario podría ocupar menos memoria física, se podrán ejecutar más programas al mismo tiempo.

• Se necesitarían menos operaciones de E/S para cargar o intercambiar cada programa de usuario con el fin de almacenarlo en memoria.

PAGINACIÓN BAJO DEMANDA¿Cargarse un programa ejecutable desde el Disco a la Memoria?

•Cargar el programa completo en memoria física en el momento de ejecutar el programa puede que no necesitemos inicialmente todo el programa en la memoria.

•Otra opción es cargar las páginas únicamente cuando sean necesarias ésta técnica se llama paginación bajo paginación bajo demanda demanda y se utiliza en los sistemas de memoria virtual.

•Solo se cargan las páginas cuando así se solicita durante la ejecución del programa por tanto las páginas a las que nunca se acceda no llegaran a cargarse en la memoria física.

• Cuando se quiere ejecutar un proceso, se realiza un intercambio para cargarlo en memoria pero no se intercambia el proceso completo sino mas bien se utiliza un intercambiador perezosointercambiador perezoso

PAGINACIÓN BAJO DEMANDA• El intercambiador perezoso jamás intercambia una página con la memoria a menos que ésta vaya a ser necesaria, reduciendo así el tiempo de carga y la cantidad de memoria física utilizada

•Es necesario dejar claro una diferencia un intercambiador manipula procesos completos. Mientras que un paginadorpaginador sólo se ocupa de las páginas individuales de un proceso.

•Al momento de cargar un proceso, el paginador realiza una estimación de que páginas serán utilizadas antes de descargar de nuevo el proceso.

•Se necesita un soporte Hardware para distinguir entre las páginas que se encuentran en memoria y las páginas que residen en disco, para esto se usa un bit válido- inválido

•Cuando se configura este bit como “válido”, la página asociada será legal (memoria).

•Cuando se configura este bit como “inválido”, la página no es válida y está actualmente en el disco.

SUSTITUCIÓN DE PÁGINAS•Cuando se está ejecutando un proceso de usuario y si se produce un fallo de página, el SO determina donde reside la página deseada dentro del disco y entonces se encuentra con que no haya ningún marco libre en la lista de marcos libres, toda la memoria esta siendo utilizada, para esto se utiliza la técnica de sustitución de páginas

•Si no hay ningún marco libre, se localiza uno que no esté siendo utilizado actualmente y se lo libera.

•El mecanismo de sustitución de páginas es:

• Hallar la ubicación de la página deseada dentro del disco.

• Localizar un marco libre.

• Si hay un marco libre utilizarlo

• Si no hay seleccionar una víctima (algoritmo de sustitución)

• Escribir el marco de víctima en el disco.

•Leer la página deseada y cargarla en el marco

•Reiniciar el proceso de usuario.

SUSTITUCIÓN DE PÁGINAS FIFO• Asocia cada página al instante en que dicha página fuera cargada

en memoria.

•Cuando hace falta sustituir una página se elige la páginas más antigua.

•Se crear un cola FIFO para almacenar todas las páginas en memoria y sustituir la página situada al principio de la cola.

•Es fácil de entender y de programar

•Su rendimiento no siempre es bueno.

•La página sustituida puede ser un módulo de inicialización que ya no será necesario pero también puede ser una variable muy utilizada.

•Anomalía de Belady la tasa de fallos de página puede incrementarse a medida que se incrementa el número de marco asignados.

Sustitución de Páginas FIFO

Sustitución de Óptima de Páginas• Un algoritmo óptimo de sustitución es aquel que por lo general

tiene la tasa más baja de fallos entre todos los algoritmos y que nunca está sujeto a la anomalía de Belady.

•Sustituir la página que no vaya a ser utilizada durante el período de tiempo más largo.

•Difícil de implementar porque requiera un conocimiento futuro de la cadena de referencia.

Sustitución de Páginas LRU• Sustituir la página que no haya sido utilizada durante el período

más largo de tiempo.

• Menos recientemente utilizada.

•LRU asocia con cada página el instante correspondiente al último uso de dicha página.

•El problema es como implementar este algoritmo

Asignación de Marco

¿Cómo asignamos la cantidad fija de memoria libre a los procesos?

No podemos por ejemplo asignar un número de marcos superior al número total de marcos disponibles

Debemos asignar al menos un número mínimo de marcos (rendimiento)

A medida que el número de marcos asignados a un proceso se reduzca se incrementa el número de fallos.

El número mínimo de marco esta definido por la arquitectura informática

La formas más fácil de repartir m marcos entre n procesos es dar a dar uno un número igual de marcos (asignación equitativa)

m/n

Asignación de Marco

Otra alternativa es darse cuenta que los diversos procesos necesitan cantidades diferentes de memoria

Asignación Proporcional asignando la memoria disponible a cada proceso de acuerdo al tamaño de éste.

S = ΣSi

ai = si /S * m

De esta forma, ambos procesos compartirán los marcos disponibles de acuerdo a sus necesidades, en lugar de repartir los marcos equitativamente.

Asignación de Marco

Asignación Global y Local

Sustitución Global: permite que un proceso seleccionar un marco de sustitución de entre el conjunto de todos los marcos disponibles, incluso si dicho marco esta asignado a otro proceso.

Sustitución Local: cada proceso solo efectúa esa selección entre su propio conjunto de marcos asignados

Sobrepaginación Si un proceso no dispone de suficientes marcos generará rápidamente fallos de página.

Deberá sustituir alguna página sin embargo como todas sus páginas se están usando activamente se verá forzado a sustituir una página que volverá a ser utilizada enseguida.

Volverá a generar otro fallo de página

Esta alta tasa de paginación se conoce como sobrepaginación

Un proceso entrará en sobrepaginación cuando invierte más tiempo generando fallos de página que en la ejecución propia del proceso

Provoca problemas de rendimiento

BIBLIOGRAFÍA

15

Fundamentos de Sistemas Operativos, Séptima Edición, Silberschatz, Galvin, Gagne

16