View
9
Download
1
Category
Preview:
Citation preview
Gestión de Memoria 1
Tema 3. Gestión de Memoria
• INTRODUCCIÓN
• SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático)• Monoprogramación• Multiprogramación con Particiones Fijas
• INTERCAMBIO• Introducción• Particiones Variables• Algoritmos de gestión Libre / Ocupado
– Lista encadenada y Mapa de bits
• MEMORIA VIRTUAL• Paginación• Algoritmos de sustitución de páginas• Cuestiones de diseño
Gestión de Memoria 2
IntroducciónCada vez, más memoria, más barata y ocupa menos:
1982 16KB 16.000 pts. PseudoPC1985 1MB 500.000 pts. Victory (Unix)
PC1991 8MB 77.500 pts. 1998 64MB 17.900 pts. 128MB 51.900 pts.2002 256MB 13.800 pts. 512MB 29.700 pts.2005 512MB 9.500 pts. 1GB 29.900 pts.
Sin embargo, ¡ SIEMPRE AMPLIANDO !
512K, 640K, 1M, 4M, 8M, 16M, 32M, 64M, 128M
MSDOS Win95 WinNT Win00
70MB 120MB 275MB
Ley de Parkinson
¿Windows XP?
Gestión de Memoria 3
Introducción (objetivos)Memoria: Recurso escaso y compartido (Multiprogramación)
Poca memoria para los muchos procesos que quieren ejecutarse
• Proteger
• Compartir
• Organización eficiente
• Reubicación de procesos
Memoria
Principal
P1
P2
P3 P6
P5
P4
OBJETIVOSGestión eficiente
Lógica
Secundaria
Principal
Caché
Física
segmentadalineal
?
Gestión de Memoria 4
Introducción (¿Proceso en memoria?)
ProgramaObjeto n
ProgramaObjeto 2
Compilador
ProgramaObjeto 1
Enlazador
FicheroEjecutable
Cargador
Memoria
ProgramaFuente 1
Program principal;var Vector1: array [0..$FFF] of byte := (23,43,…,53); Vector2: array [0..$4FF] of byte;begin ... if Vector1[0] = Vector2[0] then Subrutina; ...end.
$5000 …$5030 cmp $9000,$A000$5036 bnz $503E $503A bsr $5200$503E …$5200 (codigo de subrutina)
…$9000 (valores de vector1)
…$A000 (valores de vector2)
…
Proceso
Código máquina
¿ ?
Gestión de Memoria 5
Introducción (¿Formato de un fichero ejecutable?)
Código
Var. Inic.
Var. No Inic.
---------------
Tabla Símbolos
Inicio Tamaño
$1000
$5000
$8000
-------
$4000
$1000
$500
-------
$2000
Nº mágico
CP inicial
---------
Tabla secciones
Código máquina
Variablesinicializadas
.....Otras secciones
Tabla símbolos(depurador)
$0000
$1000
$5000
$8000
• Fichero ejecutable UNIX
Var. No Inic.
¡ Algunas secciones no ocupan espacio en el fichero ejecutable y sí en
memoria !
Secciones
Cabecera
Gestión de Memoria 6
Introducción (¿Imagen de un proceso en memoria?)
Nº mágico
CP inicial
---------
Tabla secciones
Código máquina
Variablesinicializadas
.....Otras secciones
Tabla símbolos(depurador)
$0000
$1000
$5000
$8000
• Fichero ejecutable UNIX
Código máquina
Variablesinicializadas
Variables noinicializadas
Memo. Dinámica
Pila
$5000
$0000
$4000
$5500
• Imagen de un proceso
$xxxx
“0”
$0000Memoria
S.O.
P1
P2
P4
?
$yyyyPn
pcsp
...
...
CPU
P1sp
...
...
P4sp
...
...
Pnsp
...
...
Gestión de Memoria 7
M.P.
Introducción (modelo estático vs dinámico)
Piexec
Pi se ejecuta en la misma zona de memoria desde
que se crea hasta que termina
M.P.
Pi
exec
exit
PiPi
Pi
exit
Pi puede ir cambiando en su totalidad de zona
de memoria
Intercambio
M.P.
Pi puede ir cambiando por
trozos de zona de memoria
Memoria Virtual
¡ Reubicar !
Gestión de Memoria 8
• Máquina con S.O. (MSDOS)
IPL +drivers
FFFFF
00000
ROM
RAM
Monitor
“Primeras máquinas”
Monoprogramación• Máquina desnuda con monitor
Cargar y depurar
programas
Programade usuario+ drivers
“Sistemas empotrados”
S.O.
Power
PointExcelWord
Word
S.O. +drivers
RAM? Word
S.O. +drivers
RAM
ROM?
“Prácticas de arquitectura”
RS232
Gestión de Memoria 9
Estático“En arranque”
Multiprogramación ( Particiones Fijas )Se trocea la M.P. libre para procesos de usuario en particiones fijas, de diversos tamaños y reconfigurable sólo en arranque
S.O.
300K
300K200K100K
115K ?320K
S.O.
600K
250K50K
CUESTIONES DE DISEÑO
• ¿Cuántas particiones?
• ¿De qué tamaño?
• Reubicación
• Protección
• ¿Planificación?
• Tabla de particionesTamaño y Libre / Ocupada
• Cola/s de procesos entrantes
Gestión de Memoria 10
Particiones Fijas ( ¿Cuántas particiones? )Aprovechar UCP Índice / Nivel de multiprogramación
% de usode la UCP
Nivel deMultipro-gramación
1 2 3 4 5 6 7 8 9 10
10080604020
50% de su tiempo hacen E/S
¿Caracterización de los procesos?
80% de su tiempo hacen E/S
20% de su tiempo hacen E/S¡ Ojo ! Aprovechar la UCP al 100% no es el
único objetivo
Usuarios interactivos
Gestión de Memoria 11
Particiones Fijas ( ¿De qué tamaño? )Intentar aprovechar la memoria al máximo (ocupada al 100% por Pi)
• GRANDES
S.O.
300K
300K
50K
Fragmentacióninterna
40K200K
P200K no puede ejecutarse pese a haber 510K sin usar
• PEQUEÑAS
S.O.
250K
50K50K40K200K60K
P60K no puede ejecutarse pese a haber 5 particiones libres
Fragmentaciónexterna
Gestión de Memoria 12
Particiones Fijas ( Planificación )• COLAS MÚLTIPLES / SEPARADAS
S.O.
200K
400K
300K
100K
350K80K
Entra un ProcesoCola de la partición
“Mejor Ajuste”
A250
B70
C80
D150
E90
F125
Sale un Proceso P100K
¿Quién entra?
• FIFO B
• Más grande E
• Más corto C110 5 15
Tiempos
Se libera P400K Partición grande libre y 6 procesos bloqueados¿Particiones de igual tamaño? Equilibrar la carga
Gestión de Memoria 13
Particiones Fijas ( Planificación )• COLA ÚNICA
S.O.
200K
400K
300K
100K
Entra un Proceso Partición para él oSe encola
A250 Sale un Proceso P200K
¿Quién entra?B70
C80
D150
F90
E125
4 110 25
5 15 3
• FIFO B
• Más grande D
• Más corto F
Tiempos
• Más complejo y lento
• Mejor aprovechamiento de UCP y memoria
• Puede que injusticia: grandes vs pequeños
Gestión de Memoria 14
Particiones Fijas ( Reubicación )
S.O.
A250
128K
512K
256K
100K
Programa Partición¡No siempre la misma!
IF A >= 0THEN
A := A-1ELSE
A := A+1
¿Direcciones Absolutas?
TST R0JMI
ELSESUB
#1,R0JMP
NEXTELSE ADD
#1,R0NEXT
00000
00050 TST R000052 JMI
0006000058 SUB #1,R00005A JMP
0006200060 ADD #1,R000062
?Problemas
Gestión de Memoria 15
Particiones Fijas ( Reubicación )
S.O.
20000
20050 TST R020052 JMI
0006020058 SUB #1,R02005A JMP
0006220060 ADD #1,R020062
?a) Reubicar al cargar (reubicación
estática)
+20000 Direcciones AbsolutasDirección de carga20060
20062b) Reubicación dinámica
Registro de Reubicación
20000
00060dv
+ 20060dr
c) Código reubicable
JMI 8(PC)
SOLUCIONES
Gestión de Memoria 16
Particiones Fijas ( Protección )
S.O.
20000
20050 TST R020052 JMI
0006020058 SUB #1,R02005A JMP
0006220060 ADD #1,R020062...........5FC00
• Controlar accesos de Pi fuera de su zona
20000
5FC00
00060dv
+ 20060dr
Registro de Reubicación(Registro Base)No
direccionable?
SI
dr>RL
Excepción
Gestión de Memoria 17
Intercambio ( Introducción )Dos grandes problemas de las particiones fijas sin intercambio:
A Muchos procesos interactivos y poca memoria para ellos
B ¿Cómo gestionar la memoria dinámica de los procesos?
20 usuarios desean usar editor 1MB
S.O.
16 particionesde 1MB
Máximo 16procesos
4 trylater
¿Una solución?
?
Ampliar la M.P. con más particiones en disco
S.O.
P1P2
P16
P17P18P19P20
P1
P19
¡ Eficiente si no hay trasiego !
Gestión de Memoria 18
Intercambio ( Introducción )
• ¿ Cuándo intercambiar ?
S.O.
P2
P16
P17P18
P20
P1
P19
?
Algunas cuestiones:
• ¿ Quién por quién ?
• ¿ Coste del intercambio ?
Word Excel
¡ 111..297 mseg !
Gestión de Memoria 19
Intercambio ( Introducción )Dos grandes problemas de las particiones fijas sin intercambio:
A Muchos procesos interactivos y poca memoria para ellos
B ¿Cómo gestionar la memoria dinámica de los procesos?
S.O.
300K
200K
100K
P1300
¿Por qué P1 pide 300K?300250200150100
ti tf
K
Particiones Fijas Partición de 300K
¿ Intercambio ? P100K P200K P300K P100K
¿Qué estructura tiene la memoria dinámica de un Pi?
Gestión de Memoria 20
Intercambio ( Introducción )
Componentes de MP de un Pi• Código• Pila• Datos
FijoVaría (bsr y rts)Varía (new y dispose)
Necesita 325K y le doy 400K (crecer)
200K (C) + 75K (D) + 50K (P)
Pila
Código
Datos
25K
50K
?S.O.
$00000
400K
50K
300K
$FFFFF
Pila
Código
Datos
Pila
CódigoDatos
Fragmentación
Protección
Pila
Código
Datos
200K
200K
Dos zonas no contiguas?
Gestión de Memoria 21
Particiones Variables
• Asignar a cada proceso sólo la memoria que necesita
S.O.
800
224
A300K
A300
500
B100K
B100
400
C200K
C200
200
A
C200
200
B100
300
S.O.
D150K
D
C200
200
B100
150S.O.
150
E225K
B D
C200
200
150S.O.
250
D
C
S.O.
E
Fragmentación externaE esperando¿ Solución ?
Gestión de Memoria 22
Particiones Variables (Compactación)
• Siempre un único hueco con toda la memoria libre
S.O.
800
224
A300K
A300
500
B100K
B100
400
C200K
C200
200
A
C200
200
B100
300
S.O.
D150K
DC200
350
B100
150
S.O.
E225K
B
E
DC200
225
B100
150
S.O.
125
E
DC
S.O.
225
C200
B100
500
CompactarCompactar
Costoso en tiempo
¿ Siempre ?¿ De vez en cuando ?¿ Cuándo ?
Gestión de huecos
Gestión de Memoria 23
S.O. P1 P3 P5P2 P4
Algoritmos de gestión trozos (Lista Encadenada)• Lista encadenada: distribuida vs centralizada
Ordenada por direcciones y de cada trozo saber (al menos):Tipo (Libre/Ocupado); Tamaño
P1
Ocupado5MB
Libre6MB
Libre4MB
Gestión de Memoria 24
S.O.
Algoritmos de gestión trozos (Lista Encadenada)
P1 P3 P5
• Lista encadenada: distribuida vs centralizada
64MB 20 5 6 4 13 12 4
Ocupado$0050 0000
$0140 0000dirTrozo
Tipo
Tamaño
Sig
P1
Libre$0060 0000
$0190 0000Ocupado
$0040 0000
$01F0 0000Libre
$00D0 0000
$0230 0000Libre
$0040 0000
$03C0 0000Ocupado
$00C0 0000
$0300 0000
P3 P5
• ¿Lista dinámica? => Array estático => ¿Tamaño?
• La memoria se da a trozos (sean de 4KB)
P00500
01400H
00600
01900P
00400
01F00H
00D00
02300P
00C00
03000H
00400
03C00
Gestión de Memoria 25
Algoritmos de gestión trozos (Liberación de Memoria)
P1 P2 P3
• Lista encadenada:
Supongamos que termina un proceso (sea P2)
• Hay que tener en cuenta cuatro situaciones:
P1 P3
P1 P2
P2 P3
P2
P1
P3
• ¡ Fusionar ! Ventaja de tener la lista ordenada (contigüidad)
• Conveniencia de tener la lista doblemente enlazada
Gestión de Memoria 26
Algoritmos de gestión trozos (Asignación de Memoria)• Lista encadenada: Asignación de memoria
1. First Fit “Primero en donde quepa”
2. Next Fit “Siguiente donde quepa”
3. Best Fit “Donde quepa mejor”Muchos huecos inútiles (demasiado pequeños)
4. Worst Fit “Donde quepa peor”
¡ Recorrer toda la lista !
5. Lista de procesos por un lado y de huecos por otro
¿ Cómo acelerar la asignación ?Liberación ineficiente
Ya lo tenemos[descriptores de procesos]
Ordenados portamaño
First = Best¿Next?
6. Quick Fit “Donde quepa antes”
Gestión de Memoria 27
Algoritmos de gestión trozos (First Fit)• FIRST FIT “Primero en donde quepa”
P P P P P P
P’
P P P P P PP’
Muchos huecos pequeños al principio y uno grande al final:
Ejemplo: [Fork(P20K)]8 + [Exit(P20K) + Fork(P18K)]8 + Fork(P15K)
P P P P P P P P
P P P P P P P P
P’
P’
¡ Siempre recorriendo el principio !
Gestión de Memoria 28
Algoritmos de gestión trozos (Next Fit)• NEXT FIT “Siguiente donde quepa”
Ejemplo: [Fork(P20K)]8 + [Exit(P20K) + Fork(P18K)]8 + Fork(P15K)
P
Inicio de búsqueda del siguiente hueco
P P P P P P P P
P P P P P P P P
P P P P P P PP P
P P P P P P
¿Pi grande?
! Huecos dispersos de tamaño moderado !
Fragmentación externa
Gestión de Memoria 29
Algoritmos de gestión trozos (Quick Fit)• QUICK FIT “Donde quepa antes”
Idea: Varias listas que agrupan bloques de tamaño similar
64K128K256K512K
1M2M4M
Enormes
16 32 40 5265 112
280 300 360 360 400800
3 3,5 3,8
32
P310
P220
P500
P900
¡ Todavía puede mejorarse tanto la asignación como la liberación !
Sistema Buddy (Compañeros)
Gestión de Memoria 30
S.O.
• ¡Doy memoria a trozos!64MB
00000000--------111111111111111111111111--------
Algoritmos de gestión trozos (Mapa de Bits)Asignación a golpe de 4K (granularidad)
Pi pide 10K
Fragmentación Interna
• ¿Tamaño del Mapa de Bits?
64MB/4KB = 16Kbits => 2KB
• ¿Liberación de memoria?
• ¿Asignación de memoria?
ListaEncadenada?
First, Next, Best, Worst => Viables
Quick, Buddy => Inviables
¡ No hay información explícita de tamaños !
00000000--------000111111111111111111111--------
Se le dan 12K (3 trozos)
Pi Pj
00000000--------000111110000000011000111--------
Pk
1 1 1 1 1 11 11 1 1 1 1 11 1 11 1 1 1 1 1000....00ocupado libre
0 0 0 0 0 00 00 0 0 0 0 0
Gestión de Memoria 31
Paginación
• PROBLEMÁTICA DEL INTERCAMBIO
• ARQUITECTURA SUBYACENTE
• TRADUCCIÓN DE DIRECCIONES
• UBICACIÓN DE LA TABLA DE PÁGINAS
• UNO O VARIOS ESPACIOS DE D.V.
• TRATAMIENTO DE FALTA DE PÁGINA
Gestión de Memoria 32
?M.P.
Paginación ( Problemática del Intercambio )
¿Su gran restricción?Exigir que un Pi esté entero en
M.P. para poder ejecutarse
A Un Pi más grande que la M.P. no podrá ejecutarse
B Si {Procesos preparados} aumenta, no cabe en M.P. Trasiego
C El intercambio Disco M.P. es mucho (dos procesos enteros)
Compilador: 1 Análisis léxico2 Análisis sintáctico3 Análisis semántico4 Generación de código¿Solución general?
Overlays (solapamientos)
Trocear
Gestión de Memoria 33
M.P.
Paginación ( 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 512MB
8 vecesmenos
M.P.Espacio
de dir.
del P 4
Espacio de Direcciones Reales del PC
• Teóricamente podemos escribir programas pensando en el Pentium 4 y 4GB
¿ Cómo funciona todo esto ?
Arquitectura subyacente
M.V.
M.P.
• Tendremos una Memoria Virtual de 4GB y mis programas se ejecutan aunque tenga menos Memoria Principal (512MB) siempre que quepan en la memoria virtual.
Gestión de Memoria 34
MEMORIA VIRTUAL
Paginación ( Arquitectura Subyacente )
CPU
dvBus Datos
M.V.
La Memoria Virtual reside físicamente en memoria secundaria
M.P.
¡ No caben !
• Principio de localidad:
Meto en M.P. los trozos que hagan falta para ejecutar Pr y Pv
Gestión de Memoria 35
Paginación ( 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 dr
Traducir dvdr
3000
¿Cachés?
Gestión de Memoria 36
Paginación ( Arquitectura Subyacente )
Resumiendo:
• M.V. en disco y gestionado como un sistema de particiones variables (los trozos “granularidad” de M.V. son páginas)
• Las páginas de M.V. necesarias para que se ejecute un Pi están en la M.P. en uno cualquiera de sus marcos
¡ Principio de localidad espacial y temporal !
• Función de traducción (dv dr) 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 dr ?
Gestión de Memoria 37
Paginación ( Traducción de direcciones )M.V.M.P.
0
1
2
3
5
6
7
8
9
0
2
8
9
6
F.T.
?
¿ Qué páginas están cargadas
y dónde ?
Gestión de Memoria 38
Paginación ( 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
Gestión de Memoria 39
Paginación ( Traducción de direcciones “binario” )
¿ # bits dv ?¿ # bits dr ?
24 20
M.V. de 16MBM.P. de 1MB
Páginas de 4KB
0000 0000 0000 0000 0000 0000
0000 0000 0000 1111 1111 11110000 0000 0001 0000 0000 0000
0000 0000 0001 1111 1111 1111
0000 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 11110000 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
Gestión de Memoria 40
Paginación ( Traducción de direcciones “hexadecimal” )
M.V.
0
1
2
3
5
6
7
8
9
000 000000 FFF
HHH HHHPAG OFF
008 000008 FFF
FFF 000FFF FFF
M.P.
0
2
8
9
6
00 00000 FFF
HH HHHMAR OFF
02 00002 FFF
FF 000FF FFF
0123456789A
FFF
Tabla depáginas
02 51A
P 02
Presente
Marco
008 51A
Gestión de Memoria 41
• Toda la T.P. en M.P.
M.P.
Tabla dePáginas
MMU
CPU
Paginación ( 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 !
Gestión de Memoria 42
• Toda la T.P. en M.P. + una caché de la T.P. en la MMU
Paginación ( 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 de acierto del
98% !
Gestión de Memoria 43
Paginación ( 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!
Gestión de Memoria 44
4 Mb (210*212=22*220)Texto
Datos
Stack
Gap
Paginación ( Tabla de Páginas “multinivel” )
Evita mantener todas las tablas de páginas en memoria
Ejercicio2 – 12.12.2001
Gestión de Memoria 45
Paginación ( Tabla de Páginas “invertida” )M.V.M.P.
0
1
2
3
5
6
7
8
9
0
2
8
9
6
F.T.
Bastaría con una caché con tantas entradas como
marcos
• Descriptor de página P Marco
caché ??
Sigue siendo necesaria una T.P. completa (MP / MV)
¿ Seguro ?
Gestión de Memoria 46
Paginación ( Tabla de Páginas “descriptor” )
• Aspecto de un descriptor de página
P B R M L E J MARCO
PRESENTE Permisos: LECTURA
BLOQUEADA ESCRITURA
REFERENCIADA EJECUCIÓN
MODIFICADA
CACHE (Si/No)¿ Dirección en disco ?
• Un disco entero, o varios, o una parte de uno, para la M.V.
• Un fichero especial “pagefile.sys”
innecesario
C
Gestión de Memoria 47
P0P1P2P3P4P5P6P7P8P9
P10P11P12P13P14P15
M.V. FT
M4M5M6M7
M.P.M0M1M2M3
Paginación ( Uno o varios espacios de dv )• Un único espacio de direcciones virtuales para todos los procesos
P1
P2
P3
• Una única T.P. Global
• Reubicación:
Carga
Registro Reubicación
• ¿ Cómo crece un Pi ?
Muy problemático
• Se adapta bien a tener un disco con n*sector = página
EficienciaVer ejercicio 3 20/6/00
Gestión de Memoria 48
Paginación ( Uno o varios espacios de dv )• Un espacio de direcciones virtuales para cada proceso
P0P1P2
P3
M.V.(P1) FT(P1)P0P1P2P3
P1
M4M5M6M7
M.P.M0M1M2M3
P0P1P2P3P4P5
P2
• En la MMU, las dv se prefijan por un identificador de proceso
(complejidad)
• Una T.P. por proceso
• Reubicación innecesaria
• ¿ Fácil crecer ?
• Se adapta bien a tener un fichero por Pi (ineficiente)
Gestión de Memoria 49
Paginación ( Tratamiento de Falta de Página )
• ¿Cuántas Faltas de Página puede generar una instrucción?
1. Extraer instrucción Leer dv $003000 F.P.
2. Decodificarla
3. Ejecutarla Escribir dv $0045FB F.P.
?move D0,$0045FBclr $0003FA
M.V.
$002FFA
CPU
PC
M.P.
Una instrucción, 0, 1, 2 o más
F.P.
$003000
Gestión de Memoria 50
Paginación ( 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ón simple: uno cualquiera
(II) No hay marco libreM.P.
0
2
8
9
6
3
5
1
?
?
Política de sustituciónno tan simple
Gestión de Memoria 51
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
Paginación ( Tratamiento de Falta de Página “II” )
3 Seleccionar víctima,tocar TP y arrancar E/S¡ Sólo si sucia !
2
5
100
0000
3 ¿Víctima 2 ?
1 1 5
0FA32
40FA3
4 Salvando (DMA) página sucia en disco
5 Fin E/S. Página 2 salvada.Marco 5 libre.
7mov C,D 9mov C,D
689
0
1 0 510
¿ Quién actualiza la caché ?
Gestión de Memoria 52
Paginación ( Tratamiento de Falta de Página “II” )Resumiendo:
1 Referencia a página no cargada en M.P.2 Excepción BERR y se bloquea al proceso
3 Seleccionar víctima, tocar TP y arrancar E/S
¡ Sólo si sucia !
4 Salvando (DMA) página sucia 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 discoMP. CPU para otro Pi
8 Fin E/S. Página 9 cargada en Marco 5. P Preparado
9 Actualizar TP
10 Rearrancar “Mov C,D” cuando preparado UCP¿O continuar?
Gestión de Memoria 53
Paginación ( Algoritmos de sustitución de páginas )
OBJETIVO: Minimizar el número de Faltas de Página (F.P.)
Accesos:{ ........ $001000, $0043FA, $001002, $006400, $001006, $006402, $006406, $006408, $001008, $00640A, $00100A, $00100E, $00640E, $001012 ..}
{ .. 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1, ..}Serie de
Referencia
Un solo
marco?
F.P.11
3 o más
marcos?
F.P.3
¿Cuantos más marcos mejor?
Sean dos marcos
M0
M1
1 1
4
1
6
F.P.
3
M0
M1
1 1
4
6
4
6
14
M0
M1
1 1
4
6
4
1
4
6
4
1
4
6
4
1
4
6
4
1
410
Margen para la mejora
Algoritmos
Gestión de Memoria 54
Paginación ( 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
IDEALMás tiempo tarde en volver a ser referenciada
NRU No utilizada recientemente
FIFO Más tiempo lleva en Memoria Principal
LRU Menos recientemente usada
2nd Chance Segunda oportunidad
RELOJFIFO + LRU¡ El mismo !
Gestión de Memoria 55
Paginación ( 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
IDEAL
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
Gestión de Memoria 56
CT(t2, 10) =
t2
{3,4}
Paginación (Cuestiones de diseño: conjunto de trabajo)
• ¿Qué hacer cuando un proceso pasa a ejecución?
Carga por Demanda
• Se van cargando las páginas que el proceso vaya necesitando
Muchas F.P. evitables
Prealimentación
• Se arranca la carga del conjunto de trabajo del proceso.
“Páginas usadas más recientemente”
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}
Gestión de Memoria 57
Paginación ( Cuestiones de diseño: trasiego )
Páginas = 20 CT = 7
MV
MP
Cabe en MP
¿Más Procesos?
Páginas = 26 CT = 11
MP
MV
No cabe en MP
=> CT mayor que MP => Trasiego
¿Tamaño de página?
¿Grandes?Más Fragmentación Interna
Mejor rendimiento E/S¿Pequeñas?
Mejor ajuste de localidad
Más ineficiencia de E/S
2n => 512B .. 4/8KB y aumentando ¡Superpáginas!
Gestión de Memoria 58
Paginación ( Cuestiones de diseño: otras )
• Asignación local frente a global
• Control de carga
Pi
Pj
PFF
FIN
Recommended