3.4 Administración de Memoria Virtual

La clave del concepto de memoria (almacenamiento) virtual esta 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 del Almacenamiento Virtual
Las diferentes organizaciones de almacenamiento virtual generalmente implementadas son:
  • Paginación.
  • Segmentación.
  • Segmentación y paginación.
Las estrategias para la administración de sistemas de almacenamiento virtual condicionan la conducta de los sistemas de almacenamiento virtual que operan según esas estrategias.
Se consideran las siguientes estrategias:
  • “Estrategias de búsqueda”:
    • Tratan de los casos en que una página o segmento deben ser traídos del almacenamiento secundario al primario.
    • Las estrategias de “búsqueda por demanda” esperan a que se haga referencia a una página o segmento por un proceso antes de traerlos al almacenamiento primario.
    • Los esquemas de “búsqueda anticipada” intentan determinar por adelantado a qué páginas o segmentos hará referencia un proceso para traerlos al almacenamiento primario antes de ser explícitamente referenciados.
  • “Estrategias de colocación”:
    • Tratan del lugar del almacenamiento primario donde se colocará una nueva página o segmento.
    • Los sistemas toman las decisiones de colocación de una forma trivial ya que una nueva página puede ser colocada dentro de cualquier marco de página disponible.
  • “Estrategias de reposición”:
    • Tratan de la decisión de cuál página o segmento desplazar para hacer sitio a una nueva página o segmento cuando el almacenamiento primario está completamente comprometido.
 Estrategias de Reposición de Página
Las principales son:
  • El principio de optimización.
  • Reposición de páginas al azar.
  • Primero en entrar - primero en salir.
  • Menos recientemente usada.
  • Menos frecuentemente usada.
  • No usada recientemente.
  • Conjuntos de trabajo.


1.- El Principio de Optimización
El “principio de optimización” indica que para obtener un rendimiento óptimo, la página que se va a reponer es una que no se va a utilizar en el futuro durante el período de tiempo más largo.
El problema es que no es factible predecir el futuro.


2.- Reposición de Página al Azar
Consiste en escoger al azar la página que va a ser reemplazada.
Todas las páginas del almacenamiento principal deben tener la misma probabilidad de ser reemplazadas.
Debe poder seleccionar cualquier página, incluyendo la que va a ser referenciada a continuación (peor selección).
Este esquema es raramente usado.

3.- Reposición de Página por el Sistema de Primero en Entrar -Primero en Salir (FIFO)
Se registra el momento en que cada página ingresa al almacenamiento primario.
Para reemplazar una página, se selecciona aquella que ha estado más tiempo almacenada.
Se presenta el inconveniente de que se pueden reemplazar páginas muy usadas, que serán llamadas de nuevo al almacenamiento primario casi de inmediato.
Se puede presentar la llamada “anomalía FIFO”:

  • Belady, Nelson y Shedler descubrieron que con la reposición FIFO, ciertos patrones de referencias de páginas causan más fallos de páginas cuando se aumenta el número de marcos (celdas) de páginas asignados a un proceso: en esto consiste la “anomalía FIFO”.
  • Esta anomalía contradice a la intuición
4.- Reposición de Página Menos - Recientemente - Usada (LRU)
Esta estrategia selecciona para ser reemplazada la página que no ha sido usada durante el mayor período de tiempo.
Se basa en la heurística de que el pasado reciente es un buen indicador del futuro próximo.
Requiere que cada página reciba un “sello de tiempo” cada vez que se referencia:
  • Puede significar una sobrecarga adicional importante.
  • No se implementa frecuentemente.
La página seleccionada para reemplazo podría ser la próxima en ser requerida, por lo que habría que paginarla de nuevo al almacenamiento principal casi de inmediato.

5.- Reposición de Página Menos - Frecuentemente - Usada (LFU)
Acá interesa la intensidad de uso que haya tenido cada página.
La página que será reemplazada es aquella que ha sido usada con menos frecuencia o que ha sido referida con menos intensidad.
El inconveniente es que se puede seleccionar fácilmente para su reposición la página equivocada:
  • Ej.: La página de uso menos frecuente puede ser la página de entrada más reciente al almacenamiento principal, y por lo tanto existe una alta probabilidad de que sea usada de inmediato.


6.- Reposición de Página No Usada - Recientemente (NUR)
Presupone que las páginas que no han tenido uso reciente tienen poca probabilidad de ser usadas en el futuro próximo y pueden ser reemplazadas por otras nuevas.
Es deseable reemplazar una página que no ha sido cambiada mientras estaba en el almacenamiento primario.
La estrategia NUR se implementa con la adición de dos bits de hardware por página:
  • “Bit referenciado”:
    • = 0 si la página no ha sido referenciada.
    • = 1 si la página ha sido referenciada.
  • “Bit modificado” (también llamado “bit sucio”):
    • = 0 si la página no ha sido modificada.
    • = 1 si la página ha sido modificada.
La selección de la página que será reemplazada comienza buscando una página que no ha sido referenciada, pero si no la encuentra habrá que reemplazar una página que ha sido referenciada.
Si una página ha sido referenciada se comprueba si ha sido modificada o no:
  • Si no ha sido modificada se la reemplaza:
    • Su reposición representa menos sobrecarga que la de una página modificada, ya que debería grabarse de nuevo en el almacenamientos secundario.
  • Si no se encuentra una página que no ha sido modificada será reemplazada una página modificada.
Con el transcurso del tiempo la mayoría de los “bits referenciados” serán activados:
  • Se pierde la capacidad para distinguir las páginas más deseables para ser reemplazadas.
  • Para evitarlo se ajustan periódicamente todos los “bits referenciados” a “0”:
    • Se logra un nuevo inicio.
    • Se vuelve vulnerable al reemplazo aún a las páginas activas, pero solo brevemente, mientras se reajustan los bits.
Los “bits modificados” no se ajustan periódicamente según esta estrategia.

Localidad
El concepto de “localidad” expresa:
  • “Los procesos tienden a hacer referencia al almacenamiento en patrones no uniformes y muy localizados”.
La “localidad” se manifiesta en el “tiempo” y en el “espacio”:
  • Es una propiedad empírica (observada).
  • Nunca está garantizada pero es altamente probable.
  • Ej.: Los procesos tienden a favorecer ciertos subconjuntos de páginas, las que tienden a ser adyacentes entre sí en el espacio de direcciones virtuales del proceso.
  • Está relacionada con la forma en que se escriben los programas y se organizan los datos.
“Localidad temporal ”: significa que las localidades de almacenamiento referenciadas recientemente tienen una alta probabilidad de ser referenciadas en un futuro próximo:
  • Se apoya en la utilización de:
    • Formación de ciclos (loops).
    • Subrutinas.
    • Pilas.
    • Variables usadas para contar y totalizar.
“Localidad en el espacio”: significa que las referencias de almacenamiento tienden a acumularse de manera tal que, una vez que se hace referencia a una localidad, es muy probable que las localidades cercanas sean también referenciadas:
  • Se apoya en la utilización de:
    • Recorrido de arreglos.
    • Ejecución secuencial de código.
    • Tendencia de los programadores a colocar definiciones de variables relacionadas, próximas entre sí.
Un programa puede ejecutar eficientemente mientras su subconjunto de páginas preferido se encuentre en el almacenamiento primario.
El número de fallos de páginas de un proceso depende de la cantidad de almacenamiento primario disponible para sus páginas.
Generalmente los procesos no muestran patrones de referencias aleatorios uniformemente distribuidos por sus diferentes páginas.
Al reducir el número de marcos (celdas) de páginas disponibles para un proceso existe un intervalo durante el cual la razón de fallos de páginas no se afecta excesivamente.
En determinado punto, cuando se reduce más el número de marcos de páginas, el número de fallos de páginas aumenta drásticamente.
Mientras el subconjunto de páginas favorecidas por un proceso permanezca en el almacenamiento primario, el número de fallos de páginas no aumenta mucho.
Tan pronto como las páginas del subconjunto favorecido son retiradas del almacenamiento primario, la actividad de paginación del proceso aumenta en gran medida al referenciar y traer de nuevo estas páginas al almacenamiento primario.
Los “subconjuntos favorecidos” también son llamados “conjuntos de trabajo” o “working sets” 

No hay comentarios.:

Publicar un comentario

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Resultado de imagen para sistemas operativos ¡Hoy en día la tecnología avanza a cada año...