DSO 2015
Paginación
Segmentación
Memoria Virtual
Bibliografia:(Temas de Memoria de Nutt, Stalling y
Carretero)
DSO 2 Gestión de Memoria
Formato del ejecutable
Cabecera
Fichero EjecutableNúmero mágico
Contador de programa inicial
Tabla de secciones
Código
Datos con valor inicial
Tabla de símbolos
....................
CódigoDatos con v.i.Datos sin v.i....................... ........ ........
T. Símbolos
10005000------
8000
40001000500
1000
Despl. Tam.
. . . . . . . . . . . . . . . .
0
1000
5000
8000
Secciones
DSO 3 Gestión de Memoria
Crear mapa de memoria desde ejecutable
• Ejecución de un programa: – Crea mapa a partir de ejecutable
– Cuando se activa la ejecución de un programa (servicio exec en POSIXy CreateProcessen Win32), se crean varias regiones dentro del mapa apartir de la información del ejecutable. Cada sección del ejecutableconstituye un objeto de memoria. Las regiones iniciales del proceso sevan a corresponder básicamente con las distintas secciones delejecutable.
– Regiones de mapa inicial Secciones de ejecutable– Código
– Compartida, RX, T. Fijo, Soporte en Ejecutable– Datos con valor inicial
– Privada, RW, T. Fijo, Soporte en Ejecutable– Datos sin valor inicial
– Privada, RW, T. Fijo, Sin Soporte (rellenar 0)– Pila Privada, RW, T. Variable, Sin Soporte (rellenar 0) Crece hacia direcciones más bajas Pila inicial:
argumentos del programa
DSO 4 Gestión de Memoria
Mapa de memoria de un proceso
• Mapa de memoria o imagen del proceso:– conjunto de regiones
• Región:– Tiene asociada una información (un “objeto de
memoria”)– Zona contigua tratada como unidad al proteger o
compartir
• Cada región se caracteriza por:– dirección de comienzo y tamaño inicial– Soporte: donde se almacena su contenido inicial– protección: RWX– uso compartido o privado– tamaño fijo o variable
DSO 5 Gestión de Memoria
Crear mapa desde ejecutable
Cabecera
Fichero EjecutableNúmero mágico
Contador de programa inicial
Tabla de secciones
Código
Datos con valor inicial
Tabla de símbolos
....................
. . . . . . . . . . . . . . . .
0
1000
5000
8000
Secciones
Mapa de memoria
Código
Datos con valor inicial
0
4000
5000Datos sin valor inicial
PilaArgumentos del programa
“0”
DSO 6 Gestión de Memoria
Características de regiones
Región Soporte Protección Comp/Priv Tamaño
Código Fichero RX Compartida Fijo
Dat. con v.i. Fichero RW Privada Fijo
Dat. sin v.i. Sin soporte RW Privada Fijo
Pilas Sin soporte RW Privada Variable
Heap Sin soporte RW Privada Variable
F. Proyect. Fichero por usuario Comp./Priv. Variable
M. Comp. Sin soporte por usuario Compartida Variable
DSO 7 Gestión de Memoria
Mapa de memoria de un proceso hipotéticoMapa de memoria
Código
Datos con valor inicial
Datos sin valor inicial
Pila del proceso
Heap
Zona de memoria compartida
Pila de thread 1
Fichero proyectado F
Código biblioteca dinámica B
DSO 8 Gestión de Memoria
Operaciones sobre regiones
• Para estudiar evolución del mapa de memoria sepueden distinguir las siguientes operaciones: – Crear región
• Implícitamente al crear mapa inicial o por solicitud delprograma en t. de ejecución (p.ej. proyectar un archivo)
– Eliminar región• Implícitamente al terminar el proceso o por solicitud del
programa en t. de ejecución (p.ej. desproyectar unarchivo)
– Cambiar tamaño de la región• Implícitamente para la pila o por solicitud del programa
para el heap– Duplicar región
• Operación requerida por el servicio FORK de POSIX
DSO 10 Gestión de Memoria
Reubicacion
Registro base Registro límite
<
Dirección lógica Si
No
Error de acceso a memoria (modo supervisor)
Dirección física
+
MemoriaCPU
DSO 11 Gestión de Memoria
Particiones Fijas
• Se divide la memoriadisponible en particionesfijas (al arrancar elsistema)
• Cada proceso se asignaa una UNICA particion
OS 8M
8M
8M
8M
8M
OS 8M
4M
8M
8M
12M
Igual Tamaño Distinto
DSO 12 Gestión de Memoria
Fragmentación Interna
OS 8M
8M
8M
8M
8M
Un procesoque usa 7M
Cuando este proceso, esalojado en memoria 1M dememoria ya no puede serutilizado por otro proceso.Esto se llamaFragmentación Interna
DSO 13 Gestión de Memoria
Particiones Dinamicas
• Las particiones son de tamaño variable
• A los procesos se les asigna la cantidad dememoria justa que necesitan
• No hay fragmentación interna, pero ...– Hay fragmentación externa. Se producen
agujeros en memoria. – Se utiliza la compactación
DSO 14 Gestión de Memoria
Algoritmo de ubicación
6M
8M
2M
7M
5M
Donde guardoeste proceso?
ultimobloquealojado
Mejor encaje
Primer encaje
Siguiente encaje
DSO 15 Gestión de Memoria
Problemas
• Todas las estrategias vistas hasta ahora:– Asignación contigua de memoria: Si dos direcciones lógicas
son contiguas, sus equivalentes direcciones físicas también– Problemas de fragmentación: interna y externa
• Solución:– Asignación no consecutiva de la memoria
• Paginación: páginas• Segmentación: segmentos (en apuntes)
DSO 16 Gestión de Memoria
Paginación
• La memoria logica de un proceso puede ser nocontigua.
• La memoria logica se divide en trozos de igualtamaño llamados páginas.
• La memoria fisica se divide en trozos fijos de igualtamaño llamados marcos:– El tamaño suele ser potencia de 2, entre 512 y 8192
bytes
• De manera que el tamaño de la pagina es igual altamaño del marco
DSO 17 Gestión de Memoria
Marcos
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
Numero de marco en hexadecimalRAM
El marco 00000 contiene lasdirecciones de los bytes desde0x00000000 hasta 0x00000FFF.Marco 00009 contiene lasdirecciones de los bytes desde0x00009000 – 0x00009FFF.
La RAM se divide en marcos iguales (4096 bytes en Pentium).
4096 bytes encada marco
DSO 18 Gestión de Memoria
Espacio de direcciones
Espacio de direccionesdel proceso A
Esp. Dir.del proceso B
Cada proceso tiene su propio Espaciode direcciones. Es una 'ilusión' creadapor el SO. Algunos bytes están enRAM, otros en disco y otros no existen.Cada byte del Espacio de direccioneses direccionado por una direcciónlógica de 32-bit. Por tanto cadaproceso puede acceder a 2^32 = 4Gbytes.
El espacio de direcciones de A y B estánseparados, por ejemplo, este byte no es elmismo aunque se referencien con lamisma dirección.
00056
DSO 19 Gestión de Memoria
Páginas
El Espacio de direcciones deun proceso se divide en trozosiguales llamados páginas
A
A
A
00000
00001
00002B
B
00000
00001
C
C
C
C00000
00001
00002
00003
Espacio de direccionesde A
Por ejemplo,el byte00002,000 es el primerbyte en la pagina 00002.
Numero de pagina en HEX
Espacio de direcciones de C
Espacio de direcciones de B
DSO 20 Gestión de Memoria
Paginas y marcos
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
A
A
A
C
B
C
B
C
A
A
A
C
C
C
C
B
B
Las paginas en elespacio de direccionesde un proceso, semapean a marcos enmemoria física (RAM).
Fijaros que ahora laspaginas se puedenmapear a marcos nocontiguos.
RAM
Espacio dir de A
?Espacio dir de C
Espacio dir de B
DSO 21 Gestión de Memoria
Traslación de Direcciones
Proceso ve dir. logicas La CPU debe de trasladarla
a una dir. Físicautilizando la tabla depáginas.
DSO 22 Gestión de Memoria
Tabla de Páginas
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
A
A
A
C
B
C
B
C
C
A
A
A
00000
00001
00002
00000
00001
00002
00002
00000
00001
Tabla de páginas de A
El SO mantiene una estructura llamada tabla de pagina para almacenar larelacion entre pagina-marco.
00000
00001
00003
00005
00006
?
Tabla de páginas de B00000
00001
00002
00004
00007
00008
Tabla de páginas de C
RAMEspacio dir de A
DSO 23 Gestión de Memoria
Traslación de direcciones, 1
C
C
C
C
Espacio dir.de C
00000
00001
00002
00003
00000100
00000101
procedure greet;begin writeln(“Hello!”);end;
00003200
Cada proceso ve todos los datos quenecesita en su espacio de direcciones
DSO 24 Gestión de Memoria
Traslación de direcciones, 2
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
A
A
A
C
B
C
B
C
C
C
C
C
RAM
Espacio dir de C00003 00009
00000
00001
00002
00004
00007
00008
Tabla de paginas de C 00000
00001
00002
00003 C
Pero estas paginas, están en ram o endisco. Este mapeo entre direcciones, elso lo hace mediante el uso de Tablasde Páginas para cada proceso
DSO 25 Gestión de Memoria
Traslación de direcciones, 3
Esp. Dir C
00000
00001
00002
00003
00000 100
Dirección Lógica
MOV [00000,100], AX
Registro de instrucciones
CPU
Supongamos que C quiere escribir enuna variable en la dirección00000,100 (dentro del espacio dedirecciones de C)
DSO 26 Gestión de Memoria
Traslación de direcciones, 4
00004
00005
00006
00007
00008
00009
RAMEspacio dir de
C
00000
00001
00002
00003
00000 100
Dir. Logica
00004 100
Dir fisica
MOV [00000100], AX
CPU
Cuando la CPU ejecuta unainstrucción, tiene que buscar el datoen la RAM, mediante la MMU.
00004 100
MMU
Registro de instrucciones
DSO 27 Gestión de Memoria
Traslación de direcciones, 5
00000100
00003 00009
00000
00001
00002
00004
00007
00008
Tabla de paginas
00000 100
Numero pagina
offset
00004 100
Numero marco
offset
dirección físicadirección lógica
CPU usa la tabla de paginasde C para trasladar ladirección lógica en unadirección física
00004100
Marco 00004
pagina 00000
DSO 28 Gestión de Memoria
Traslación de direcciones, 6
00000 100
20 bit para el #pagina
12 bit desplazamiento
00004 100
20 bit para el #marco
12 bit desplazamiento
Dirección lógica: dirección con laque trabaja el proceso. El procesono sabe donde se ubica esta dir enRAM.
Dirección física: dirección enRAM.
00003 00009
00000
00001
00002
00004
00007
00008
Tabla de paginas de C
DSO 29 Gestión de Memoria
Paginación – Ejemplo (1/4)
0123456789
1011121314
Marco Memoria
A.00A.11A.22A.33
456789
1011121314
MemoriaMarco
A.00A.11A.22A.33B.04B.15B.26
789
1011121314
MemoriaMarco
DSO 30 Gestión de Memoria
Paginación – Ejemplo (2/4)
C.07C.18C.29C.310
11121314
Marco Memoria
A.00A.11A.22A.33B.04B.15B.26
A.00A.11A.22A.33
456
11121314
MemoriaMarco
C.07C.18C.29C.310
A.00A.11A.22A.33D.04D.15D.26
D.311D.412
1314
MemoriaMarco
C.07C.18C.29C.310
DSO 31 Gestión de Memoria
Paginación – Ejemplo (3/4)
• Mapa de tablas de páginas:
Mapa de tablas
A
B
C
D
A0123
B---
C78910
D4561112
DSO 32 Gestión de Memoria
Paginación – Ejemplo (4/4)
Mapa de tablas
P1
P2
P3
P4
P1
0123
A.00A.11A.22A.33
D.08D.19D.210D.311D.412
1314
Espacio lógicoPágina
C.04C.15C.26C.37
A.00A.11A.22A.33D.04D.15D.26
D.311D.412
1314
MemoriaMarco
C.07C.18C.29C.310
P44561112
DSO 33 Gestión de Memoria
Práctica de paginación
Nº de Pág. Nº de Marcode Pág.
R M P
0 4 1 0 1
1 7 1 1 1
2 --- 0 0 0
3 2 0 0 1
4 --- 0 0 0
5 0 0 1 1
Supóngase que la tabla de páginas de un proceso que se está ejecutando en elprocesador es:
R: es el bit de referencia. R=1 (la página ha sido referenciada) M: es el bit de modificación. M=1(la página ha sido modificada) P: es el bit de Presencia. P=1 (la página en cuestión está enmemoria principal, tiene un marco asociado)El tamaño de las páginas es de 1 kb. El marco 0 está cargado el la dirección física cero y el restosucesivamente Se pide: ¿A qué direcciones físicas corresponden las siguientes direccionesvirtuales?a). (1, 125) b). (2, 324) c). (5, 322) d). (7, 321) e). (3, 1026)El formato en el que se da la dirección virtual corresponde a (nº de página, desplazamiento)
DSO 34 Gestión de Memoria
Paginación vs. Partición fija
• La paginación es parecida al esquema departición de tamaño fijo:
• Diferencias. Con la paginación:– Las particiones son más pequeñas– Un programa puede ocupar más de una
partición– Las particiones no tienen por qué ser
contiguas– La protección se efectúa por páginas
completas
DSO 35 Gestión de Memoria
Paginación – Tamaño idóneo páginas -
• Cuanto más grandes sean las páginas:– más acentuados los inconvenientes anteriores– con más facilidad se agotarán los bloques no
ocupados y aumentará la necesidad de transferirpáginas entre memorias principal y secundaria
– tendremos más volumen de información atransferir.
• Cuanto más pequeñas sean las páginas:– más grandes serán las tablas: más costoso
• Si 2n se aprovechan de forma óptima.• Tamaños habituales: 128 bytes .. 4 K.
DSO 36 Gestión de Memoria
Paginación - Inconvenientes
La restricción de que cada página tenga untamaño preestablecido impide que la divisiónen páginas concuerde con los elementoslógicos de los programas (módulo, clase,librería)
Aunque no existe fragmentación externa (nohay huecos vacíos entre procesos), nosqueda algo de fragmentación interna:la última página del proceso no se completaen su totalidad.
SEGMENTACION (apuntes)
Arquitectura de Computadores. Gestión de Memoria
–Memoria Virtual –Introducción–Uso de la paginación–Tratamiento del fallo de pagina
DSO 38 Gestión de Memoria
Dos características de la paginación
• Las referencias a RAM se trasladan dinamicamente– El OS aloja cada pagina de un proceso en RAM, sin influir
en su procesamiento
• Cada pagina se mapea a un marco– Independientemente del lugar en que se encuentre, (ram,
disco,...
DSO 39 Gestión de Memoria
Traslación dinámica
00000
00001
00002
000260002700028
Tabla paginas de C
Supongamos que “a=99” secompila en ensamblador “mov[00000100], 99”. En elmomento en que la CPUejecuta la instruccion, la dir.logica 0x00000100 se trasladaa la dir. Fisica 0x00026100usando la tabla de paginas.
00024
00025
00026
00027
00028
00029
RAM
Espacio direcciones de C
00000
00001
00002
00000 100
Dirección lógica
Dirección física
00026 100 00022
00023
a a
DSO 40 Gestión de Memoria
Traslación dinámica
00000
00001
00002
000220002300024
Tabla paginas de C
La imagen de memoria de unproceso se puede mover delocalizacion en RAM debido aun swapping de disco. Cuandola CPU ejecuta otra vez lamisma instruccion “mov[00000100], 99” (a=99),ladireccion logica 00000100 setrasladará a una nuevadireccion en RAMautomaticamente 00022100.
00024
00025
00026
00027
00028
00029
RAM
Espacio direcciones de C
00000
00001
00002
00000 100
Dirección lógica
Dirección física
00022 100 00022
00023
a
a
DSO 41 Gestión de Memoria
Cada pagina se mapea independientemente
00000
00001
00002
000230002800026
Tabla paginas de C
00024
00025
00026
00027
00028
00029
RAM
Espacio direcciones de C
00000
00001
00002
00000 100
Dirección lógica
Dirección física
00023 100 00022
00023a
Las tres paginas 00000, 00001y 00002 (los 1ºs 12k en elespacio de direcciones)aparecen como contiguos. Perorealmente están mapeadas enmarcos discontinuos.
b
b
a
DSO 42 Gestión de Memoria
Cada pagina se mapea independientemente
00000
00001
00002
00023swap00026
Tabla paginas de C
00024
00025
00026
00027
00028
00029
RAM
Espacio direcciones de C
00000
00001
00002
00000 100
Dirección lógica
Dirección física
00023 100 00022
00023a
Y el OS puede hacer swap deuna parte del espacio dedirecciones al disco duro.Algunas paginas están en discoduro y otras en RAM.
b
a
DSO 43 Gestión de Memoria
Memoria Virtual
• Con las técnicas anteriores:– Restricción:
• El proceso debe estar en memoria por completo– Implicaciones:
• No podremos ejecutar procesos más grandes que la M.P.• Excesivo Hiperpaginación si tenemos muchos procesos
Solución?
Overlays (obsoleto, en bibliografía) Memoria Virtual (a continuación)
DSO 44 Gestión de Memoria
MV ( Problemática del Intercambio )
Solución ! → Darle al usuario la sensación de tener una M.P. enorme
• El Pentium 4 (32 bits de direcciones) ! 4GB
• Un PC medio dispone tan sólo de ! 256MB
16 vecesmenos
M.REALEspacio
de dir.
del P4
Espacio de Direcciones Fisicas del PC
Espacio
de dir.
del P4
• Teóricamente podemos escribir programaspensando en el Pentium 4 y 4GB
¿ Cómo funciona todo esto ?
Arquitectura subyacente
M.V.
• Tendremos una Memoria Virtual de 4GB y misprogramas se ejecutan aunque tenga menosMemoria Principal (256MB) siempre quequepan en la memoria virtual.
DSO 45 Gestión de Memoria
MV ( Arquitectura Subyacente )
CPU
dvBus Datos
M.V.
La Memoria Virtual residefísicamente en memoria secundaria
M.P.
¡ No caben !
• Principio de localidad:
Meto en M.P. los trozos que hagan falta paraejecutar P1 y P2
DSO 46 Gestión de Memoria
MV ( Arquitectura Subyacente )
CPU
dvBus Datos
M.V.
M.P.
• La M.V. se divide en páginas (1000B?)
0
1
2
3
5
6
7
8
9
• La M.P. se divide en marcos
0
2
8
6000MMU
fallo
9
S.O. ?9500
7500
6 df
Traducir dv->df
3000
¿Cachés?
DSO 47 Gestión de Memoria
MV ( Arquitectura Subyacente )
Resumiendo:
• M.V. en disco y gestionado como un sistema de particionesvariables (los trozos “granularidad” de M.V. son páginas)
• Las páginas de M.V. necesarias para que se ejecute un Piestán en la M.P. en uno cualquiera de sus marcos
¡ Principio de localidad espacial y temporal !
• Función de traducción (dv -> df) implementada en Hw
¡ MMU interna vs externa !
• Las páginas se intercambian MV -> MP (Falta de Página)gracias a la intervención del S.O.
¿ Cómo hacer la traducción dv -> df ?
DSO 48 Gestión de Memoria
Ventajas de la Memoria Virtual
• Se pueden mantener muchos procesos en memoriaprincipal
• Solo se cargan algunas zonas del mapa delproceso– Mejor utilización de la CPU
• Es posible mantener el mapa de memoria de unproceso, mayor que la memoria física disponible.
Se simula mas RAM de la que se dispone físicamente
DSO 49 Gestión de Memoria
Paginación con M.V.
• Traducción espacio lógico vs. físico:– Igual que con paginación simple:
tabla de páginas por cada proceso
– La tabla se almacena en memoria principal
– El comienzo de cada tabla: en los registros (hay otras maneras)
Memoria
CPU
Sistema OperativoP1
P2
1
2
4
3
5
6
P11
2
4P23
56
Registros
DSO 50 Gestión de Memoria
Paginación con M.V.
• Traducción espacio lógico vs. físico:– Entradas de la tabla de segmentos:
• Número de marco de página
• Bit de Presencia(en ram): P
• Bit de Modificación: M
• Bit de referencia
• Otros bits de control: compartición y protección
Paginaciónsimple
P M Marco de página Otros bitsde control
P1123
Tabla depáginas
PaginaciónM.V.
R
DSO 51 Gestión de Memoria
Paginación con M.V.
Pág D
Programa: P1
P1123
Tabla depáginas
Memoria
Dirección lógica
Dirección física
+
Registro P1
Puntero a tablade páginas P1
Desplazamiento
Marco depágina
Nº Página = 2
Marco 2D
Marco
Mecanismo de Paginación
Marco D
DSO 52 Gestión de Memoria
MV ( Traducción de direcciones )
M.V.
M.P.
0
1
2
3
5
6
7
8
9
0
2
8
9
6?
¿ Qué páginasestán cargadasy dónde ?
¿ Qué páginasestán cargadasy dónde ?
DSO 53 Gestión de Memoria
MV ( Traducción de direcciones “decimal” )
¿ # páginas ?¿ # marcos ?
4096
256
M.V. de 16MBM.P. de 1MB
Páginas de 4KB
M.P.0
40954096
8191
0
1
2 8192
12287
255
M.V.0
40954096
8191
0
1
2 8192
12287
4095
MMU
Página 2en Marco 1 (4096)
81924096
12287819111285
11285
4096
2
3093 +7189
7189
40961
DSO 54 Gestión de Memoria
MV ( Traducción de direcciones “binario” )
¿ # bits dv ?¿ # bits df ?
24 20
M.V. de 16MBM.P. de 1MB
Páginas de 4KB
0000 0000 0000 0000 0000 0000
0000 0000 0000 1111 1111 1111
0000 0000 0001 0000 0000 0000
0000 0000 0001 1111 1111 11110000 0000 0010 0000 0000 0000
0000 0000 0010 1111 1111 1111
M.V.0
4095
4096
8191
8192
12287
12 bits
dv Página Offset12 12
M.P.0
4095
4096
8191
8192
12287
0000 0000 0000 0000 0000
0000 0000 1111 1111 1111
0000 0001 0000 0000 0000
0000 0001 1111 1111 1111
0000 0010 0000 0000 0000
0000 0010 1111 1111 1111
dr Marco Offset8 12
0000 0000 0010 0000 0000 0000
0000 0001 0000 0000 0000
DSO 55 Gestión de Memoria
MV ( Traducción de direcciones “hexadecimal” )
M.V.
0
1
2
3
5
6
7
8
9
000 000000 FFF
HHH HHH
PAG OFF
008 000008 FFF
FFF 000FFF FFF
M.P.
0
2
8
9
6
00 00000 FFF
HH HHH
MAR OFF
02 00002 FFF
FF 000FF FFF
0123456789A
FFF
Tabla depáginas
02 51A
P 02
Presente
Marco
008 51A
DSO 56 Gestión de Memoria
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
RAM
Espacio direcciones de C
En este ejemplo, las tres primeras paginasdel proceso C se mapean a marcosseparados. Las variables, x,y,z, se guardanen tres páginas.
Como funciona la MV, 1
00000
00001
00002
00003
xyz
yz
x
00000
00001
00002
000040000700008
Tabla paginas de C
DSO 57 Gestión de Memoria
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
RAM
Espacio direcciones de C
Después de un tiempo, el SO seencuentra con que no hay suficientememoria, y decide descargar al disco elmarco 00008. (porque el 8? veralgoritmos de reemplazo).
Como funciona la MV, 2
00000
00001
00002
00003
xyz
y
x
00000
00001
00002
0000400007swap
Tabla paginas de C
z
DSO 58 Gestión de Memoria
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
RAM
Espacio direcciones de C
El swapping no interfiere la ejecución delproceso hasta que se referencia cualquierbyte de la pagina 00002, por ejemplo cuandoel proceso lea el valor de la variable z, y laCPU note que el dato no está presente enmemoria principal y genere una interrupciónllamada fallo de pagina o falta de pagina.Entonces el control se transfiere al SO.
Como funciona la MV, 3
00000
00001
00002
00003
xyz
y
x
00000
00001
00002
0000400007swap
Tabla paginas de C
z
x := 1;y := x*2;x := z + 1;
Falta de pagina
DSO 59 Gestión de Memoria
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
RAM
Espacio direcciones de C
Cuando la CPU genera la interrupción delfallo de pagina, el SO bloquea el proceso(se podrán ejecutar otros procesos?):Busca la pagina en la zona de swappingdel discoBusca un marco no usado de la RAMGenera una petición de lectura del DISCO
Como funciona la MV, 5
00000
00001
00002
00003
xyz
y
x
00000
00001
00002
0000400007swap
Tabla paginas de C
z
x := 1;y := x*2;x := z + 1;
Fallo pagina
zz
z
DSO 60 Gestión de Memoria
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
RAM
Espacio direcciones de C
… cuando la carga de la pagina se hacompletado: Se produce una interrupción de E/SEl SO actualiza la tabla de paginas delprocesoSO despierta al procesoReinicia la instrucción
Como funciona la MV, 6
00000
00001
00002
00003
xyz
y
x
00000
00001
00002
000040000700009
Tabla paginas de C
z
x := 1;y := x*2;x := z + 1;
z
DSO 61 Gestión de Memoria
Soporte HW a la memoria virtual
• Estructura de la TP– Como detecta la CPU el fallo de
pagina (bits P,M)
• Como accede la CPU a la tabla depaginas de un proceso enejecución? A través del puntero ala TP (bibliografía)
• Uso de cache (en bibliografía)
TLB00000
…...
00001
…...
0123A000
Ptr a la TP
CPU
00000
00001
00002
00002
00000
???
1
0
1
1
0
MP
Tabla de Páginas
DSO 62 Gestión de Memoria
• Toda la T.P. en M.P.
M.P.
Tabla dePáginas
MMU
CPU
MV ( Ubicación de la Tabla de Páginas )
datodv
Se lee eldescriptor
dr
Se lee el dato(Caché | M.P.)
¡ Intolerable por lento !
• Toda la T.P. en la M.M.U.
M.P.
T.P.
CPU
MMU
datodv
dr
• PDP11 8 páginas de 8K
• ¿Viable en el 80486? 1M páginas 4K
¡ Intolerable por caro !
DSO 63 Gestión de Memoria
Toda la T.P. en M.P. + una caché de la T.P. en la MMU
MV ( Tabla de Páginas “M.P. + caché” )
M.P.
Tabla dePáginas
dato
008 51Adv
MMU
009 FF006 63000 40
008 52002 A3
caché
Página Marco
Cachés de8..2046entradas
1Mentradas
52 51Adr
RBTP
¿ Fallo deCaché ?
¡ Tasas deacierto del
98% !
DSO 64 Gestión de Memoria
MV ( Tabla de Páginas “Fallo caché” )
M.P. dvMMU
030 0715F 42A32 54
004 C2
TLB
10000
573 15FFE 01B00 AB
dr
10 00010 00410 00810 00C10 010
13 FF013 FF413 FF813 FFC
003 A28
10000+(003*4)
01234
4095
T.P.
84 A28
¿ Página nopresente ?
P 84
003 84
F.P.
¿ Cachéllena ?
!Algunos P por
Software!
DSO 65 Gestión de Memoria
Bit Modificación :
Ha sido modificada lapagina desde suultima carga en RAM?
Entrada a la TP, ETP
10
110
0000400007
???La Tabla de Paginas esuna matriz de entradas ala TP (ETP). Cada ETPalmacena información deuna pagina del proceso.
00000
00001
00002
0000400007swap
ETP de la pagina 00000
11 00004
MarcoMarco
Otros Bit control: Otros Bit control:
Bit presencia: está en RAM
Bit presencia: está en RAM
DSO 66 Gestión de Memoria
Como se lee una ETP?
00001 AAA
AAA0123A000
Ptr a la TP
Dir Logical
Dir fisica
Tabla PaginasMP
10
110
0000200000
???
Marco 0
Marco 1
Marco 2
Marco0123A
RAMCPU
Leer el dato en la dir fisica00000AAA
Leer entrada a la TPdir: 0123A000+00001=0123A001
01 00000
00000
x
DSO 67 Gestión de Memoria
01010101
01010101
00000
00001
00002
00003
00004
00005
00006
00007
00008
AAA
C (M=1)
B (M=1)C
RAM
C
Espacio dir de C
00003
CC
C00000
00001
00002
A (M=1)
B
B
Fallo de pagina
Carga de pagina: cuando el SOcarga la pagina 2, debería cargarotras?
Algoritmo de Reemplazo: Que marco seguarda en disco?
Política de actualización: la pagina 0en RAM es diferente de la imagen enel fichero swap. Cuando actualizar?
Conjunto de trabajo: El proceso C siempre tiene 2 marcos?
Decisiones en Memoria Virtual
DSO 68 Gestión de Memoria
Política de Carga
Determina cuando una página debe ser cargadaen memoria Paginacion por demanda – solo trae paginas a memoria
principal cuando se hace referencia a un dato dentro deesa pagina Muchas faltas de pagina cuando empieza el proceso
Prepaginacion – traer mas páginas de las que senecesitan Eficiente cuando las paginas residen de forma contigua en el
disco
DSO 69 Gestión de Memoria
Carga – Paginacion por demanda
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
RAM
Espacio dir de C
00003
00004
00005
00006
lmn
j
n
00000
00001
00002
ijk
lk
m
i
Cuando el proceso accede a lavariable k en la pagina 00002,ocurre un fallo de pagina. El SOnecesita traer la pagina 00002.En paginación por demanda, solose carga la 00002.
DSO 70 Gestión de Memoria
Carga – Prepaginacion
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
RAM
Espacio dir de C
00003
00004
00005
00006
lmn
j
n
00000
00001
00002
ijk
lk
m
i
Si el SO usa prepaginacion, secargan paginas contiguas deldisco. Esto ayuda a reducir lasfaltas de pagina en un futuro.
k
ln
DSO 71 Gestión de Memoria
CT(t2, 10) =
t2
{3,4}
Carga por Demanda
• Se van cargando las páginasque el proceso vayanecesitando
Muchas F.P. evitables
Prealimentación
• Se arranca la carga delconjunto de trabajo delproceso.
“Páginas usadas másrecientemente”
2,6,1,5,7,7,7,7,5,1,6,2,3,4,1,2,3,4,4,4,4,3,4,3,4,4,4,1,3,2,3,4,4,1,3
CT(t1, 10) =
t1
{1,2,5,6,7}
¿Que sucede cuando un proceso pasa aejecución?
DSO 72 Gestión de Memoria
Pasos en el manejo del fallo de pagina
Ocurre un fallo de pagina cuando intentamosacceder a una pagina que no está en RAM
La CPU genera una interrupción y el SO tomael control: Bloquea al proceso Busca la pagina en disco Busca un marco que ya no se use Genera una lectura E/S Reinicia la instrucción
DSO 73 Gestión de Memoria
MV ( Tratamiento de Falta de Página )
El tratamiento de F.P. recae en el S.O.
M.P.
0
2
8
9
6
(I) Hay marco libreM.V.
0
1
2
3
5
6
7
8
9
?
Política de ubicaciónsimple: uno cualquiera
(II) No hay marco libreM.P.
0
2
8
9
6
3
5
1?
?
Política de sustituciónno tan simple
DSO 74 Gestión de Memoria
MV ( Tratamiento de Falta de Página “1” )
M.P.
0
2
8
6
M.V.
0
1
2
3
5
6
7
8
9
0
1
2
3
4
5
6
7
S.O.
P Marco
mov A,B
10
1 Referencia a página nocargada en M.P.
2
2 Excepción y se bloquea alproceso
3 Buscar marco libre, tocar TP y arrancar E/S
4
4 Transferencia DMAdisco MP. CPU otro Pi
5 Fin E/S. Página 3 cargadaen marco 1. P Preparado
6 Actualizar TP
7
7 Rearrancar “Mov A,B”CuandoPpreparado UCP
mov A,B
3¿marco1,4,6,7?
0
6
1 1
5
mov A,B
DSO 75 Gestión de Memoria
MV ( Tratamiento de Falta de Página “1” )
Resumiendo:
1 Referencia a página no cargada en M.P.
2 Excepción y se bloquea al proceso
3 Buscar marco libre, tocar TP y arrancar E/S
4 Transferencia DMA disco! MP. CPU para otro Pi
5 Fin E/S. Página 3 cargada en marco 1. P ! Preparado
6 Actualizar TP
7 Reiniciar “Mov A,B” cuando preparado ! UCP
DSO 76 Gestión de Memoria
S.O.
M.V.
0
1
2
3
5
6
7
8
9mov C,D
M.P.
0
2
8
6
0
1
2
3
4
5
6
7
3
5
7
1
M MarcoP
MV ( Tratamiento de Falta de Página “2” )
3 Seleccionar víctima,cambiar TP y arrancar E/S
2
5
100
0000
3 ¿Víctima 2 ?
1 1 5
0FA32
40FA3
4 Salvando (DMA) páginaen disco
5 Fin E/S. Página 2 salvada.Marco 5 libre.
7mov C,D 9mov C,D
689
0
1 0 510
DSO 77 Gestión de Memoria
MV ( Tratamiento de Falta de Página “2” )
Resumiendo:
1 Referencia a página no cargada en M.P.
2 Excepción y se bloquea al proceso
3 Seleccionar víctima, cambiar TP y arrancar E/S
4 Salvando (DMA) página en disco
5 Fin E/S. Página 2 salvada. Marco 5 libre.
6 Arrancar E/S para cargar Página 9 en Marco 5.
7 Transferencia DMA disco MP. CPU para otro Pi
8 Fin E/S. Página 9 cargada en Marco 5. P Preparado
9 Actualizar TP
10 Reiniciar “Mov C,D” cuando preparado UCP
DSO 78 Gestión de Memoria
Algoritmos de reemplazo
• Seleccionar un marco de pagina de memoriaprincipal para ser reemplazado por una nuevapágina del disco – Los marcos bloqueados??? no se pueden reemplazar
DSO 79 Gestión de Memoria
Reemplazo
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
AAB
C
AA
B
RAM
Espacio dir de C
00000
00001
00002
C
B
A
El Proceso C causa una falta depagina cuando referencia a datosen la pag. 00002. Ademas, nohay marcos libres en RAM. El SOdebe de seleccionar un marco areemplazar. Se puede elegir de Los marcos asignados alproceso C: 00003 y 00004, o Todos los marcos
Los algoritmos de reemplazo, solo eligen unmarco a reemplazar de entre el Conjunto detrabajo.
DSO 80 Gestión de Memoria
Reemplazo
¿Memoriallena?
CPU activa manejador E/S yCargar página desde disco
Reemplazode página
S.O. bloquea proceso (espera) yordena a CPU carga página
¿R=1?
Actualizar tablas (R=1) ypasar proceso a preparado
Memoria
Si Acceder
Si
No
Referenciarpágina:código o dato
No Fallo depágina
DSO 81 Gestión de Memoria
Algoritmos de reemplazo
• Estudiaremos 4 algoritmos:– Optimo
– FIFO
– Reloj
– LRU
DSO 82 Gestión de Memoria
Algoritmos de reemplazo
• Política (criterios):– Objetivo: minimizar el nº de fallos de página– Aleatorio:
• Criterio: ninguno. Se puede seleccionar la pág. másutilizada muchos fallos pág.
– Optimo:• Criterio: seleccionar la página que va a tardar más
tiempo en referenciarse (¿porque?).• Es la que menor número de fallos de página genera• PROBLEMA: no se puede implementar
¡ No se puede predecir el futuro !
DSO 83 Gestión de Memoria
Algoritmos de reemplazo
• Algoritmo óptimo – Ejemplo:– Sean las referencias a página (5 marcos):
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
Resultados: 7 faltas de página (2 reemplazos)
0 1 1 1 1
2 3 3 3 3
4 5 7
1 2 2 2 2 2 2
3 4 6 6 6
Marco 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
DSO 84 Gestión de Memoria
Algoritmos de reemplazo
• Algoritmo FIFO (First In, First, Out):– Criterio: extrae la página que hace más tiempo que
se cargó en memoria
¿Menor probabilidad de ser referenciadas?– Implementación: los numeros de marcos de página
se guardan en una cola. Se reemplaza el primero dela cola.
DSO 85 Gestión de Memoria
Algoritmos de reemplazo
• Algoritmo FIFO – Ejemplo:– Sean las referencias a página (5 marcos): 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
– Resultados: 10 faltas de página (5 reemplazos)
0 1 1 6 6 6
2 3 2 2 2
4 5 7
1 2 2 2 1 1
3 4 3 3 3
Marco 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
DSO 86 Gestión de Memoria
Algoritmos de reemplazo
• Algoritmo FIFO – Anomalía Belady:– Sean las referencias a página:
1 2 3 4 1 2 5 1 2 3 4 5
– Resultados (4 marcos): 10 faltas de página (6 reemplazos)– Resultados (3 marcos): 9 faltas de página (6 reemplazos)
0 1 1 5 4 1 4 5 5
2 3 2 3 2 2 4 1 2 2 1 5 2 1 1 3
Marco 1 2 3 4 1 2 5 1 2 3 4 5 1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 1 2 3 4 5 1 2 3 4 1 2 5 1 2 3 4 5 3 4 3
DSO 87 Gestión de Memoria
Replacement Policy – Clock
• Clock Policy– Needs an additional bit U (Use bit) in PTE
• when a page is first loaded in memory, OS sets U=1
• when the page is referenced, CPU sets U=1
– Works like FIFO• the first frame encountered with U=0 is replaced
• during the search for replacement, OS resets U= 0
Hence, U bit represents whether the page is ‘recently’ used
DSO 88 Gestión de Memoria
Clock Policy, 1
56
0
1
2
3
47
8
n
.
.
.
Pg 9use = 1
Pg 10use = 1
Pg 1use = 0
Pg 45use = 1
Pg 19use = 1
Pg 55use = 0
Pg 13use = 0
Pg 67use = 1
Pg 33use = 1
Pg 22use = 0
next frame pointer
At this moment, therunning process tries toaccess page 77, which isnot present. A page faultoccurs.
1 55 19* 45*… 13
DSO 89 Gestión de Memoria
Clock Policy, 2
56
0
1
2
3
47
8
n
.
.
.
Pg 9use = 1
Pg 10use = 1
Pg 1use = 0
Pg 45use = 1
Pg 19use = 1
Pg 55use = 0
Pg 13use = 0
Pg 67use = 1
Pg 33use = 1
Pg 22use = 0
next frame pointer
1 55 19* 45*… 13
Page 45 has been loadedinto memory the longest. InFIFO, we would replace italthough it has been usedrecently (U=1). However, inclock, we give it a secondchance and put in at the endof the queue again.
DSO 90 Gestión de Memoria
Clock Policy, 3
56
0
1
2
3
47
8
n
.
.
.
Pg 9use = 1
Pg 10use = 1
Pg 1use = 0
Pg 45use = 0
Pg 19use = 1
Pg 55use = 0
Pg 13use = 0
Pg 67use = 1
Pg 33use = 1
Pg 22use = 0
next frame pointer
1 55 19*45 … 13
Similarly, page 19 has U=1and therefore it will not bereplaced yet. The OS goeson to check the next oldestpage.
DSO 91 Gestión de Memoria
Clock Policy, 4
56
0
1
2
3
47
8
n
.
.
.
Pg 9use = 1
Pg 10use = 1
Pg 1use = 0
Pg 45use = 0
Pg 19use = 0
Pg 55use = 0
Pg 13use = 0
Pg 67use = 1
Pg 33use = 1
Pg 22use = 0
next frame pointer
1 5519 45 … 13
Page 55 is the ‘oldest’ pagein RAM, and is not usedrecently. So the OSreplaces this page with page77.
DSO 92 Gestión de Memoria
Clock Policy, 5
56
0
1
2
3
47
8
n
.
.
.
Pg 9use = 1
Pg 10use = 1
Pg 1use = 0
Pg 45use = 0
Pg 19use = 0
Pg 77use = 1
Pg 13use = 0
Pg 67use = 1
Pg 33use = 1
Pg 22use = 0
next frame pointer
177* 19 45 … 13
Page 77 replaces page 55.It is put at the end of thequeue (it is the youngestpage in RAM). In next pagefault, the OS will start thesearching from page 13, theoldest page.
DSO 93 Gestión de Memoria
Clock Policy – another example
1*2*3*4*5*6*
1*2*3*
1* 7*23456
7*8*3459*
7*23*4*5*6
7*8*3*4*5*6
782*459*
Page reference order: 1 | 2,3,2 | 4,5,6 | 7 | 4,3,5,3 | 8 | 9,8 | 2
The ‘next frame pointer’ sweeps thewhole buffer once. This resets theU bit of all pages to 0. When thepointer hits the first entry of thebuffer again, the page 1 is swappedout.
When the pages 4,3,5,3 arereferenced, their U bit is set to 1.Notice the pointer does NOTmove.
DSO 94 Gestión de Memoria
Categories of frames using U, M
Not accessed recently, modified
Accessed recently, not modified
Not accessed recently, not modified
Accessed recently, modified
U=0, M=1
U=1, M=0
U=0, M=0
U=1, M=1
Mostfavorableto replace
Should beexpensive toreplace
DSO 95 Gestión de Memoria
Clock using U and M bits
1. Scan the frame buffer without changing U bit. The firstframe encountered with U=0 M=0 is selected forreplacement.
2. If step 1 fails, scan again, changing U=0 on each framebypassed. Look for frame with U=0 and M=1 to replace.
3. If step 2 fails, the pointer should have returned to itsoriginal position and all the frames in the set will have U=0. Repeat step 1 and, if necessary, step 2. This time, aframe will be found for the replacement.
DSO 96 Gestión de Memoria
Algoritmos de reemplazo de página
• Algoritmo FIFO 2ª op. (First In, First, Out):– Criterio: extrae la página que hace más tiempo
que se cargó en memoria, pero dando una 2ªoportunidad, por si alguna es muy utilizada.
– Implementación: los marcos de página se tratancomo un buffer circular; sólo hace falta mover unpuntero. Tenemos un bit referencia R.
111
1
00
1 10
1
01
001
1
00
1 10
1
01
Víctima
DSO 97 Gestión de Memoria
Algoritmos de reemplazo
• Algoritmo FIFO 2ª oportunidad – Ejemplo:– Sean las referencias a página (5 marcos): 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
– Resultados: 9 faltas de página (4 reemplazos)
0 1 1 6 6 6
2 3 1 1
4 5 7
1 2 2 2 2 2 2
3 4 3 3 3
Marco 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
00
0 0
0
0
12
3
4
DSO 98 Gestión de Memoria
Algoritmos de reemplazo
• Algoritmo LRU (Least Recently Used):– Criterio: extrae página que hace más tiempo que
no se ha referenciado (Princip. de cercanía)
– Los resultados están cerca del óptimo
– Implementaciones:• Etiquetar cada página con fecha/hora última ref.
• Lista dinámica de marcos de página ordenados
– PROBLEMA: elevada sobrecarga
– Vamos a ver unas aproximaciones: LFU,NUR
DSO 99 Gestión de Memoria
Algoritmos de reemplazo
• Algoritmo LRU – Ejemplo:– Sean las referencias a página (5 marcos): 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
– Resultados: 8 faltas de página (3 reemplazos)
0 1 1 1 1
2 3 6 6 6
4 5 7
1 2 2 2 2 2 2
3 4 3 3 3
Marco 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2 1 2 3 6
DSO 100 Gestión de Memoria
MV ( Algoritmos de sustitución de páginas )
{7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1}Serie de
Referencia
ALGORITMOS
Optimo Más tiempo tarde en volver a ser referenciada
FIFO Más tiempo lleva en Memoria Principal
LRU Menos recientemente usada
RELOJ FIFO + LRU (o de 2ª Oportunidad)
DSO 101 Gestión de Memoria
MV ( Algoritmos de sustitución de páginas )
7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1
Optimo
FIFO
LRU
RELOJ
FP
701
2
34 0
1
79
701
23
4 01
715
023 2
01
701
2
3
4 0 1
712
23 0
701
2
3
4
01 7 142
32
0
1
DSO 102 Gestión de Memoria
Algoritmos de reemplazo. Resumen
23
231
235
235
435
435
435
23
231
251
251
254
254
354
235
352
2 1 25 4 5 3 2
23
231
521
531
524
524
324
324
Optimo
LRU
FIFO
Pagina reemplazadaOrden de referencia
235
352
235
352
5 2
354
352
DSO 103 Gestión de Memoria
Práctica de política de reemplazo
• Dada la siguiente cadena de referencia:0 1 2 3 0 1 4 0 1 2 3 4
• ¿Cuántos fallos de página tendrán lugar si sedispone de 4 marcos de página inicialmentevacíos para el algoritmo FIFO?
• ¿Y si el algoritmo de sustitución fuese el LRU?
DSO 104 Gestión de Memoria
Política de Asignación de marcos de página
¿Cuantos marcos hay que asignar a unproceso?
• Asignación fija: Nº marcos asignados fijo– El numero de marcos para reemplazar no varia.
La arquitectura de la maquina determina elnumero mínimo de marcos.
• Asignación variable: Nº marcos asignadosvariable.– El #marcos varia según necesidades del proceso
en diferentes momentos:
DSO 105 Gestión de Memoria
Política de Asignación de marcos de página
Alcance del reemplazo:
• Reemplazo local: para reemplazar página seelige una del proceso
• Reemplazo global: para reemplazar páginase elige cualquiera de la memoria principal
DSO 106 Gestión de Memoria
Eficiencia de la Memoria Virtual
• Si el proceso tiene pocos marcos, seproducen muchas fallas de paginas y elsistema se ralentiza
• Esto se llama Hiperpaginación o thrashing
DSO 107 Gestión de Memoria
Hiperpaginación (Thrashing)
• En esta circunstancias:– Porcentaje de faltas de página elevado.
% faltas = (nº faltas / nº total referencias)
– Se desperdicia tiempo en carga/descarga
– El proceso pasa mas tiempo reemplazando paginasque procesando
» “Mi ratón no se mueve, el teclado no responde pero mi HDestá rascando” (usuario anónimo) ¿de w98?
DSO 108 Gestión de Memoria
Hiperpaginación (Thrashing)
• Causas:– Demasiados procesos compitiendo Reducción
procesamiento.
– No hay suficientes páginas cargadas del procesoactivo
– Demasiadas páginas cargadas del proceso activo
• Soluciones: establecer tres políticas-> (apuntes)• Mantener el Cjto de paginas activas en memoria• Establecer limites a las frecuencias de fallos de
pagina• Alcance del reemplazo. Si es global no se controla
la hiperpaginacion.
DSO 109 Gestión de Memoria
Administración del Conjunto de Trabajo
• Asignación fija, alcance local
• Asignación Variable,alcance global
• Asignación Variable, alcance local
DSO 110 Gestión de Memoria
Asignación Fija, alcance global
• Tamaño del Conjunto de Trabajo esfijo – A cada proceso se le asigna unnumero de marcos fijo en el cual seejecuta
• En una falta de página, el SOreemplaza un marco por otro delConjunto de Trabajo del proceso
AAB
C2
AC3
B
RAM
C1
B
AC7
??
?
DSO 111 Gestión de Memoria
Asignación Variable ,alcance Global
• Tamaño del Conjunto de Trabajo puedecambiar en tiempo de ejecución
• En una falla de pagina, el SO eligecualquiera de los marcos no bloqueados
• Un proceso ‘activo’ consigue muchosmarcos
AAB
C2
AC3
B
RAM
C1
B
A
C7
??
?
??
??
??
?
DSO 112 Gestión de Memoria
Asignacion Variable, Alcance Local
• En una falta de página, el SO reemplaza un marcopor otro del Conjunto de Trabajo del proceso
• Ocasionalmente, el SO ajusta el tamaño delConjunto de Trabajo del proceso de acuerdo consu comportamiento– Frecuencia de fallo de páginas (apuntes)
– Variable-interval sampled working set (VSWS)(apuntes)
DSO 113 Gestión de Memoria
Hiperpaginación (Thrashing)
• Relación entre las 2 políticas:
La más sencilla y utilizada Los procesos incrementangradualmente su tamaño Algoritmo: la dificultad esseleccionar el proceso
Más compleja pero la demejor rendimiento Estrategia:
1. Al cargar un proceso seasigna un nº marcos
2. Si fallo de página, seselecciona alguna delconjunto residente proceso
3. Periódicamente se ampliao reduce la asignación
Asignaciónvariable
No es posible Algoritmo:FIFO,LRU,LFU,...
Asignaciónfija
Reemplazo globalReemplazo local
DSO 114 Gestión de Memoria
Requerimientos
• Para terminar, vamos a comprobar si esteesquema de gestion de memoria, satisfacelos requerimientos de memoria:– Reubicacion
– Proteccion
– Comparticion
DSO 115 Gestión de Memoria
Reubicación
C
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
AAA
CB
CB
C
RAM
CCC
C00000
00001
00002
00003
Espacio dir de CTP de C
00000
00001
00002
1
1
1
...
...
...
00004
00007
00008
P
00003 1 ... 00009
La página 3 del proceso C esta enRAM. Las referencias a la pagina 3 nosllevan al marco 9
DSO 116 Gestión de Memoria
Reubicación
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
AAA
CB
CB
C
RAM
CCC
C00000
00001
00002
00003
Espacio dir de CTP de C
00000
00001
00002
1
1
1
...
...
...
00004
00007
00008
P
00003 0 ... ??? D
01010101
Después de algún tiempo sereferencia, (falla de pagina) y llevada amemoria.
DSO 117 Gestión de Memoria
Reubicación
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
AAA
CB
CB
C
RAM
CCC
C00000
00001
00002
00003
Espacio dir de CTP de C
00000
00001
00002
1
1
1
...
...
...
00004
00007
00008
P
00003 1 ... 00003 D
C
La pagina es reubicada sin que elproceso C se perciba
DSO 118 Gestión de Memoria
Protección
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
AAA
CB
CB
C
AAA
CCC
C
RAMEspacio dir de A
C
El Proceso A no puedeacceder de ninguna maneraal espacio de direccionesde C. Cada ubicación dememoria de A estárestringida a su espacio dedirecciones