La clave del concepto de memoria
(almacenamiento) virtual está en la disociación:
- De las direcciones a las que hace referencia
un programa.
- De las direcciones disponibles en la memoria
real (almacenamiento primario).
Mientras el proceso se ejecuta con sus
páginas actuales, el sistema carga las demás páginas que estarán disponibles
cuando las requiera el proceso.
El S. O. intenta predecir las páginas que
un proceso va a necesitar y a continuación precarga estas páginas cuando hay
espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema
carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido
a ello, el tiempo de ejecución de un proceso se puede reducir.
ESTRATEGIAS
DE ADMINISTRACIÓN.
Estrategias de Obtención: Determinan
cuando se debe de transferir una página o un segmento de almacenamiento
secundario al primario. Las estrategias de obtención por demanda esperan a que
un proceso en ejecución haga referencia a una página o un segmento antes de
traer la página o el segmento de almacenamiento primario. Los esquemas de obtención
anticipada intentan determinar por adelantado a cuales paginas o segmentos hará
referencia un proceso.
Estrategias de Colocación: Determinan
en qué lugar del almacenamiento primario se debe colocar una página o un
segmento entrante. Una página entrante se puede colocar en cualquier marco de página
disponible.
Estrategias de Reemplazo: Sirven
para decidir cuál página o segmento se debe desplazar para dar espacio a una página
o segmento entrante cuando está completamente ocupado el almacenamiento
primario.
Ventajas y desventajas del uso de la memoria
virtual
Ventajas:
Ø Permite
optimizar uso de memoria.
Ø Mantiene
más procesos en memoria principal.
Ø Mantiene
en disco partes del proceso poco usadas (rutinas de atención a errores
poco frecuentes, funciones de uso esporádico, datos no usados, etc.).
Ø Permite
que un proceso sea más grande que toda la memoria principal
Ø Permite
multiprogramación muy efectiva.
Ø Se
encarga el SO => evita al usuario la preocupación por programar con
superposición.
Desventajas:
Ø Fallos de
direccionamiento.
Ø Se genera
interrupción, indica fallo de acceso a memoria.
Ø Proceso pasa
a bloqueado, SO a ejecución.
Ø SO emite solicitud
de E/S al disco.
Ø SO expide
otro proceso para que se ejecute
Ø Tras
traer fragmento a memoria, interrupción de E/S, control al SO, que pasa el
proceso a listo.
Ø Posible
hiperpaginación (thrasing).
Ø SO más
tiempo intercambiando fragmentos que ejecutando (ejemplo: si saca de
memoria un fragmento que se iba a usar ya).