Title: Algoritmos de reemplazo de paginas
1La memoria virtual
If its there and you can see it - its
real If its not there and you can see it -
its virtual If its there and you cant see
it - its transparent If its not there and you
cant see it - you erased it! IBM poster
explaining virtual memory, circa 1978
2Características memoria virtual
computadora 512K en RAM
Programas muy grandes no caben en memoria
disponible solución dividir programa en
partes (capas) capa 0 se ejecuta
primero termina se llama la capa 1 Capas
se mantienen en disco (zona de swap) y se
intercambian con la memoria por medio del
sistema operativo
3Aspectos a tomar en cuenta
- Responsabilidades
- Intercambio capas disco/memoria sist. operativo
- Dividir programa programador
- Originalidad
- división programa responsabilidad del sistema
- método diseñado por Fotheringham (1961)
- método conocido como memoria virtual
- Principio
- Sistema operativo mantiene en memoria aquellas
partes del programa que se usen (referencien) y
el resto permanece en disco - direcciones generadas dentro de un programa
mediante índices, registros base, de segmento y
otros, se denominan espacio direcciones virtuales - las direcciones de la memoria disponible (memoria
física) se conocen con el nombre de direcciones
físicas
4- si no hay memoria virtual
- la dirección virtual es la dirección física
- con memoria virtual
- es necesario saber que dirección física le
corresponde a la dirección virtual - Métodos
- paginación
- segmentación
5 6La paginación
- Espacio direcciones virtuales se divide en
unidades llamadas páginas. - Las unidades
correspondientes en memoria física se llaman
marcos para páginas - Las páginas y los marcos
tienen siempre el mismo tamaño. - Fallo de
página pagina no asociada con algún marco
7pag 0
pag 1
pag 2
. . . .
pag n
mapa de memoria
memoria física
memoria virtual
disco
80
1
2
marca
válido no - válido
A
3
0
A
4
B
1
0
4
v
5
C
i
1
2
6
C
6
v
2
D
3
7
i
3
A
B
8
E
4
i
4
D
E
C
F
9
F
9
v
5
5
i
10
F
6
G
6
i
11
7
H
7
12
tabla de páginas
memoria lógica
13
disco
memoria física (RAM)
14
15
9programa A
12
13
14
15
programa B
20
21
22
23
memoria RAM
disco
10bit de validez / no validez
marco
0
3
v
1
monitor
4
v
0
2
5
v
1
3
i
D
2
B
Tabla de páginas para el usuario 1
H
3
cargar M
4
bit de validez / no validez
marco
J
5
0
M
A
3
v
6
A
1
B
4
v
E
7
C
2
5
v
memoria física
D
3
i
memoria lógica para el usuario 2
Tabla de páginas para el usuario 1
11Intercambiar a disco la página víctima
bit de validez / no validez
marco
cambiar a no válido
0
i
víctima
f
v
f
restablecer la tabla por la nueva página
tabla de páginas
Inter cambiar a la memoria la página adecuada
memoria física
12 Ejemplo paginación
Direcciones en la
Espacio de
memoria fisica
direcciones virtuales
0- 4k
0- 4k
2
1
4K- 8K
4K- 8K
6
8K-12K
8K-12K
0
12K-16K
12K-16K
4
16K-20K
16K-20K
3
20K-24K
20K-24K
x
24K-28K
24K-28K
x
28K-32K
28K-32K
x
32K-36K
5
36K-40K
x
40K-44K
7
44K-48K
Marco para página
x
48K-52K
Página virtual
x
52K-56K
x
56K-60K
x
60K-64K
13 0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16
Página virtual 2 se utiliza
como un índice en la tabla de
Dirección virtual
páginas.
de entrada (16 bits)
Bit presente/ausente
(8196)
0
010 1
001 1
1
110
110 1
2
000 1
3
100 1
4
El ajuste de 12
011 1
5
bits se copia en
forma directa
6
000 0
de la entrada a
000 0
7
la salida
Tabla de
000 0
8
páginas
101 1
9
000 0
10
111 1
11
12
000 0
000 0
13
000 0
14
000 0
15
16 páginas de 4K
Dirección física
Dirección física
Dirección física
de salida
de salida
de salida (15 bits)
(24580)
(24580)
(24580)
0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15
14 Tabla de páginas
de segundo nivel
Hacia las
páginas
Tabla superior c/entrada 4M gt se tienen 4G
de direcciones virtuales 232 4,294,967,296 4G
Tabla de páginas
de nivel superior
0
1
Bits
2
10
10
12
3
4
PT 1
PT 2
Offset
5
6
7
(a)
1023
0
1
2
3
Tabla de
4
páginas para
5
los 4 M supe-
riores de la
6
memoria
7
1023
(b)
(a) Una dirección de 32 bits con dos campos para
la tabla de páginas.
(b) Tablas de páginas de dos niveles
15Ejemplo direccionamiento
Espacio direcciones virtuales 232
4,294,967,296 4G Ejemplo dirección virtual
0x00403004 0000 0000 0100 0000 0011 0000 0000
0100 gt PT1 1 PT2 3 Offset 4
4M
12292 (dir. abs 4,206,592) a 16383 (dir. abs 4,
210,687)
x
PT2 3
8M
x contiene el número de marco de la página con
dirección 0x00403004
tabla 1
tabla 1023
16Compartiendo páginas
- Posibilidad de compartir código en común -
Importante en tiempo compartido
Tabla Páginas de p1
Contexto del proceso p1
0
1
2
3
4
Tabla Páginas de p2
5
Contexto del proceso p2
6
7
8
9
10
Tabla Páginas de p3
Contexto del proceso p3
17Desempeño paginación por demanda
- Paginación por demanda puede tener un efecto
importante sobre el desempeño de un sistema - Necesario calcular el tiempo de acceso efectivo
- Tiempo acceso memoria (am) varía entre 10 y 200
nanosegundos - Si no hay fallos tiempo acceso efectivo es el
mismo que el tiempo de acceso a memoria - Si ocurre un fallo hay que leer del disco la
página y luego acceder a la palabra deseada - Entonces
- si p es la probabilidad de que ocurra un fallo,
- cabe esperar que esta probabilidad es cercana a 0
- el tiempo efectivo de acceso (tea) es
- Para calcular lo anterior necesitamos saber
cuánto tiempo toma resolver un fallo de página
18Secuencia fallo de página
- 1. Notificación al sistema operativo
- 2. Guardar los registros del usuario y estado del
proceso - 3. Determinar que la interrupción fue un fallo de
página - 4. Verificar que la referencia a la página fue
válida y determinar la posición de la página en
disco - 5. Leer del disco a un marco libre
- a. Esperar en la fila de espera de este
dispositivo, hasta que se atienda la solicitud
de lectura - b. Esperar durante el tiempo de búsqueda y/o
latencia del dispositivo - c. Iniciar la transferencia de la página a un
marco libre - 6. Durante la espera asignar la CPU a algún otro
usuario - 7. Interrupción del disco (E/S terminada)
- 8. Guardar los registros y el estado de proceso
del otro usuario (si se llevó a cabo el paso 6) - 9. Determinar que la interrupción vino del disco
- 10. Corregir la tabla de páginas y las demás
tablas de modo que indiquen que la página ya esta
en memoria - 11. Esperar que la CPU se asigne otra vez a este
proceso - 12. Restaurar los registros de usuario, el estado
de proceso y la nueva tabla de páginas y reanudar
la ejecución interrumpida
19Tiempo servicio fallo página
- Tiene tres componentes
- Atender la interrupción de fallo de página
- Traer la página a la memoria
- Reiniciar los procesos
- Primera y última tarea podrían tomar entre 1 y
100 microsegundos cada una - Tiempo intercambio
- promedio latencia disco duro 15 microsgs
- tiempo de búsqueda 8 milisgs
- tiempo de transferencia 1 milisg
- total 24 milisgs
- Tiempo total paginación aprox. 25 milisgs
- Solo se considera tiempo de servicio
- si hay una cola de procesos hay que considerar el
tiempo de espera para que el dispositivo este
libre - Si tiempo acceso memoria es de 100 nanosegs, el
tiempo de acceso efectivo es - tae (1-p) x (100) p ( 25 milisegs)
- (1-p) x 100 p x 25,000,000
- 100 24, 999,900 x p
20Entonces ???
- Tiempo de acceso efectivo es directamente
proporcional a la frecuencia de los fallos de
página - Si un acceso de cada 1000 causa un fallo de
página, el tiempo de acceso efectivo será de 25
microsegs - Desempeño se reduce en un factor de 250 a
causa de la paginación por demanda !!! - Si se desea una degradación de menos del 10, se
necesita que - 110 gt 100 25,000,000 x p
- 10 gt 25,000,000 x p
- p gt 0.0000004
- Para mantener en un nivel razonable la reducción
del desempeño sólo se puede permitir fallos de
página en menos de uno de cada 2,500,000 accesos
a memoria - Es importante mantener baja la frecuencia de
fallos de página, de lo contrario el tiempo de
acceso aumentará y frenará la ejecución de
procesos, - Ejemplos disco fragmentado y poca RAM en
Windows 95 vs área de swap en Linux
21El reemplazo de páginas
- Adoptan el enfoque si no hay marcos libres, se
busca uno ocupado pero que no se este usando y lo
liberamos - Un marco se libera escribiendo su contenido en el
espacio de intercambio y modificando la tabla de
páginas (y todas las demás) de tal forma que
indiquen que la página ya no esta en la memoria - La rutina de atención de fallos de página se
modifica de la siguiente forma - 1. Encontrar la página deseada en el disco
- 2. Hallar un marco libre
- a. Si hay un marco libre usarlo
- b. Si no, usar un algoritmo de reemplazo de
páginas para escoger un marco víctima - c. Escribir la página víctima en el disco
modificar de manera acorde las tablas de páginas
y de marcos - 3. Leer la página deseada y colocarla en el marco
recién liberado modificar las tablas de páginas
y de marcos - 4. Reiniciar el proceso usuario interrumpido
- Si no hay marcos libres, se requieren dos
transferencias de página (hacia afuera y hacia
adentro), lo que duplica el tiempo de servicio - solución usar un bit de modificación o bit sucio
22Estructura tabla de páginas
caching páginas asociadas a registros de
dispositivos referenciado 1 cuando se hace una
referencia a una página para leer o
escribir modificado recuperación marco, si
página no ha sido modificada no se escribe a
disco protección tipo acceso permitido, (0
lec/esc, 1 solo lectura) presente/ausente 1
entrada valida y puede ser utilizada 0
página no cargada en memoria
23Algoritmos de reemplazo de páginas y algoritmos
de asignación de marco
- Dos aspectos a cuidar en la implementación de la
paginación por demanda - desarrollar un algoritmo de asignación de marco
- desarrollar un algoritmo de reemplazo de páginas
- En el primero, si se tienen varios procesos en
memoria, hay que decidir cuántos marcos se
asignarán a cada uno - En el último, si hay que reemplazar páginas hay
que seleccionar cuales se reemplazarán
24Algoritmos de reemplazo de páginas
- Cómo escoger un algoritmo de reemplazo
específico? - En general lo que se busca es el algoritmo con la
frecuencia de fallos de página más baja - Evaluación
- Se ejecuta con una serie específica de
referencias a memoria y se calcula el número de
fallos de página - serie específica serie de referencias
- serie se puede generar en forma aleatoria o a
partir del rastreo de un sistema dado - también se necesita saber el número de marcos que
se dispone - a medida que aumenta el número de marcos, el
número de fallos disminuye, - la adición de memoria física incrementa el número
de marcos
25Algoritmo Optimo
- Cuando ocurre fallo página cierto conjunto de
páginas se encuentran en memoria - En la siguiente instrucción se hará referencia a
una de estas páginas (la página que contenga la
dirección de uno de los operandos de la
instrucción) - Otras páginas no se usarán hasta 20, 200 o 1500
instrucciones más adelante - Cada página se va a etiquetar con
- - Número de instrucciones a ejecutar antes de
hacer la primera referencia a dicha página - Principio algoritmo
- - Eliminar página con la máxima etiqueta
- - Si una instrucción no va a ejecutarse durante
8 millones de instrucciones y otra página se
usará hasta dentro de 6 millones eliminar
primera retrasa el fallo de página lo más
posible - - Eliminar la página que más se va a tardar en
ser referenciada
26Algoritmo según el uso no tan reciente (NRU)
Computadoras tiene dos bits de estado asociados a
cada página R se activa si se hace
referencia a la página M se activa cuando se
escribe en la página Bits actualizados en cada
referencia a memoria. Si tales bits no existen en
hardware se pueden simular en software. Principio
Algoritmo - Al iniciar un proceso el S.O.
asigna 0 a R y M de todas las páginas -
En forma periódica se limpia el bit R, (para
distinguir páginas que no tengan referencia
de las que sí). - Fallo de página S.O.
inspecciona todas las páginas y las divide
en cuatro categorías, (según valores R y M
) caso 0 no referenciada, no
modificada caso 1 no referenciada, pero ha
sido modificada caso 2 se ha hecho
referencia, pero no modificada caso 3 se ha
hecho referencia y ha sido modificada
27Algoritmo NRU (cont)
- Algoritmo NRU elimina página de la primera clase
no vacía con el número más pequeño, (número de
clase). - Si todas tienen el mismo nivel se elimina el que
llego primero - Hipótesis implícita
- Es mejor eliminar una página modificada sin
referencia en al menos un intervalo de reloj, que
una página en blanco de uso frecuente. - Ventajas
- Fácil de comprender
- Implantación eficiente
- Rendimiento que, aún sin ser el óptimo, sí es
adecuado con mucha frecuencia.
28Algoritmo FIFO
- Principio los primeros en entrar, son los
primeros en salir. - S.O. tiene una lista de todas las páginas en
memoria, siendo la primera página la más antigua
y la última la más reciente. - En un fallo de página se elimina la primera
página y se añade la nueva al final de
la lista. - FIFO es muy pocas veces usada en su forma más
pura.
página que se cargó en 1er. lugar (1a. página en
salir)
página de carga más reciente (última página en
salir)
29Algoritmo de la Segunda Oportunidad
Modificación simple de FIFO evita deshacerse de
una página de uso frecuente inspeccionando el
bit R de la página más antigua. si (R 0)
gt página antigua y no utilizada se
reemplaza en forma inmediata si (R1) gt el
bit se limpia la página se coloca al final de
la lista su tiempo de carga se actualiza
página que se cargó en 1er. lugar
página de carga más reciente
Una variante del algoritmo es usar dos bits M y R
para decidir si se da una segunda oportunidad
30Algoritmo de Reemplazo de Reloj
Mantener páginas en una lista circular con forma
de reloj. Una manecilla apunta hacia la página
más antigua.
Al ocurrir un fallo de página se inspecciona la
página a la que apunta la manecilla. Si bit R 0
gt página se retira de memoria se
inserta nueva página en su lugar en el reloj
manecilla avanza una posición si no se busca
una página con R 0. Difiere del anterior sólo
por la implementación
31 Algoritmo de la menor uso reciente (LRU)
Páginas uso frecuente en las últimas
instrucciones se utilizan con cierta probabilidad
en las siguientes. Es probable que las páginas
que no hayan sido utilizadas durante mucho tiempo
permanezcan sin uso por bastante tiempo. Esto
induce al siguiente algoritmo al ocurrir un
fallo de página se elimina la página que no haya
sido utilizada durante el tiempo más
grande. Nombre estrategia LRU LRU realizable
en teoría, no es barato. Implementación
necesario mantener una lista de todas las páginas
en memoria, en donde la página de uso más
reciente este al pri ncipio de la lista y la de
uso menos reciente al final. Dificultad la
lista debe actualizarse en cada referencia a la
memoria. Búsqueda de la página en la lista, su
eliminación y posterior traslado al frente de la
misma NO puede ser una operación muy lenta.
321a. Solución caso más sencillo
Requiere de un contador de 64 bits, C, en
hardware. se incrementa en forma automática
después de cada instrucción. Cada entrada en
tabla de páginas debe contener espacio necesario
para almacenar el contador. Después de cada
referencia el valor actual de C se almacena en la
entrada de la tabla de páginas correspondiente a
la página a la que se hizo referencia. Fallo de
página gt S.O. examina todos los contadores de
la tabla de páginas y elige el mínimo,
(i.e. página de uso más reciente).
33Ejemplo solución
Valor inicial cont 0
Referencias P0, P1, P3, P1
cont 1
cont 2
cont 3
cont 4
(42)
Página más recientemente usada P1, (cont
6) Página menos usada P2 , (cont 0)
34 2a. Solución caso más sencillo
Máquina con n marcos para página, hardware LRU
puede matriz de n x n, matriz inicializada en
cero. Referencia al marco k hardware primero
activa todos los bits del renglón k desactiva
después todos los bits de la columna k. En
cualquier instante renglón con valor binario
mínimo es de uso menos frecuente, renglón con
el siguiente valor más pequeño es el segundo
de uso menos reciente, etc.
35Ejemplo de LRU con uso de una matriz
Máquina con cuatro marcos, con referencias a las
páginas en el orden 0, 1, 2, 3, 2, 1, 0, 3,
2, 3 Después hacer referencia a la página 0
tenemos la situación siguiente
36 Simulación LRU en software
LRU utiliza hardware especial. Si no existe tal
hardware gtgtgt solución implantar en
software Posibilidad usar algoritmo de uso no
frecuente o NFU necesita un contador en software
asociado a c/página valor inicial 0 En cada
interrupción de reloj, el S.O. examina todas las
páginas de la memoria el bit R (0 o 1) se suma
al contador (contadores son un intento por
llevar un registro de la frecuencia de
referencia de la página ). Principal problema
NFU nunca olvida.
37Implementación LRU con pila
- Mantener una pila de números de página
- Cuando se hace referencia a una página se saca de
la pila y se coloca arriba - De este modo, en el tope de la pila siempre esta
la página más recientemente utilizada - Ya que es necesario sacar entradas de en medio de
la pila, la mejor forma de implementar la pila es
con una lista doblemente encadenada y con
apuntadores al principio y al final - Cada actualización es costosa, pero no hay que
buscar la página a reemplazar, uno de los
apuntadores señala la página LRU - Implementación en software o microcódigo
- Ejemplo serie referencias 4 7 0 7 1 0 1 0 1 2 1
2 7 1 2
a b
pila antes de a
pila después de b
38Algoritmos de conteo
- Se podría mantener un contador del número de
referencias que se han hecho a cada página - Se tienen dos esquemas LFU y MFU
- Algoritmo LFU
- Eliminar páginas menos frecuentemente usadas (no
confundir LFU con LRU) - exige reemplazar la página con la cuenta más baja
- una página que se ha usado activamente debe tener
una cuenta de referencias grande - algoritmo castiga a páginas que se usaron mucho
durante la fase inicial y luego no se vuelven a
usar - Algoritmo MFU
- eliminar páginas más frecuentemente usadas
- se basa en el argumento de que la página con la
cuenta más baja probablemente se acaba de traer a
la memoria y todavía no se usa - Ni el algoritmo MFU ni el LFU son comunes
- La implementación de estos algoritmos es
relativamente costosa
39Algoritmo colocación páginas en buffers
- Muchos sistemas mantienen una reserva de marcos
libres - Cuando ocurre un fallo de página, se escoge un
marco víctima igual que antes - sin embargo la página deseada se coloca en un
marco libre de la reserva antes de escribir la
víctima en el disco - este procedimiento permite al proceso reiniciarse
lo más pronto posible, sin esperar a que la
página víctima se escriba en el disco - cuando la víctima termina de escribirse en el
disco, su marco se añade a la reserva de marcos
libres - Una variante es mantener una lista de páginas
modificadas - siempre que dispositivo de paginación este
ocioso, se escoge una página modificada y se
escribe en el disco - después de lo cual se apaga su bit de
modificación - esquema aumenta probabilidad de que una página
este limpia cuando se le escoja para ser
reemplazada, y no tenga que reescribirse
40- Otra variantes es mantener una reserva de marcos
libres, pero recordar cuál página estaba en cada
marco - el contenido de un marco no se modifica cuando la
página que contiene se escribe en el disco - entonces es posible reutilizar la página vieja
directamente de la reserva de marcos libres si
llega a necesitarse antes de que vuelva a usarse
ese marco - en tal caso, no habrá que efectuar E/S
- cuando ocurre un fallo de página, primero se
determina si la página deseada está en la reserva
de marcos libres - so no es así, se escoge un marco libre y se
coloca en él la nueva página
41 Algoritmo de maduración
Bits R para las páginas 0-5, en la marca de
reloj
Bits R para las páginas 0-5, en la marca de reloj
Bits R para las páginas 0-5, en la marca de reloj
Bits R para las páginas 0-5, en la marca de
reloj
Bits R para las páginas 0-5, en la marca de
reloj
Página
11000000
11100000
11110000
10000000
01111000
11000000
01100000
10110000
00100000
00010000
10001000
10000000
01000000
00100000
01100000
10110000
01011000
10100000
01010000
00101000
(a)
(b)
(c)
(d)
(e)
42Asignación de marcos
- Como repartir la cantidad fija de memoria libre
entre los distintos procesos - Si se tienen 93 marcos libres y dos procesos
cuantos marcos recibe cada proceso? - Caso más sencillo monousuario
- memoria 128K y páginas de 1K
- sistema operativo ocupa 35K gt 93 marcos libres
- 93 marcos se colocan en lista de marcos libres
- proceso inicia y va a recibir los 93 marcos,
cuando requiera un 94, se aplica un algoritmo de
reemplazo - al final proceso regresa los 93 marcos
- otras opciones si sistema operativo no usa su
espacio de buffers y tablas estos podrían apoyar
la paginación de usuarios - resumiendo estrategia se asigna cualquier marco
libre al proceso del usuario
43Número mínimo de marcos
- No es posible asignar más del total de marcos
disponibles (a menos que se compartan las
páginas) - Existe un número mínimo de marcos que se pueden
asignar - número definido por la arquitectura del conjunto
de instrucciones - contener páginas a las que una sola instrucción
pueda hacer referencia (evitar reiniciar
instrucción) - situación grave arquitecturas que permiten
múltiples niveles de indirección - instrucción carga sencilla puede hacer referencia
a una dirección indirecta (en otra página) que
también puede hacer referencia a una dirección
indirecta (en otra página) - solución indirecciones limitar los niveles de
indirección, a través de un contador, - Número mínimo de marcos por proceso esta definido
por la arquitectura, mientras que el número
máximo esta definido por la cantidad de memoria
física disponible - Menos marcos gt más fallos de página
44Algoritmos de asignación
- Asignación equitativa
- La forma más fácil de dividir m marcos entre n
procesos es dar a cada proceso una porción de m/n
marcos - Por ejemplo 93 marcos y cinco procesos cada
proceso recibirá 18 marcos, los tres marcos
restantes pueden usarse como reserva - Asignación proporcional
- diferentes procesos requieren diferentes
cantidades de memoria - si un proceso (p1) requiere 10K y otro (p2) 127K
y hay 62 marcos no es lógico asignar 31 marcos a
cada uno - se asigna memoria disponible a cada proceso según
su tamaño, entonces
45- Se debe ajustar ai de modo que sea un entero
mayor que el número mínimo de marcos requeridos
por el conjunto de instrucciones y que la
sumatoria no exceda m - En el ejemplo anterior
- 10/137 x 62 4 (p1 tendrá 4 marcos)
- 127/137 x 62 57 (p2 tendrá 10 marcos)
- Los procesos comparen recursos de acuerdo a su
necesidad - Tanto en asignación equitativa como en
proporcional la asignación a cada proceso puede
variar según el nivel de multiprogramación - si el nivel se incrementa cada procesos perderá
algunos marcos para proporcionar al nuevo proceso - si el nivel disminuye los marcos que se habían
asignado al proceso que salió se pueden repartir - Tanto en asignación equitativa como proporcional
un proceso de alta prioridad se trata igual que
uno de baja prioridad - Para dar prioridad es posible emplear esquema
asignación proporcional en el que la asignación
de marcos no dependa de tamaños relativos de los
procesos si no de su nivel de prioridad
46Asignación global o local
- Otro factor importante de como se asignan los
marcos es el reemplazo de páginas - Si hay varios procesos compitiendo por los
marcos, es posible clasificar algoritmos de
reemplazo en reemplazo global y reemplazo local - Reemplazo global
- permite a un proceso seleccionar un marco de
reemplazo del conjunto de todos los marcos, - incluso si ese marco esta asignado a otro
proceso, un proceso puede arrebatarle un marco a
otro - por ejemplo, procesos con más prioridad
- problema un proceso no puede controlar su propia
frecuencia de fallos de página (proceso sólo
selecciona marcos asignados a otros procesos) - Reemplazo local
- el número de marcos asignado a un proceso no
cambia - el conjunto de páginas de un proceso que están en
la memoria sólo depende del comportamiento de
paginación de ese proceso - podría obstaculizar ejecución de un proceso por
no dejar que aproveche otras páginas de memoria
de poco uso - Reemplazo global generalmente aumenta el
rendimiento de un sistema, y es el más usado
47La segmentación
- Paginación espacio direcciones
unidimensional, (0..max) - Dotar máquina de
varios espacios independientes de direcciones,
desde 0 hasta cierto máximo. - Los distintos
segmentos pueden tener longitudes distintas. -
La longitud de cada segmento puede ser
distinta - La longitud de un segmento puede
variar durante su ejecución - Acceso se hace en
dos partes número de segmento y una dirección
dentro de este - Un segmento puede tener la
protección adecuada para el tipo de objeto
almacenado
48 Espacio de direcciones virtuales
La tabla de símbolos se
Tabla de
ha encimado en la tabla
símbolos
del texto fuente
Texto fuente
Espacio de direcciones utilizado en este
momento por la tabla de constantes
Tabla de constantes
Espacio de direcciones
asignado a la tabla de
Libre
constantes
árbol léxico
Llamadas a la pila
49 Constantes
0
Una memoria segmentada permite que cada tabla
crezca o se reduzca en
forma independiente de las demás
50La tabla de segmentos
Tabla de Segmentos
limite base
s
Memoria Principal
CPU
( s, d)
si
no
trap, error direccionamiento
51Ejemplo segmentación
Espacio direcciones virtuales
1400
segmento 0
2400
segmento 3
segmento 0
3200
segmento 1
segmento 3
segmento 4
segmento 2
4300
segmento 2
4700
segmento 4
5700
6300
segmento 1
Memoria Principal
6700
52Compartiendo Segmentos
Memoria Virtual
Tabla Segmentos P1
limite base 0 25286 43062 1
4425 68348
43062
editor
Espacio direcciones virtuales de P1
68348
datos 1
72773
90003
datos 2
98553
Espacio direcciones virtuales de P2
53Combinando paginación y segmentación
dirección virtual
d
s
STBR s
no
trap
(base tabla) p
Memoria Principal
f
f d
dirección física
Tabla de páginas para segmento s
54Esquema MULTICS
- Direcciones virtuales 18 bits de número de
segmento 16 bits de offset - Necesarias igual
número de entradas en tabla segmentos y
segmentos (no debe de haber entradas vacías) -
Segmentos palabras de 64K - Paginar los
segmentos cualquier marco vacío puede ser usado
para una determinada página
Descriptor del segmento
18
9
1 1 1
3
3
Direcciones en memoria princi- pal de la tabla de
paginación
Longitud del seg- mento (en páginas)
bits diversos
bits protección
Dirección virtual 34 bits
18
6 10
55Interpretación de una dirección en MULTICS
Dirección lógica
tabla de páginas de la tabla de segmentos
página de la tabla de segmentos
tabla de páginas del segmentos
página del segmento
56Comparación paginación segmentación
Motorola 68000 paginación Intel 8086
segmentación
57 Cerrado en un
bit de
memoria
Solicitando
En tránsito
Entrada del mapa central
Libre
Texto / datos / pila
Código del orden del bloque
Indice en la tabla de procesos
Número de bloque en disco
Ajuste dentro del segmento
Número del dispositivo en disco
Indice de la siguiente entrada
Indice de la entrada superior
Entradas del mapa
central, uno por
cada marco de página
3
2
1
Núcleo de UNIX
4.3BSD
Memoria para páginas
Memoria para páginas
Memoria para páginas
0
Memoria para páginas
Memoria principal