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.
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.
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.
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.
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.
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.
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.
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