la memoria virtualsistemas operativos diapo. no. 1 if its there and you can see it - its real if its...
TRANSCRIPT
La memoria virtualSistemas Operativos
Diapo. No. 1
If it’s there and you can see it - it’s real
If it’s not there and you can see it- it’s virtual
If it’s there and you can’t see it- it’s transparent
If it’s not there and you can´t see it- you erased it!
IBM poster explaining virtual memory, circa 1978
La memoria virtual
La memoria virtualSistemas Operativos
Diapo. No. 2
Características memoria virtual
programa 1M
computadora512K en RAM
Programas muy grandes no caben en memoria disponible:
solución: dividir programa en partes (capas)
capa 0: se ejecuta primeroterminase llama la capa 1
Capas se mantienen en disco (zona de swap) y se intercambian con la memoria por medio del sistema operativo
La memoria virtualSistemas Operativos
Diapo. No. 3
Aspectos 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
La memoria virtualSistemas Operativos
Diapo. No. 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
La memoria virtualSistemas Operativos
Diapo. No. 5
C
PU
Un
idad
ad
mon
. d
e m
emor
ia
Mem
ori
aC
ontr
olad
or
de
dis
co
BU
S
La C
PU e
nví
a la
s d
irec
cio
nes
vi
rtu
ales
a la
MM
U
Tarj
eta
CPU La M
MI
enví
a la
s d
irec
cion
es
físic
as a
la m
em
oria
La memoria virtualSistemas Operativos
Diapo. No. 6
La 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
La memoria virtualSistemas Operativos
Diapo. No. 7
pag 0
pag 2
pag 1
pag n
.
.
.
.
memoria virtual
mapa de
memoria
memoria física disco
La memoria virtualSistemas Operativos
Diapo. No. 8
A
B
C
D
E
F
G
H
0
memoria lógica
0
4
9
6
i
v
i
v
i
i
v
i
marca
válido
no - válido
tabla de
páginas
A
memoria física (RAM)
disco
A B
D EC
F
1
2
3
4
5
6
7
1
2
3
4
5
6
7
0
1
2
3
45
6
7
10
11
12
13
14
15
C
F
8
9
La memoria virtualSistemas Operativos
Diapo. No. 9
16 17 18 19
12
13 14
15
8 9 10 11
0 1 2 3
20
21
22
23
4 5 6 7
programa A
programa
B
discomemoria RAM
La memoria virtualSistemas Operativos
Diapo. No. 10
H
cargar M
J
M
memoria lógica para el usuario 1
D
C
B
A
memoria lógica para el
usuario 2
3
4
5
v
v
v
i
bit de validez / no validez
marco
Tabla de páginas para el usuario 1
3
4
5
v
v
v
i
bit de validez / no validez
marco
Tabla de páginas para el usuario 1
monitor
H
D
J
A
E
cargar M
memoria física
B
M0
3
1
4
5
2
6
7
0
3
10
31
2
2
La memoria virtualSistemas Operativos
Diapo. No. 11
0
f v
i
bit de validez / no validez
marco
tabla de páginas
2
4
cambiar a no
válido
restablecer la tabla por la nueva página
f
víctima
memoria física
1
3
Intercambiar a disco la página víctima
Inter cambiar a la memoria la página adecuada
La memoria virtualSistemas Operativos
Diapo. No. 12
0- 4k 4K- 8K 8K-12K 12K-16K 16K-20K 20K-24K 24K-28K 28K-32K 32K-36K 36K-40K 40K-44K 44K-48K 48K-52K 52K-56K 56K-60K 60K-64K
2 1 6 0 4 3 x x x 5 x 7 x x x x
0- 4k 4K- 8K 8K-12K 12K-16K 16K-20K 20K-24K 24K-28K
} 28K-32K
Marco para página
Página virtual
Direcciones en la memoria fisica
Espacio de direcciones virtuales
}
Ejemplo paginación
La memoria virtualSistemas Operativos
Diapo. No. 13
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
010 1 001 1 110 1 000 1 100 1 011 1 000 0 000 0 000 0 101 1 000 0 111 1 000 0 000 0 000 0 000 0
110
Tabla de páginas
El ajuste de 12 bits se copia en
forma directa de la entrada a
la salida
Bit presente/ausente
Página virtual = 2 se utiliza como un índice en la tabla de
páginas.
Dirección física de salida (24580)
Dirección física de salida (24580)
Dirección física de salida (15 bits) (24580)
Dirección virtual de entrada (16 bits) (8196)
16 páginas de 4K
1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
La memoria virtualSistemas Operativos
Diapo. No. 14
PT 2PT 1 Offset
10 10 12
Bits
01
23
45
6
7
1023
PT 1
Tabla de páginas de nivel superior
Hacia las páginas
01
23
45
67
1023
Tabla de páginas para los 4 M supe- riores de la memoria
(a)
(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
Tabla de páginas de segundo nivel
Tabla superior: c/entrada = 4M => se tienen 4G de direcciones virtuales232 = 4,294,967,296 = 4G
La memoria virtualSistemas Operativos
Diapo. No. 15
Ejemplo direccionamiento
Espacio direcciones virtuales: 232 = 4,294,967,296 = 4G Ejemplo dirección virtual: 0x00403004 = 0000 0000 0100 0000 0011 0000 0000 0100
=> PT1 = 1 PT2 = 3 Offset = 4
PT2 = 3
4M
8M
tabla 1
tabla 1023
PT1 = 1
1
0
4M -1tabla 0
x12292 (dir. abs 4,206,592)
a16383 (dir. abs 4, 210,687)
:x contiene el númerode marco de la página
con dirección 0x00403004
La memoria virtualSistemas Operativos
Diapo. No. 16
Compartiendo páginas
- Posibilidad de compartir código en común- Importante en tiempo compartido
ed1
ed2
ed3
datos1
Contexto del proceso p1
3461
Tabla Páginas
de p1
datos 1
ed1
datos 3
ed2
datos2
ed3
ed1
ed2
ed3
datos2
Contexto del proceso p2
3467
Tabla Páginas
de p2
ed1
ed2
ed3
datos3
Contexto del proceso p3
3462
Tabla Páginas
de p3
01
2
3
4
5
6
7
8
9
10
La memoria virtualSistemas Operativos
Diapo. No. 17
Desempeñ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
) ( )1( páginadefallótiempopamptea
La memoria virtualSistemas Operativos
Diapo. No. 18
Secuencia 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
La memoria virtualSistemas Operativos
Diapo. No. 19
Tiempo 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
La memoria virtualSistemas Operativos
Diapo. No. 20
Entonces ???
• 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 > 100 + 25,000,000 x p
10 > 25,000,000 x p
p > 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
La memoria virtualSistemas Operativos
Diapo. No. 21
El 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
La memoria virtualSistemas Operativos
Diapo. No. 22
Estructura tabla de páginas
Número de marco de página
Caching desactivado
Modificado
ReferenciadoProtección
Presente/ausente
caching: páginas asociadas a registros de dispositivosreferenciado: 1 cuando se hace una referencia a una página
para leer o escribirmodificado: recuperación marco, si página no ha sido
modificada no se escribe a discoprotecció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
La memoria virtualSistemas Operativos
Diapo. No. 23
Algoritmos 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
La memoria virtualSistemas Operativos
Diapo. No. 24
Algoritmos 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
La memoria virtualSistemas Operativos
Diapo. No. 25
Algoritmo 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
Página 1
Etiqueta: 10
Página 2
Etiqueta: 30
Página 3
Etiqueta: 5
La memoria virtualSistemas Operativos
Diapo. No. 26
Algoritmo 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áginaM: 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
La memoria virtualSistemas Operativos
Diapo. No. 27
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.
Algoritmo NRU (cont)
La memoria virtualSistemas Operativos
Diapo. No. 28
Algoritmo 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 secargó en 1er. lugar
(1a. página en salir)
A B C D E F H
0 3 7 8 12 15 18
página de cargamás reciente
(última página en salir)
La memoria virtualSistemas Operativos
Diapo. No. 29
página que secargó en 1er. lugar
Algoritmo de la Segunda Oportunidad
Modificación simple de FIFOevita deshacerse de una página de uso frecuenteinspeccionando el bit R de la página más antigua.
si (R = 0) => página antigua y no utilizada se reemplaza en forma inmediata
si (R=1) => el bit se limpiala página se coloca al final de la listasu tiempo de carga se actualiza
A B C D E F G
0 3 7 8 12 15 18
B C D E F G A
3 7 8 12 15 18 20
página de cargamás reciente
Una variante del algoritmo es usar dos bits M y R para decidir si se da una segunda oportunidad
La memoria virtualSistemas Operativos
Diapo. No. 30
Algoritmo 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.
B
C
D
E
F
G
A
H
I
K
J
L
Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla.Si bit R = 0 => 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
La memoria virtualSistemas Operativos
Diapo. No. 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 durantemucho tiempo permanezcan sin uso por bastante tiempo.
Esto induce al siguiente algoritmo:
al ocurrir un fallo de página se elimina la página queno 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.
La memoria virtualSistemas Operativos
Diapo. No. 32
1a. Solución: caso más sencillo
Requiere de un contador de 64 bits, C, en hardware. se incrementa en forma automática después decada 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:=> 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).
La memoria virtualSistemas Operativos
Diapo. No. 33
Ejemplo solución
Valor inicial cont = 0;
P0 P1 P2 P3
1 0 0 0
P0 P1 P2 P3
1 2 0 0
P0 P1 P2 P3
1 2 0 3
P0 P1 P2 P3
1 6 0 3
Página más recientemente usada: P1, (cont = 6)Página menos usada: P2 , (cont = 0)
cont = 1;
cont = 2;
cont = 3;
cont = 4;
Referencias: P0, P1, P3, P1
(4+2)
La memoria virtualSistemas Operativos
Diapo. No. 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 khardware 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.
La memoria virtualSistemas Operativos
Diapo. No. 35
Ejemplo de LRU con uso de una matriz
0 1 2 30 0 1 1 11 0 0 0 02 0 0 0 03 0 0 0 0
(a) (b) (d) (d)
0 1 2 30 0 0 1 11 1 0 1 12 0 0 0 03 0 0 0 0
0 1 2 30 0 0 0 11 1 0 0 12 1 1 0 13 0 0 0 0
0 1 2 30 0 0 0 01 1 0 0 02 1 1 0 03 1 1 1 0
(d) (f) (g) (h)
0 1 2 30 0 1 1 01 0 0 1 02 0 0 0 03 1 1 1 0
0 1 2 30 0 1 1 11 0 0 1 12 0 0 0 13 0 0 0 0
0 1 2 30 0 0 0 01 1 0 1 12 1 0 0 13 1 0 0 0
0 1 2 30 0 0 0 01 1 0 0 02 1 1 0 13 1 1 0 0
(i) (j)
0 1 2 30 0 1 0 01 0 0 0 02 1 1 0 13 1 1 0 0
0 1 2 30 0 1 0 01 0 0 0 02 1 1 0 03 1 1 1 0
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:
La memoria virtualSistemas Operativos
Diapo. No. 36
Simulación LRU en software
LRU utiliza hardware especial.
Si no existe tal hardware >>> solución implantar en software
Posibilidad usar algoritmo de uso no frecuente o NFUnecesita un contador en software asociado a c/páginavalor 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.
La memoria virtualSistemas Operativos
Diapo. No. 37
Implementació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
2 1 0 7 4
7 2 0 7 4
a b
pila antes de a pila después de b
La memoria virtualSistemas Operativos
Diapo. No. 38
• 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
Algoritmos de conteo
La memoria virtualSistemas Operativos
Diapo. No. 39
• 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
Algoritmo colocación páginas en buffers
La memoria virtualSistemas Operativos
Diapo. No. 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
La memoria virtualSistemas Operativos
Diapo. No. 41
Algoritmo de maduración
11000000 11100000 1111000010000000
00000000
10000000
00000000
10000000
10000000
10000000
01000000
00000000
11000000
01000000
11000000
00100000
10000000
01100000
10100000
01111000
01100000 10110000
00010000 10001000
01000000 00100000
10110000 01011000
01010000 00101000
Bits R para las páginas 0-5,
en la marca de reloj
Bits R para laspáginas 0-5,
en la marca de reloj
Página
Bits R para laspá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
(a) (b) (c) (d) (e)
1 0 10 1 1 11 0 01 0 1 10 1 01 10 0 01 0 01 1 00 0
La memoria virtualSistemas Operativos
Diapo. No. 42
Asignació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 => 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
La memoria virtualSistemas Operativos
Diapo. No. 43
Nú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 => más fallos de página
La memoria virtualSistemas Operativos
Diapo. No. 44
Algoritmos 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:
m/S s a
a
m
sS
ps
ii
i
i
ii
ai proceso al asignados marcos número:
sdisponible marcos de total:
proceso para virtualmemoria tamaño:
La memoria virtualSistemas Operativos
Diapo. No. 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
La memoria virtualSistemas Operativos
Diapo. No. 46
Asignació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
La memoria virtualSistemas Operativos
Diapo. No. 47
La 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
La memoria virtualSistemas Operativos
Diapo. No. 48
Espacio de direcciones virtuales
Espacio de direcciones utilizado en este momento por la tabla de constantes
Tabla de símbolos
Texto fuente
Llamadas a la pila
La tabla de símbolos se ha encimado en la tabla del texto fuente
Espacio de direcciones asignado a la tabla de constantes
Tabla de constantes
árbol léxico
Libre
En un espacio unidimensional de direcciones con tablas crecientes, una tabla puede encimarse con otra.
La memoria virtualSistemas Operativos
Diapo. No. 49
4 K
8 K
12 K
16 K
O
20 K
Tab
la d
e
sím
bolo
s
Seg
men
to0
4 K
8 K
12 K
O
Tex
to
fuen
te
Seg
men
to1
Seg
men
to2
Seg
men
to3
Seg
men
to4
Con
stan
tes
0
4 K
8 K
12 K
16 K
O
árbo
l lé
xico
4 K
8 K
12 K
O
Llam
adas
a
la p
ila
Un
a m
em
oria
se
gm
en
tad
a p
erm
ite q
ue
ca
da
ta
bla
cre
zca
o s
e r
ed
uzc
a e
n
form
a in
de
pe
nd
ien
te d
e la
s d
em
ás
La memoria virtualSistemas Operativos
Diapo. No. 50
CPU ( s, d)
limite base
s
Tabla de Segmentos
d < limite
base+d
si
no
trap, error direccionamiento
Memoria Principal
La tabla de segmentos
La memoria virtualSistemas Operativos
Diapo. No. 51
Ejemplo segmentación
subrutina stack
tabla de simbolosmain() del
programa principal
sqrt()
1400
2400
3200
4300
4700
5700
6300
6700
segmento 0
segmento 3
segmento 2
segmento 4
segmento 1Memoria Principal
limite base0 1000 14001 400 63002 400 43003 1100 32004 1000 4700
Tabla de Segmentos
Espacio direcciones virtuales
segmento 0
segmento 2
segmento 3
segmento 4
segmento 1
La memoria virtualSistemas Operativos
Diapo. No. 52
Compartiendo Segmentos
Espacio direcciones virtuales de P1
Editor
segmento 0
datos 1
segmento 1
Espacio direcciones virtuales de P2
Editor
segmento 0
datos 2
segmento 1
limite base0 25286 430621 8550 90003
Tabla Segmentos P2
limite base0 25286 430621 4425 68348
Tabla Segmentos P1
43062
68348
72773
Memoria Virtual
90003
98553
editor
datos 1
datos 2
La memoria virtualSistemas Operativos
Diapo. No. 53
Combinando paginación y segmentación
dirección virtual
STBR + s
d
s d
longitud basesegmento tabla-páginas
d < (long. seg.)
p d’no
trap
(base tabla) +p
MemoriaPrincipal
Tabla de páginaspara segmento s
dirección física
f f d’
La memoria virtualSistemas Operativos
Diapo. No. 54
Esquema MULTICS
- Direcciones virtuales:18 bits de número de segmento16 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
Direcciones en memoria princi-pal de la tabla de paginación
Longitud del seg-mento (en páginas)
bits diversos
bits protección
Tamaño página:0: 1024 palabras1: 64 palabras
0: segmento esta paginado1: segmento no paginado
Número de segmento
Número de página
Ajuste dentro de la página
Descriptor del segmento:
Dirección virtual 34 bits:
18 9 1 1 1 3 3
18 6 10
La memoria virtualSistemas Operativos
Diapo. No. 55
Interpretación de una dirección en MULTICS
Dirección lógica
s1 s2 d1 d2
s1
s2
d1
d2
tabla de páginasde la tabla
de segmentos páginade la tabla
de segmentos tabla de páginasdel segmentos
páginadel segmento
La memoria virtualSistemas Operativos
Diapo. No. 56
Comparación paginación segmentación
Considerando Paginación Segmentación
¿Necesita saber el programador si está NO SIutilizando esta técnica?
¿Cuántos espacios lineales de direcciones 1 Muchosexisten?
¿Puede el espacio total de direcciones SI SIexceder el tamaño de la memoria física?
¿Pueden distinguirse los procedimientos y los datos, además de protegerse en NO SIforma independiente?
¿Pueden adecuarse con facilidad las NO SItablas con tamaños fluctantes?
¿Se facilita el uso de procedimientos NO SIcompartidos entre los usuarios?
Motorola 68000: paginaciónIntel 8086: segmentación
La memoria virtualSistemas Operativos
Diapo. No. 57
~ ~
~ ~
Mem
oria
par
a pá
gina
s 3
Mem
oria
par
a pá
gina
s 2
Mem
oria
par
a pá
gina
s 1
Mem
oria
par
a pá
gina
s 0
Núc
leo
de U
NIX
4.
3BS
D
Indi
ce d
e la
sig
uien
te e
ntra
da
Indi
ce d
e la
ent
rada
sup
erio
r
Núm
ero
de b
loqu
e en
dis
co
Núm
ero
del d
ispo
sitiv
o en
dis
co
Cód
igo
del o
rden
del
blo
que
Indi
ce e
n la
tabl
a de
pro
ceso
s
Tex
to /
dato
s / p
ila
Aju
ste
dent
ro d
el s
egm
ento
Libr
eE
n tr
ánsi
toS
olic
itand
o
Cer
rado
en
un
bit d
e
mem
oria
Ent
rada
s de
l map
a ce
ntra
l, un
o po
r
cada
mar
co d
e pá
gina
Ent
rada
del
map
a ce
ntra
l
Mem
oria
prin
cipa
l
~ ~~ ~