Está en la página 1de 57

Memoria Virtual

Paginamiento
Segmentación
Memoria virtual
1. Introducción
2. Paginación
3. Segmentación
4. Segmentación paginada
5. Paginación por demanda y anticipada
6. Políticas de reemplazo
7. Política de asignación de marcos de
página
8. Similitud entre las distintas Jerarquías
Memoria virtual
1. Introducción
• Concepto de Memoria Virtual: Método para conseguir que la suma de
los espacios de pila, datos y texto de un programa pueda ser mayor que
el tamaño físico de la memoria disponible para él. (Fotheringham, 1961)

• Cada proceso se asigna un área de direcciones contiguo.

• El SO mantiene en memoria solamente las partes del programa que se


están utilizando y mantiene en disco (intercambiadas) el resto.

• Sirve para sistemas mono y multiprogramados

• Permite optimizar el uso de la memoria, al mantener en disco partes


del proceso poco usadas (rutinas de atención a errores poco frecuentes,
funciones de uso esporádico, datos no usados, …)

• - La memoria virtual se implementa normalmente mediante paginación


Memoria virtual

1. Introducción

Ventajas:

a) Aumento del grado de multiprogramación. Por tanto, aumento


en el rendimiento del sistema
b) Posibilidad de ejecutar programas más grandes que la MV
disponible

El uso de la MV no implica que se acelere la ejecución del programa


(más bien al contrario, debido a la sobrecarga asociada a los
movimientos de información entre niveles de la jerarquía). Este
mecanismo no es apropiado para sistemas de tiempo real.
Memoria virtual
2. Paginación
• La memoria física se divide en bloques de tamaño fijo que
llamamos marcos.

• La memoria virtual se divide en bloques del mismo tamaño


llamados páginas.

• Al ejecutar un proceso se cargan sus páginas en los marcos


disponibles.

• La vinculación de direcciones requiere soporte por hardware-


MMU (Manejador de Memoria)
Memoria virtual
2. Paginación
• Página: Zona contigua de memoria de determinado tamaño.
(Por motivos de eficiencia se suele trabajar siempre con tamaños
potencia de 2. Ej:4 KB.)
• Organización:
— El mapa de memoria del proceso se considera dividido en páginas.
— La memoria principal se considera dividida en marcos de página
(tamaño de marco = tamaño de página).
— Los marcos contendrán páginas de los procesos en ejecución
— La tabla de páginas (TP) relaciona cada página con el marco que
la contiene. El hardware de traducción (MMU) usa la tabla de
páginas para traducir direcciones lógicas a físicas
— Típicamente la MMU usa dos tablas de páginas (TP):
a) TP del usuario: Por ejemplo, direcciones lógicas que empiezan
por 0
b) TP del sistema: Por ejemplo, direcciones lógicas que empiezan
por 1. Estas sólo se podrán usar en modo sistema
Memoria virtual
2. Paginación

Dirección
dirección
física
lógica
CPU p d f d

p Memoria
Página
(virtual) f
Página
desplazamiento (física)
Tabla de páginas -marco- 0
Memoria virtual
Memoria virtual
2. Paginación
Memoria virtual
2. Paginación
• La paginación remedia la fragmentación externa, pero no la fragmentación
interna.

• Un intento de acceso a una página virtual que no esté asociada a un marco


produce un señalamiento al SO (trap), llamado fallo de página.

– Como respuesta al fallo de página, el SO:

– 1. selecciona una página poco usada del proceso

– 2. Intercambia la página a disco

– 3. Asigna el marco de la página liberada a la página virtual que se


intenta acceder

– Esto supone una forma de reasignación dinámica por bloques de las


direcciones de memoria del proceso
Memoria virtual
2. Paginación
La página está
S. O. 3 en memoria auxiliar
Programa

Referencia Memoria
2
1 Excepción secundaria
LOAD M 0
6
Reiniciar
Memoria
la instr. principal
Tabla de
páginas
5 Marco libre 4 Cargar la
Actualizar la
página que
tabla de páginas
falla
Memoria virtual
2. Paginación
Tabla de Páginas: Son tablas que contienen (para cada proceso) el
número de marco que corresponde a cada página virtual del proceso

Estructura de una entrada de la Tabla de Procesos


Número de marco

bit presente (1) ausente (0)


protección (permisos) del marco (RWX)
bit Modificado (1) o no (0) -lo usa el intercambiador
para saber si debe copiar el marco a disco o no-

Caching Desactivado/Activado
No usado
Memoria virtual
• Tamaño de página: La elección de tamaño de página
está condicionada por diversos factores, entre los que hay
que conseguir equilibrio:
– Potencia de 2 y múltiplo del tamaño del bloque de
disco
– mejor pequeño por:
• Menor fragmentación
• Se ajusta mejor al conjunto de trabajo
– mejor grande por:
• Tablas más pequeñas
• Mejor rendimiento de dispositivos de E/S
– Compromiso (entre 2K y 16K)
Memoria virtual
• Tamaño de página

0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
0 010 1 bit presente/ausente
1 001 1
página 2 110 1
3 000 1
virtual 4 100 1
5 011 1 Desplazamiento
6 000 0
7 000 0 (12 bits)
8 000 0
página 9 101 1
10 000 0
física 11 111 1
12 000 0
13 000 0
14 000 0
15 000 0

1 1 0 0 0 0 0 0 0 0 0 0 1 0 0
Memoria virtual
• Tamaño de página
Ejemplos de tamaños de páginas

Computadora Tamaño de página


Atlas 512 palabras de 48 bits
Honeywell-Multics 1.024 palabras de 36 bits
IBM 370/XA y 370/ESA 4 Kbytes
Familia VAX 512 bytes
IBM AS/400 512 bytes
DEC Alpha 512 8 Kbytes
MIPS de 4 Kbytes a 16 Mbytes
UltraSPARC de 8 Kbytes a 4 Mbytes
Pentium de 4 Kbytes a 4 Mbytes
Power Pc 4 Kbytes
Memoria virtual

• Dirección:Una dirección lógica se obtiene a partir de:


nº página + desplazamiento
• Problema:
– La paginación no ofrece una solución óptima. Lo ideal sería que
cada palabra del mapa de memoria de un proceso pudiera ubicarse
en cualquier dirección. Esta solución es inviable debido al coste de
traducción
– Al no ser así, con la paginación se asigna a cada proceso un
número entero de marcos de página, aunque el espacio de su
mapa de memoria no sea un múltiplo entero del tamaño de página.
Por tanto, se irán generando huecos (memoria no aprovechada, en
la última de las páginas que no se llena de forma completa). Este
proceso se denomina fragmentación interna (implica que, en
término medio, cada proceso desperdicia la mitad de una página)
Memoria virtual

T. Páginas Proceso 1
Página 0 Marco 2
Memoria
Página 1 Marco N
Pág. 1 Pr. 2 Marco 0
..............
Pág. P Pr. 2 Marco 1
Página M Marco 3
Pág. 0 Pr. 1 Marco 2
Pág. M Pr. 1 Marco 3
T. Páginas Proceso 2
Página 0 Pág. 0 Pr. 2 Marco 4
Marco 4
............
Página 1 Marco 0
.............. Pág. 1 Pr. 1 Marco N

Página P Marco 1

• Problema: Fragmentación, la memoria asignada es mayor que la


memoria requerida y por lo tanto, se desperdicia cierta cantidad de
espacio
Memoria virtual
• Otras cuestiones:
– En este esquema, el S.O. mantiene una tabla de páginas por
cada proceso. Cuando se produce un cambio de contexto se
indica a la MMU qué tabla de páginas usar
– El S.O. mantiene una única tabla de páginas para sí mismo.
Así, todos los procesos comparten el SO. Cuando un proceso se
ejecuta en modo sistema accede directamente a su mapa y al
del SO
– S.O. mantiene tabla de marcos, como forma de mantener
información de estado de la memoria principal. De cada marco
se conoce su estado (libre, ocupado, etc)
– S.O. mantiene tabla de regiones por cada proceso,
indicando las características de cada región y qué rango de
páginas pertenecen a cada región
• Desperdicio de espacio: Mucho mayor gasto en tablas que con
asignación contigua: es el precio de mucha mayor funcionalidad
Memoria virtual
• Estrategias de búsqueda
– Paginación por demanda
• Las páginas son traídas desde memoria secundaria hasta
memoria principal cuando son referidas por el proceso en
ejecución.
– Paginación anticipada
• El sistema predice que páginas deben ser traídas desde el
almacenamiento secundario al primario, sin que éstas
tengan que ser referenciadas explícitamente por el
proceso (por ej: la página siguiente).
• Estrategias de colocación
– First FIT
• Se van colocando las páginas consecutivamente desde la
posición de memoria más baja.
Memoria virtual
2. Paginación

• Políticas de sustitución/reemplazo (FIFO, LRU, etc.)


– Cómo se sabe dónde está la página que
buscamos.
– La dirección virtual por sí sola no es suficiente.
– Necesidad de una estructura de datos adicional.
• Tabla de páginas que incluya la posición de todos.
– Presentes: dirección física.
– No presentes: posición en el disco.
Memoria virtual
2. Paginación

• ¿Qué ocurre con las escrituras?


– Gran coste de acceso a la memoria
secundaria.
– No es útil usar un buffer de escritura como la
caché.
– Postescritura (write back).
• Cuándo se reemplaza la página.
– Existencia de un bit de cambio
– No devolver si no se ha cambiado
Memoria virtual
TLB (Translation Look-aside Buffer)

• Consta de una memoria asociativa con información


sobre últimas páginas accedidas.

• Para el multiproceso, existen varias posibilidades:

– La TLB no incluye información del proceso. En este


caso, habrá que invalidar la TLB en los cambios de
contexto
– Entradas en TLB incluyen información sobre proceso:
en este caso, debe existir un registro del CPU para
mantener la identificación del proceso actual
Memoria virtual
TLB (Translation Look-aside Buffer)
Estructura
Memoria virtual
TLB (Translation Look-aside Buffer)
• Implementación
– HW: La MMU consulta la TLB y si falla, se usa la TP en
memoria.
• Ventajas: Es un proceso muy rápido
• Inconvenientes: Actualizar la TP en cambios de contexto y
hay que invalidar y cargar la TLB cuando se produce un
cambio de contexto (si no tiene información del Proceso)
– SW: La MMU no usa la TP, sino que sólo consulta TLB. En caso
de fallo, se activa el SO, que ha de buscar la entrada en la
tabla de páginas (mediante programa), e insertar en la TLB la
traducción hecha, de forma que se pueda reutilizar.
• Ventajas: flexibilidad, ya que la tabla de páginas puede ser
definida a conveniencia, sin restricciones impuestas por el
hardware
• Inconvenientes: Es menos eficiente, ya que parte del
proceso de traducción se realiza mediante programa.
Memoria virtual
TLB
(Translation
Look-aside
Buffer)
Memoria virtual
Aplicación del TLB en las referencias a memoria

1. Se busca el Nº de página virtual en el TLB


a) Si está  acierto  se forma la dirección
física
* Se activa el bit de referencia
* Se activa el bit de modificación si es escritura
Memoria virtual
Aplicación del TLB en las referencias a memoria

b) Si no está  ver tipo de fallo posible


* Fallo de TLB (miss)
- Se carga desde la tabla de páginas
- Se intenta de nuevo la traducción
* Fallo de página (fault)
- Una excepción
- El S.O. producirá el cambio de página
Memoria virtual
Aplicación del TLB en las referencias a memoria

• Valores típicos de una TLB


Memoria virtual
Aplicación del TLB en las referencias a memoria
2. Cuando se ha recuperado la traducción del fallo:
a) Seleccionar una entrada de la TLB a sustituir
(Aleatorio, FIFO, LRU, ...)
b) Transferir sólo los bits (modif y uso) a la tabla
de páginas.
* Política de postescritura
Memoria virtual

• Fallos de página

– Se produce cuando
el bit de presencia
está en off (0)
– Quiere decir que la
página no está en
M.P.
– Acudir al nivel
superior de
memoria (disco)
– Transferirla a M.P.
Memoria virtual
Veamos cómo se gestiona la ocurrencia de un fallo de página:
• La MMU genera una excepción. Normalmente deja en un registro
especial la dirección que causó el fallo
• Se activa el SO, que comprueba:
– Si la página es inválida, se aborta el proceso (solución normal,
aunque también podría bastar con el envío de una señal).
– Si la página es ausente se siguen los pasos siguientes:
a) Se consulta la tabla de marcos para ver si hay algún hueco
libre:
i. Si no hay ningún marco libre se aplica el algoritmo de
reemplazo, que decidirá el marco a desalojar. La página
almacenada hasta entonces se marca como inválida. Si ha
sido modificada, antes hay que salvar su contenido en
memoria secundaria
ii. Si hay marco libre: se inicia la lectura desde memoria
secundaria y se vuelca al marco, marcándose como válida
dicha entrada en la TP y apuntando el marco en que está
almacenada
Memoria virtual
• En el peor de los casos un fallo de página puede suponer dos
operaciones de E/S:

a) Salvaguarda de la página expulsada


b) Lectura de la página nueva

Dos políticas definen el funcionamiento del sistema de memoria

• Política de reemplazos:
– Reemplazo local: Sólo puede usarse para reemplazo un marco
asignado al proceso que causa fallo
– Reemplazo global: Puede usarse para reemplazo cualquier marco

• Política de asignación de espacio a los procesos:


– Asignación fija: El número de marcos de página para cada proceso
es fijo.
– Asignación dinámica: El número de marcos de página para cada
proceso es dinámico
Procesamiento
Memoria virtual
de fallos
Memoria virtual
Tratamientos de los fallos de página y el TLB

• Un fallo en TLB puede indicar 2 posibilidades:


– La página está en M.P.  sólo crear la entrada
en la TLB
– La página no está en M.P.  control al S.O.
• No está en M.P. si el bit de validez en la T.P.
es 0
– El fallo de TLB puede ser tratado por hardware
o software
Memoria virtual
6. Políticas de reemplazo

• Objetivo: Minimizar la tasa de fallos de página.

• Cada algoritmo descrito tiene versión local y global:


– Local: criterio se aplica a las páginas residentes del proceso
– Global: criterio se aplica a todas las páginas residentes

• Algoritmos a estudiar
A. FIFO
B. Reloj (o segunda oportunidad)
C. NRU
D. LRU
E. NFU
Memoria virtual
6. Políticas de reemplazo

• Al intentar minimizar los fallos tratarán de eliminar la


páginas con menor probabilidad de uso.

• Ejemplo. Secuencia de accesos:

T= 0 1 2 3 4 5 6 7 8 9 A B C D E F
Página= 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
Memoria virtual
FIFO (Primero en llegar)
- (a) Cada entrada de la tabla tiene un registro asociado con el instante de
carga de la página, o (b) el SO mantiene la tabla de páginas en orden de
antigüedad (FIFO)
-
Cuando se produce un fallo de página y no hay marcos libres, se
intercambia a disco la página que lleve más tiempo en la tabla.
-
Ej.: Nº de página 7,0 instante de entrada en tabla

T= 0 1 2 3 4 5 6 7 8 9 A B C D E F
Página= 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
7,0 7,0 7,0 2,3 2,3 2,3 4,7 4,7 4,7 0,A 0,A 0,A
Tablas 0,1 0,1 0,1 3,5 3,5 3,5 2,8 2,8 2,8 1,D 1,D
a) 1,2 1,2 1,2 0,6 0,6 0,6 3,9 3,9 3,9 2,F
+ antiguo 7 7 7 0 1 2 3 0 4 2 3 0
0 0 1 2 3 0 4 2 3 0 1
+ nuevo b) 1 2 3 0 4 2 3 0 1 2
Memoria virtual
Algoritmo de páginas del reloj

-Las páginas se mantienen en una cola circular, con un


apuntador a la páginas más antigua.

-Si hay un fallo y R=0, la página se retira y se avanza el


apuntador. Si R=1 se limpia R se avanza hasta encontrar una
página con R=0.

-Son los punteros los que se desplazan, no las entradas de la


tabla.
Memoria virtual
Primer marco en el buffer
circular de marcos que son
candidatos para el reemplazo
Página 9 Página 19
uso = 1 uso = 1
Página 1
uso = 1
Puntero al
siguiente Página 45
marco uso = 1

Página 222 Página 191


uso = 0 uso = 1

Página 33 Página 556


uso = 1 uso = 0
Página 67 Página 13
uso = 1 uso = 0

(a) Estado del buffer justo antes del reemplazo de


página

Figura 8.16. Ejemplo de funcionamiento de la política del reloj.


Memoria virtual
Algoritmo NRU
(de uso no reciente)

- Utiliza los bits de Referencia (R) y Modificado (M) de las


entradas de la tabla de páginas. Se definen cuatro clases de
páginas.


Clase 0: Páginas no referenciadas ni modificadas (R=0,M=0)

Clase 1: Páginas no referenciadas, modificadas (R=0,M=1)

Clase 2: Páginas referenciadas no modificadas (R=1,M=0)

Clase 3: Páginas referenciadas, modificadas (R=1,M=1)

La asignación de página a desalojar se realiza aleatoriamente entre


las páginas de menor clase de la tabla.
Bit de Referencia
Nº de página 7,x,y Bit Modificado
Memoria virtual
Algoritmo NRU
(de uso no reciente), ejemplo

Modif.
(M)=
Reset R=
T= 0 1 2 3 4 5 6 7 8 9 A B C D E
Página=7 0 1 2 0 3 0 4 2 3 0 3 2 1 2
7,1,0 7,1,0 7,1,0 2,1,1 2,0,1 3,1,1 3,1,1 3,1,1 3,0,1 3,1,1 3,1,1 3,1,1 3,0,1 3,0,1 3,0,1
0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1
1,1,1 1,1,1 1,0,1 1,0,1 1,0,1 4,1,1 4,0,1 4,0,1 0,1,0 0,1,0 0,0,0 1,1,0 1,1,0

2,0,1 3,0,1 3,0,1


0,0,0 0,0,0 2,0,1
1,0,1 4,0,1 0,0,0
Memoria virtual

Algoritmo LRU
(página usada hace más tiempo)

- Implementa un algoritmo basado en mirar al pasado y a


partir de él estimar cuál podría ser el uso de la página.

- Cuando sea necesario, el planificador saca de la tabla que


lleva más tiempo sin acceso, de entre las entradas de la
tabla.
Memoria virtual
Algoritmo LRU
(página usada hace más tiempo), implementaciones

A) La tabla se implementa como Pila de números de página que


conserva en la salida la página más recientemente usada y en la base la
menos recientemente usada. La actualización de la tabla es muy lenta,
aún usando HW especial

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
0 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0
LRU 7 7 7 0 1 2 2 3 0 4 2 2 0 3 3 1 2 0 1 7
Memoria virtual
Algoritmo LRU
(página usada hace más tiempo), implementaciones
B) Uso de contadores.

Las entradas de la tabla de páginas tienen un campo de ‘tiempo de uso’ en el que el


Manejador de Memoria escribe el tiempo de cada referencia.
Cada acceso a memoria requiere una búsqueda en la Tabla de Páginas y una
escritura en memoria por cada acceso a memoria.Requiere HW especial.

Nº de página 7,x Instante de la última referencia

T= 0 1 2 3 4 5 6 7 8 9 A B C D E F
Página= 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
7,0 7,0 7,0 2,3 2,3 2,3 2,3 4,7 4,7 4,7 0,A 0,A 0,A 1,D 1,D 1,D
0,1 0,1 0,1 0,4 0,4 0,6 0,6 0,6 3,9 3,9 3,B 3,B 3,B 3,B 0,F
1,2 1,2 1,2 3,5 3,5 3,5 2,8 2,8 2,8 2,8 2,C 2,C 2,E 2,E
Memoria virtual
Algoritmo NFU
(página no frecuentemente usada)

- Implementa una aproximación del algoritmo LRU, utilizando


exclusivamente Software:


Se activa un contador software por cada página

En cada interrupción de reloj, el SO suma el bit R (0 ó 1)
al contador

Cuándo existe un fallo de página se selecciona la página
con el contador más bajo y se envía a disco

Problema: Tiene memoria


Memoria virtual
Algoritmo NFU
(página no frecuentemente usada), ejemplo simple

Bits R de las páginas 1-6 en t=1,2,3 y 4


1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0
Contadores de las páginas 1-6 en t=1,2,3 y 4

00000001 00000010 00000011 00000100


00000000 00000001 00000010 00000010
00000001 00000001 00000001 00000001
00000000 00000000 00000001 00000001
00000001 00000010 00000010 00000011
00000001 00000001 00000010 00000010
Memoria virtual

Algoritmo NFU
(página no frecuentemente usada)

-Solución al problema de memoria:

-Maduración:


Se activa un contador software por cada página

En cada interrupción de reloj se desplaza el contador
un bit a la derecha y luego se suma el bit R al bit más
significativo del contador.
Memoria virtual
Algoritmo NFU con maduración
(página no frecuentemente usada)

Bits R de las páginas 1-6 en t=1,2,3 y 4


1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0
Contadores de las páginas 1-6 en t=1,2,3 y 4

10000000 11000000 11100000 11110000

00000000 10000000 11000000 01100000

10000000 01000000 00100000 00010000

00000000 00000000 10000000 01000000

10000000 11000000 01100000 10110000

10000000 01000000 10100000 01010000


Memoria virtual
3. Segmentación
• Segmentación: es un esquema HW que intenta dar soporte
directo a las regiones.
• En él se considera el mapa de memoria como compuesto por
varios segmentos.
• Se puede considerar que consisten en una generalización de
los registros valla base y límite, pero usando un par de
registros por cada segmento
Memoria virtual
3. Segmentación
• Dirección:Una dirección lógica estará compuesta por un número de
segmento y un desplazamiento en el mismo.
• Traducción: La forma de realizar la traducción puede apreciarse en la
imagen siguiente:
d ir e c c ió n ló g ic a
s d
t a b la d e s e g m e n t o s

lím ite base

N O m e m o r ia
> +
S I

E x c e p c ió n
Memoria virtual
• Tabla de segmentos:En este caso, la MMU usa una tabla de segmentos
(TS).
• Organización:
– El SO mantiene una TS por proceso, de forma que en cada cambio
de contexto se notifica a MMU cuál debe usar
– Cada entrada de TS contiene (entre otros):
• Registro base y límite del segmento
• protección: RWX

• Problema: Fragmentación Externa


– En este esquema se produce fragmentación externa, ya que el
almacenamiento de los segmentos se realiza de forma contigua.
– El SO debe mantener una lista que le permita conocer qué zonas de
memoria están libres y cuáles ocupadas: es decir, estructuras de
datos que identifiquen huecos y zonas asignadas
Memoria virtual
• Valoración:

– Espacios independientes para procesos: mediante su propia TS, que


crea un espacio lógico independiente
– Protección: mediante TS, ofreciendo espacios disjuntos de memoria
– Compartir memoria: bajo control del SO es posible que dos o más
procesos tengan un segmento asociado a la misma zona de
memoria
– Soporte de regiones: bits de protección
– Maximizar rendimiento : No lo maximiza, por la fragmentación
externa
– Mapas de tamaño adecuado: No cumple este objetivo porque no
permite implementar eficientemente un sistema de memoria virtual
Memoria virtual
4. Segmentación paginada
Se intenta aunar las ventajas de ambos esquemas: segmentación y
paginación:
– Segmentación: soporte para regiones.
– Paginación: mejor uso del espacio de memoria.

• Organización:
– Entrada en TS apunta a una TP para el segmento.
– El espacio del segmento está compuesto de varias páginas, de
forma que su espacio no tiene que ser contiguo.
Memoria virtual
•Traducción:La traducción se lleva a cabo según se indica.

d ir e c c ió n ló g ic a
s p d t a b la d e p á g in a s
t a b la d e s e g m e n t o s p a ra s e g m e n to s

lím ite d ir. T . P á g . p m

NO m e m o r ia
> m d
SI
d ir e c c ió n
E x c e p c ió n f ís ic a
Memoria virtual
• Valoración:

– Espacios independientes para procesos: mediante TS


– Protección: mediante TS
– Compartir memoria: bajo control del SO, podemos hacer que una
misma entrada aparezca en diferentes TS (es decir, pueda ser usado
por varios procesos)
– Soporte de regiones: bits de protección
– Maximizar rendimiento: la paginación aprovecha eficientemente el
espacio de memoria.
– Mapas de tamaño adecuado: permite esquemas de memoria virtual

• Ventajas: Frente a paginación sin segmentos facilita al SO la gestión de


las regiones, pero requiere HW más complejo
Memoria virtual
5. Paginación por demanda
Una vez analizados los diferentes esquemas hardware vamos a ver cómo
se articulan para construir un esquema de memoria virtual (estos
esquemas también pueden usarse sin memoria virtual, pero en la
actualidad su uso está siempre vinculado a la memoria virtual)

• Normalmente la memoria virtual se construye sobre esquemas de


paginación pura o segmentada. De esta forma, la unidad de información
intercambiada entre memoria principal y secundaria es la página.

• Normalmente la transferencia de información se lleva a cabo bajo


demanda (paginación por demanda). De esta forma, cuando un
proceso necesita acceder a una página que no está en memoria
principal, se genera un fallo de página y el SO se encarga de transferirla
desde la memoria secundaria. Si al traerla no hay espacio suficiente en
MP, será necesario desalojar alguna de las páginas actuales (ello se
hace mediante un algoritmo de reemplazo)
Memoria virtual
• La construcción de un sistema de memoria virtual sobre un procesador
con paginación implica usar un bit de validez en las entradas de la
tabla de páginas, que indica si la página es válida. Estarán marcadas
como inválidas todas las páginas que no residen en MP, así como las que
constituyen huecos en el mapa de memoria.

• Para las entradas correspondientes a páginas no residentes en MP, la


entrada principal, en lugar de almacenar el marco donde reside
contendrá la dirección del dispositivo de memoria en que se
encuentra almacenada. De forma que cuando se produce un acceso a
una de estas páginas, se produce una excepción y se activa el SO,
responsable de hacer la transferencia desde memoria secundaria.

• Algunos sistemas también usan la técnica de prepaginación. Al ocurrir


un fallo de página no sólo traen la página en cuestión, sino también las
cercanas, al suponerse que se usarán en un corto plazo de tiempo. La
efectividad de esta técnica dependerá del acierto de la predicción.

También podría gustarte