Sie sind auf Seite 1von 17

Memoria Virtual

Antecedentes Paginacin por Demanda Desempeo de la Paginacin por Demanda Reemplazo de paginas Algoritmos de Reemplazo de paginas Localizacin de Marcos (Frames) Hiperpaginacin (Thrashing) Otras Consideraciones Segmentacin por Demanda

Antecedentes
Memoria Virtual separacin de la memoria lgica del
usuario de la memoria fsica. Solo parte del programa necesita estar en memoria para su ejecucin. El espacio de direcciones lgicas puede ser mucho mas grande que el espacio de direcciones fsicas. Permite que las paginas sean intercambiadas.

La memoria virtual puede ser implementada va:


Paginacin por demanda Segmentacin por demanda

Paginacin por Demanda

Introducir una pagina en la memoria solo cuando es necesario. Necesita menos E/S Necesita menos memoria Respuesta mas rpida Mas usuarios

Swapping perezoso (paginador): Pagina es necesaria referenciala No esta en la memoria Traerla a la memoria Referencia invalida Abortar

Bit Valido-Invalido
Esquema para distinguir las paginas que estn en la memoria de las que estn en el disco: Cada tabla de pagina tiene asociado un bit de validoinvalido (1 en-memoria, 0 no-esta-en-memoria, o es ilegal) Inicialmente el bit es ajustado a 0 para todas las entradas. Ejemplo de una instantnea de tabla de pagina.
Frame # Bit validoinvalido

1 1 1 1 0

M 0 0

Durante la traduccin de direccin, si el bit es 0 pagina faltante.

Tabla de paginas

Fallo de Pgina
1.
Si existe una referencia a una pagina, la primer referencia iniciara un trap al SO pagina faltante El SO busca en la tabla interna del Bloque de Control de Procesos para decidir: Referencia invalida abortar. Solo no esta en la memoria.

2. 3. 4. 5.

Consigue un marco (frame) vaci. Intercambia la pagina dentro del marco. Reajusta tablas (interna al proceso y tabla de paginas, bit de validacin = 1). Reiniciar la instruccin que se interrumpi.

Hardware para soportar la paginacin por demanda Tabla de paginas

Espacio de intercambio o almacn de respaldo

Pgina Faltante (Cont.)

Desempeo de Paginacin por Demanda

Probabilidad de falta de pagina:

0 p 1.0

si p = 0 no existe falta de pagina si p = 1, toda referencia genera una falta de pagina.

Tiempo de Acceso Efectivo (EAT)


EAT = (1 p) x tiempo de acceso a memoria + p x tiempo de fallo de pagina ( faltas fijas de pagina + intercambio de pagina de salida + intercambio de pagina de entrada + restablecimiento )

Ejemplo de Paginacin por Demanda

50% del tiempo

la pagina que esta siendo reemplazada ha sido modificada y por lo tanto necesita ser intercambiada (al disco).

Tiempo de acceso a memoria = 100 nanosegundos Tiempo de atencin de falta de pagina = 25 milisegundos
EAT = (1 p) x 100 nanosegundos + p x 25 milisegundos = (1 p) x 100 + p x 25, 000 000 nanosegundos = 100 + 24, 999 900 x p nanosegundos

El tiempo de acceso efectivo es directamente

proporcional a la probabilidad (tasa) de fallo de paginas.

Ejemplo de Paginacin por Demanda (Cont.)


Si un acceso de cada 1,000 causa una falta de pgina: EAT = 25 microsegundos (desempeo 250 veces menor) Si queremos una degradacin de menos del 10% 110 > 100 + 25 000 000 x p 10 > 25 000 000 x p p > 0.0000004 Solo podemos permitir faltas de pagina de menos de una por cada 2, 500 000 accesos a la memoria

Qu ocurre si no existe un marco libre?

Si incrementamos nuestro grado de multiprogramacin


estamos sobreasignando memoria

Reemplazo de pagina busca alguna pagina en

memoria,que no se encuentre realmente en uso (victima), y la intercambia. Algoritmo 7 Desempeo necesita un algoritmo cuyos resultados den un numero mnimo de faltas de pagina.

La misma pagina puede ser trada a la memoria varias


veces.

Pgina Victima

Reemplazo de Pgina
Previene la sobre-distribucin de memoria
por medio de la modificacin de la rutina de servicio por falta de pagina que incluye el reemplazo de pagina. costo fijo de la transferencia de pagina solo las paginas modificadas son escritas en el disco.

Se usa el bit de modificado (sucio) para reducir el El reemplazo de paginas completa la separacin entre

memoria lgica y memoria fsica Memorias virtuales grandes pueden ser atendidas por memorias fsicas pequeas.

Algoritmos de Reemplazo de Pginas

Se desea baja relacin de paginas faltantes. Algoritmo de evaluacin por medio de la


ejecucin de una serie aleatoria de referencias de memoria, en pginas de 100 bytes y computar el numero de faltas de pagina sobre esta serie.

Algoritmo First-In-First-Out (FIFO)

Un total de 15 faltas de pagina. Esperamos que a mayor numero de marcos menor numero de fallos de pagina pero:

Reemplazo FIFO Anomala de Belady Mas frames mas faltas de pagina

Anomala de Belady

Algoritmo ptimo

Reemplaza paginas que no sern usadas por un largo periodo de tiempo. Es dos veces mejor que el reemplazo FIFO ( 9 faltas de pagina en este ejemplo) Cmo sabes cual pgina reemplazar?.Requiere un conocimiento futuro Presentado por Belady y actualmente usado para medir que tan bien se desempea un algoritmo.

Algoritmo (LRU) Usado Menos Recientemente

La pgina que no se ha usado por mas tiempo. Requiere del conocimiento del pasado:

Implementacin de un contador
Cada registro de pagina tiene un contador que copia el reloj dentro del contador; todo el tiempo la pagina es referenciada a travs de este registro. Cuando una pagina necesita ser cambiada, mira a los contadores para determinar cual va a cambiar.

Algoritmo LRU (Cont.)


Implementacin de un Stack
Mantiene un stack de numero de paginas en una estructura doblemente ligada: Pagina referenciada: Moverla al tope Requiere cambiar 6 apuntadores No es necesaria la bsqueda para el reemplazo

Algoritmos de Aproximacin LRU


Bit de referencia
Con cada pagina se asocia un bit, inicialmente = 0 Cuando la pagina es referenciada el bit se ajusta a 1. Reemplaza aquella que tiene 0 no existe. Desconocemos el orden.

Segunda oportunidad
Necesita bit de referencia. Reemplazo por medio de reloj. Si la pagina a ser reemplazada (de acuerdo al reloj) tiene el bit de referencia = 1. entonces: Ajusta el bit de referencia a 0. Deja la pagina en memoria. Remplaza la siguiente pagina de acuerdo a las mismas reglas.

Algoritmo de Segunda Oportunidad

Pgina reemplazada

Algoritmos de Contador
Mantiene un contador con el numero de referencias
que han sido hechas a cada pagina.

Algoritmo LFU (menos frecuentemente usado):

reemplaza la pagina con el contador mas pequeo. mas grande basado en el argumento de que la pagina con el contador mas pequeo probablemente acaba de ser trada a la memoria y tiene an que ser usada.

Algoritmo MFU ( ms frecuentemente usado): contador

Asignacin de Marcos ( Frames )

Cada proceso necesita un numero mnimo de


paginas.

Ejemplo:

IBM 370 6 paginas para manejar la instruccin SS MOVE : 2 paginas abarca la instruccin de 6 bytes. 2 paginas para traerla. 2 paginas para llevarla.

Los dos esquemas de distribucin mas usados.


Distribucin fija Distribucin por prioridad

Distribucin Fija
Asignacin equitativa ejemplo, si existen 100 marcos y 5
procesos, le da a cada uno 20 paginas. del proceso:
S = si

Asignacin proporcional Distribuye de acuerdo al tamao


si = tamao del proceso pi m = nmero total de marcos (frames) ai = distribucin para pi = si m S
m = 64 s1 = 10 s2 = 127 10 64 5 137 127 a2 = 64 59 137 a1 =

Distribucin por prioridad

Usa un esquema de distribucin proporcional


usando prioridades en lugar de tamao.

Si el proceso Pi genera una falta de pagina,


Selecciona para reemplazo uno de sus marcos, bien Selecciona para reemplazo un marco de un proceso con un numero de prioridad menor.

Distribucin Global vs. Local


Reemplazo Global
el proceso selecciona un marco de reemplazo del conjunto de todos los marcos. - un proceso puede tomar un marco de otro proceso.

Reemplazo Local

cada proceso selecciona de su propio conjunto de marcos .

Hiper-paginacin (Thrashing)

Sobre-paginacin

un proceso esta ocupado intercambiando pginas de entrada y de salida la mayor parte del tiempo. introduce un nuevo proceso al sistema y se emplea un algoritmo de reemplazo de paginas global Si un proceso no tiene suficientes pginas, la relacin de paginas faltantes es muy alta. Esto lleva a: Utilizacin baja del CPU. El sistema operativo piensa que debe de incrementar el grado de multiprogramacin. Procesos diferentes son agregados al sistema.

Causa: Si la utilizacin del CPU es demasiado baja,

Diagrama de Thrashing
Utilizacin de la CPU hiperpaginacin

Grado de multiprogramacin

por qu funciona la paginacin? Modelo de Localidad de referencia: conjunto de pginas que se estn usando activamente juntas; por ejemplo, si una tarea esta ejecutando un ciclo, o las llamadas de subrutina (dentro de la subrutina), o las variables multidimensionales como: las matrices o las tablas. Procesos migran de una localidad a otra. Las localidades pueden traslaparse.

por qu ocurre la hiperpaginacin ? tamao de localidad > tamao total de la memoria

Modelo de Conjunto de Trabajo


working-set window (es el conjunto de paginas que residen en
la memoria, que permiten acceso directo, sin incurrir en una falla de pagina) un nmero fijo de referencias de pgina Ejemplo: 10,000 instrucciones

WSSi (tamao del conjunto de trabajo del proceso Pi) =

numero total de paginas en la mas reciente (ventana de conjunto de trabajo) si muy pequeo no abarcara la localidad de referencia completa. si grande abarcara varias localidades. si = abarcara el programa completo.

D = WSSi demanda total de marcos Si D > m Hiper-paginacin Poltica: si D > m, entonces suspende uno de los procesos.

Mantener registro del Conjunto de Trabajo


Aproximacin con intervalos de cronometro + un bit de referencia Ejemplo: = 10,000 1. El cronometro interrumpe despus de cada 5000 unidades de tiempo. 2. Mantiene en memoria 2 bits por cada pagina. 3. Siempre que el cronometro interrumpe. copia y ajusta los valores de todos los bits de referencia a 0. 4. Si uno de los bits en memoria = 1 pagina en el conjunto de trabajo.

Mejora = 10 bits y una interrupcin cada 1000 unidades de tiempo.

Esquema de frecuencia de fallo de pagina

Aumentar el numero de marcos


Limite superior

Limite inferior

Reducir el numero de marcos

Establece una relacin aceptable de falta de pagina.


Si la relacin actual es muy baja, el proceso pierde marcos. Si la relacin actual es muy grande, el proceso gana marcos.

Otras Consideraciones
Prepaginacin: Un intento por evitar el alto nivel de

paginacin inicial. Consiste en traer a la memoria en una sola operacin todas las pginas que se necesitarn (Conjunto de trabajo)

Seleccin del tamao de pagina


fragmentacin tamao de la tabla Costos de E/S Localidad de referencia

Otras Consideraciones (Cont.)


Estructura de datos del Programa Array A[1024, 1024] of integer Programa 1 for j := 1 to 1024 do for i := 1 to 1024 doA[i,j] := 0; 1024 x 1024 faltas de pagina Programa 2 for i := 1 to 1024 do do for j := 1 to 1024 doA[i,j] := 0; Cada rengln es almacenado en una pagina 1024 faltas de pagina

Ensamble de E/S y direccionamiento cuidadoso aumenta la

localidad de referencia y por lo tanto reduce el numero de fallos de pagina.

Segmentacin por Demanda


Usado cuando el
hardware es insuficiente para implementar paginacin por demanda. un registro de todos los descriptores de segmento.

OS/2 distribuye la memoria en segmentos, y mantiene El descriptor de segmento contiene un bit valido para
Si el segmento esta en la memoria-principal, el acceso continua, Si no esta en memoria, el segmento falta. indicar si el segmento se encuentra actualmente en la memoria.

Das könnte Ihnen auch gefallen