El problema de gestión de la memoria

Anuncio
SO Sistemas operativos
Objetivos
1.- Introducir los conceptos y los problemas básicos de la gestión de
memoria:
Gestión de la memoria
– Memoria lógica vs. memoria física
– Asignación de memoria a procesos
2.- Estudiar las técnicas básicas de asignación dispersa:
– Paginación.
– Segmentación.
– Combinación de técnicas
Equipo “Sistemas Operativos DISCA/DSIC”
Universidad Politécnica de Valencia
Segmentación Paginada
Paginación multinivel.
3.- Entender la gestión de memoria virtual: problemas a resolver,
implementación y efectos sobre el rendimiento del sistema.
2
TEMA 3.- Gestión de la memoria
Indice y bibliografía
Contenidos
Índice
1.1.- Conceptos básicos
– 1. Conceptos básicos
– 2. Gestión de memoria
– 3. Asignación contigua
2.- Gestión de memoria
– 4. Asignación dispersa
3.- Asignación contigua
– 5. Memoria virtual
Memoria física vs. Memoria lógica
La Unidad de Manejo de Memoria (MMU)
4.- Asignación dispersa
Bibliografía
5.- Memoria virtual
– A. Silberschatz, P.B. Galvin
– Sistemas Operativos. Conceptos Fundamentales. 5ª ed.
Capítulo 8: Apartados 8.1 (excepto 8.1.4), 8.2, 8.3, 8.4 (excepto 8.4.1),
8.5 (excepto 8.5.4, 8.5.5), 8.6 y 8.7 (excepto 8.7.1 y 8.7.2)
Capítulo 9: Apartados 9.1, 9.2, 9.3, 9.4, 9.5 (excepto 9.5.4.3), 9.6
(excepto 9.6.1) y 9.7 .
TEMA 3.- Gestión de la memoria
3
TEMA 3.- Gestión de la memoria
4
Memoria física vs. memoria lógica
Memoria física vs. memoria lógica
(8.2)
Memoria lógica de un proceso
P1
P1
0000
P2
0000
o
oces ción
a pr
Cad su direc
tiene 0000
a
lógic
código
(8.2)
Memoria lógica de un proceso
P3
0000
0000
código
código
código
datos
datos
datos
datos
pila
pila
pila
pila
5
1.- Conceptos básicos
Memoria física vs. memoria lógica
6
1.- Conceptos básicos
La Unidad de Manejo de Memoria (MMU)
Un
di a ú
fís recc nic
ica ió a
00 n
00
0000
P1
ceso
a pro
Cad su
e
tien ción
direc 0000
a
lógic
P2
0000
código
P3
0000
código
Memoria
Física
CPU
o
Direcciones
lógicas
0000
Memoria
Principal
0000
código
MMU
Memoria
datos
datos
datos
pila
pila
pila
???
Principal
Mapa de memoria
del proceso en
ejecución
Direcciones
físicas
FFFF
FFFF
Direcciones
físicas
Direcciones
físicas
Bus
1.- Conceptos básicos
7
1.- Conceptos básicos
8
Contenidos
El problema de gestión de la memoria
1.- Conceptos básicos
2.2.- Gestión de memoria
Todo sistema operativo debe ofrecer alguna solución para estos
problemas:
– Reubicación
El problema de gestión de la memoria
El problema de la reubicación
El problema de la escasez de memoria
El problema de la asignación
– Escasez
– Protección
– Asignación
3.- Asignación contigua
Memoria
física
P1
P1
0000
Memoria
P2
lógica
P2
Memoria
P1
0000
4.- Asignación dispersa
5.- Memoria virtual
Pn
lógica
Pn
0000
Memoria
lógica
10
9
El problema de la reubicación
Reubicación en tiempo de ejecución: la MMU
El problema de escasez de la memoria
(8.1.1)
– Programa reubicable es aquel que puede ejecutarse en cualquier segmento
de memoria física.
– Aumentar el grado de multiprogramación
– Ejemplo: MMU con registro base.
ad
es
c
o
Pr
or
dirección
lógica 2000
+
dirección
física 7000
Técnicas para solucionarlo:
– Intercambios (Swapping)
MEMORIA
MMU
(9.1)
– Los procesos tienen una necesidad mayor de memoria.
– Para permitir la reubicación en tiempo de ejecución es necesario un
Hardware específico MMU
CPU
¿Por qué?
– Memoria virtual
– Bibliotecas dinámicas
mov R1, R2
7000
5000
Registro
base
11
12
El problema de escasez de la memoria
El método de intercambios (swapping)
MEMORIA
(8.3)
La técnica de memoria virtual
(9.1)
Disco
memoria
secundaria
Memoria física
memoria primaria
Memoria virtual
memoria lógica
DISCO
swap out
Proceso 1
El problema de escasez de la memoria
P2
Proceso 1
Proceso 2
Intercambio
con disco
Proceso 2
swap in
Falta de
espacio
14
13
El problema de escasez de la memoria
Enlace estático con bibliotecas
programa
fuente
Compilador
#include <stdio.h>
#include <stdlib.h>
#define LINSIZ 40
char *getline(char *);
main() {
double reg = 0.0;
char line[LINSIZ];
while (getline(line) != NULL)
{ .............
Enlazado
librerías
estáticas
programa
objeto
nombre.c
nombre.o
021402
234123
278761
546781
345687
.............
Bibliotecas
estáticas
del sistema
El problema de escasez de la memoria
La librería estática
se “copia” en
nuestro programa
cuando lo
compilamos
Lib2.a
042302
333122
228764
556783
445686
.............
Lib1.a
024302
234223
678771
447781
345685
............
programa
ejecutable
nombre
021402
Bibliotecas 234123
estáticas 278761
del sistema 546781
345687
.............
Lib1.a
024302
234223
678771
447781
345685
.............
Lib2.a
042302
333122
228764
556783
445686
.............
15
Enlace estático con bibliotecas
programa
ejecutable
Cargador
nombre
Carga el
ejecutable
“nombre” en
memoria
para
convertirse
en proceso
Bibliotecas
estáticas
del sistema
Lib1.a
024302
234223
678771
447781
345685
.............
021402
234123
278761
546781
345687
.............
Lib2.a
042302
333122
228764
556783
445686
.............
Memoria
Principal
010010010011
110010100110
111100111001
100011110101
111100011100
010101001101
001111001010
16
El problema de escasez de la memoria
Bibliotecas dinámicas
P1
El problema de escasez de la memoria
(8.1.3)
Memoria
física
Memoria
lógica
(8.1.3)
Memoria
física
T. func. bib.
printf
P1
P1
0000
Bibliotecas dinámicas
libX11
(3)
Rutina cargador
(2)
libX11.so
P1
libX11.so
P2
Memoria
lógica
(1)
0000
call printf
P2
Sistema
Stub printf
libX11
operativo
18
17
El problema de escasez de la memoria
Bibliotecas dinámicas
(8.1.3)
(3)
Rutina cargador
(2)
(1)
Memoria
física
T. func. bib.
printf
P1
El problema de escasez de la memoria
(4)
(8.1.3)
Memoria
física
T. func. bib.
P1
printf
P1
(6)
P1
Rutina cargador
(5)
libX11.so
libX11.so
call printf
Stub printf
Bibliotecas dinámicas
call printf
Sistema
libX11.so
Stub printf
operativo
Sistema
operativo
19
20
Asignación de la memoria
Asignación de la memoria
Asignación contigua y asignación dispersa
P1
Memoria
física
memoria
lógica
0000
P1
memoria
lógica
0000
P1
Memoria
física
– Asignación contigua (8.4) :
P1
P2
P2
P2
memoria
lógica
P2
0000
memoria
lógica
Métodos de asignación
Particiones fijas (8.4.2).
Particiones variables (8.4.2)
– Asignación dispersa:
P1
0000
Paginación (8.5).
Segmentación (8.6).
P2
22
21
Contenidos
Método de múltiples particiones fijas
1.- Conceptos básicos
2.- Gestión de memoria
3.3.- Asignación contigua
Memoria dividida en particiones de diferente tamaño
Cola única / múltiples colas
Problema: Fragmentación interna
sistema
Método de múltiples particiones fijas
Método de múltiples particiones variables
COLA DE
PROCESOS
4.- Asignación dispersa
P1 100 K
5.- Memoria virtual
P4 necesita un hueco que ha sido
P2 100 K
ocupado por un proceso que
P3 100 K
desperdicia gran parte de su espacio.
operativo
100 K
400 K
P4 500 K
P5 400 K
600 K
TEMA 3.- Gestión de la memoria
23
24
Método de múltiples particiones variables
Método de múltiples particiones variables
P1
COLA DE
PROCESOS
P1
Algoritmos de asignación de huecos
– El primer ajuste
P1
– El mejor ajuste
P1 600 K
P4
P2
– El peor ajuste
P4
P2 1000 K
Problema: Fragmentación externa
P1
– Solución: Compactación
P3 300 K
P3
P4 700 K
P3
P3
P1
P3
P4
P1 600 K
P5 700 K
P2 1000 K
Asignación
P1, P2,P3
P2 acaba
Asignación
P4
P3 300 K
P1 acaba
coste: 1900
P1
P4
P3
P3
P3
P4
coste: 300
26
25
Contenidos
La paginación
Concepto
1.- Conceptos básicos
Dividir el espacio de direcciones en
fragmentos de longitud FIJA.
2.- Gestión de memoria
3.- Asignación contigua
4.4.- Asignación dispersa
(8.5)
básico
Páginas.
Marcos.
P2
memoria
física
memoria
lógica
Paginación (8.5)
Segmentación (8.6)
Técnicas combinadas
– Segmentación paginada (8.7)
– Paginación multinivel (8.5.3)
5.- Memoria virtual
páginas
marcos
TEMA 3.- Gestión de la memoria
27
28
La paginación
La paginación
memoria
lógica
Estructura de una dirección lógica
La tabla de páginas
– Descriptor de página :
0
1
num. de página
p
m-1
desplazamiento
d
k-1
m bits
m-k bits
d
Número de marco físico
Bit de validez
Bits de protección (rwx)
Bit de modificado
Tabla de páginas
p
Descriptor de página
0
número de
marco
...
k bits
otros
bit
bits
bit
validez protección modificado ...
2m-k-1
N=2k
30
29
La paginación
La paginación
Traducción de direcciones
desplazamiento
d
num. de página
p
CPU
Dirección lógica
Un ejemplo
0
– Espacio de direcciones físicas: 32 bytes
0
0
p
d.f. = f*N + d
4
P2
8
desplazamiento
d
n bits
4
Dirección física
d
Marco 1
– Tamaño de página: 4 bytes
memoria
lógica
memoria
física
Tabla de páginas
num. de marco
f
Marco 0
– Espacio de direcciones lógicas: 16 bytes
m bits
f
memoria
física
f
12
a
b
c
d
e
f
g
h
m
n
.
.
8
Marco 2
Tabla de
páginas
5
2
6
-
Marco 3
16
Marco 4
20
Marco 5
24
Marco 6
Marco 7
N=2k
31
12
e
f
g
h
28
a
b
c
d
m
n
.
.
32
La paginación
La paginación
(8.5.2.2)
Protección
memoria
lógica
Tabla de páginas
Página 0
Marco bits acc. bit val
6143
Marco 1
Marco 2
Página 0
Marco 3
Página 1
Marco 4
Página 2
r
v
3
r
v
4
r
v
7
r
v
Página 4
8
w
v
Marco 7
Página 3
Página 5
9
w
v
Marco 8
Página 4
-
r
i
Marco 9
-
r
i
Página 5
10239
Página 2
Página 3
Análisis
– Ventajas
2
Página 1
P1
Marco 0
– Un ejemplo
0000
0000
memoria
física
No aparece fragmentación externa .
Facilita la reubicación.
Proporciona protección.
– Inconvenientes
Marco 5
Fragmentación interna.
– Tamaños de página
Marco 6
Grandes mucha fragmentación interna.
Pequeños tablas de página muy grandes.
34
33
La paginación
Implementación de la tabla de páginas
La paginación
(8.5.2)
Tabla de páginas en memoria
– Registros de la MMU
Memoria
física
Dirección lógica
– Memoria
CPU
– TLB
PTLR
num. de página desplazamiento
p
d
NO
f
35
¿ PTLR > p ?
SI
+
PTBR
MMU
>
r
Marco bits
acc.
bit
val
f
r
v
...
...
…
v
marco de página desplazamiento
f
d
36
La paginación
Tabla de páginas en registros asociativos:
TLB: Translation Look-aside Buffers
La paginación
(8.5.2)
Dirección lógica
Los registros contienen:
– clave.
– contenido.
Memoria
física
Tabla de páginas con TLB
num. de página desplazamiento
p
d
CPU
La búsqueda se realiza por la clave en paralelo para todo el conjunto de
registros asociativos
Marco bits
acc.
clave contenido
bit
val
NO
f
r
v
...
...
…
SI
MMU
marco de página desplazamiento
f
d
38
37
Contenidos
La segmentación
Concepto
1.- Conceptos básicos
2.- Gestión de memoria
Dividir el espacio de direcciones en
fragmentos de longitud VARIABLE.
3.- Asignación contigua
– Tipos de Segmento
4.4.- Asignación dispersa
Paginación (8.5)
Segmentación (8.6)
Técnicas combinadas
Código
Datos
Pila
–Propiedades de los segmentos
– Segmentación paginada (8.7)
– Paginación multinivel (8.5.3)
5.- Memoria virtual
(8.6)
de segmentación
–Definición
Memoria lógica
Datos SEGMENT
:
datox
dw
xx
datoy
dw
yy
:
Datos ENDS
Codigo SEGMENT
:
Codigo ENDS
Pila SEGMENT
dw
500
Pila ENDS
TEMA 3.- Gestión de la memoria
39
Memoria física
Codigo
Datos
Pila
40
La segmentación
La segmentación
Estructura de una dirección lógica
num. de segmento
s
La tabla de segmentos
– Contiene un descriptor por cada segmento.
– Cada descriptor de segmento contiene, al menos:
desplazamiento
d
m bits
Tabla de segmentos
Base del segmento:
Límite:
Otros, ...
Tabla de segmentos
base
límite
Descriptor de segmento
etc.
base
límite
otras
Dirección física
n bits
La segmentación
La segmentación
Traducción de direcciones
num. de segmento
s
42
41
desplazamiento
d
Dirección lógica
(8.6.2)
CPU
Memoria física
Ejemplo de segmentación
subrutina
Tabla de segmentos
s
base
límite
sqrt
Datos
+
SI
programa
principal
Pila
Segmento 2
Dirección física
43
0
Memoria
Memoria
virtual
virtual
1400
Segmento 0
2400
Segmento 3
Tabla de segmentos
tabla
de
símbolos
Segmento 1 Segmento 4
<
NO
pila
Segmento 0
Codigo
Memoria
Memoria
física
física
0
1
2
3
4
base
límite
1400
6300
4300
3200
4700
1000
400
400
1100
1000
3200
Segmento 3
4300
Segmento 2
4700
Segmento 4
5700
6300
6700
Segmento 1
44
La segmentación
La segmentación
Compartición de segmentos
0
Proceso P1
Límite
...
S
D
400
C 21000
Segmento
pila
...
6300
28400
Proceso P2
emacs
Segmento
pila
Límite
Base
...
...
S
D 10000
C 21000
Segmento
datos
Segmento
código
12300
28400
Segmento
datos
Segmento
código
emacs
Proceso P1
6300
Base
Datos P1
6700
Límite Base
12300
...
...
S
D
400 6300
C 21000 28400
Datos P2
RW
RW
RO
Segmento
pila
28400
WR
emacs
Dirección virtual
C
1200
CPU
Segmento
datos
Segmento
código
INTR
MMU
Error
emacs
46
45
La segmentación
Permisos
WR
22300
49400
(8.6.4)
Facilidad para protección
La segmentación
Análisis
Implementación de la tabla de segmentos
(8.6.3)
– Registros de la MMU
– Ventajas
No aparece fragmentación interna.
– Memoria
Facilita la reubicación.
– TLB
Proporciona protección.
– Inconvenientes
Fragmentación externa.
– Tamaños de segmento
Muy Grandes
aproximación a particiones variables.
Muy Pequeños eliminaría la fragmentación externa, pero aumentaría el
tamaño destinado a registros
Tamaño Fijo Paginación
47
48
Contenidos
La segmentación paginada
1.- Conceptos básicos
Cuando los segmentos crecen:
2.- Gestión de memoria
3.- Asignación contigua
4.4.- Asignación dispersa
(8.7)
Motivación
Paginación (8.5)
Segmentación (8.6)
Técnicas combinadas
Límite
Base
Otras
segmento Tabla páginas protec, ..
Solución:
–
– Segmentación paginada (8.7)
– Paginación multinivel (8.5.3)
Aumenta la fragmentación externa.
Aumenta el problema de encontrar un
hueco libre en memoria para ubicarlo.
Problema de asignación dinámica de
memoria debido a la diferencia de
tamaño de los segmentos.
Paginar los segmentos segmentación
paginada
5.- Memoria virtual
La segmentación paginada
Traducción de direcciones
num. de segmento
s
desplazamiento
d
>
STBR
+
–
Base de la tabla de páginas.
–
Tamaño del segmento
50
49
TEMA 3.- Gestión de la memoria
La tabla de segmentos
Longitud Base tabla páginas
CPU
Dirección lógica
Análisis
– Ventajas
p
Tabla de segmentos
s
La segmentación paginada
d’
p
+
Ventajas de Segmentación
Ventajas de Paginación
Proporciona protección.
– Inconvenientes
Tabla páginas
Fragmentación interna.
f
num. de marco
f
desplazamiento
d’
51
52
Contenidos
La paginación multinivel
1.- Conceptos básicos
– Para espacios de direcciones muy grandes, la tabla de páginas puede
ser excesivamente grande.
2.- Gestión de memoria
3.- Asignación contigua
4.4.- Asignación dispersa
(8.5.3)
Motivación
Paginación (8.5)
Segmentación (8.6)
Técnicas combinadas
Solución:
– Paginar la propia tabla de páginas
– Segmentación paginada (8.7)
– Paginación multinivel (8.5.3)
5.- Memoria virtual
La paginación multinivel
0
La tabla de páginas paginada
Tabla de páginas
de 1er nivel
...
54
53
TEMA 3.- Gestión de la memoria
Tabla de
páginas
1
...
La paginación multinivel
Memoria
física
1
Traducción de direcciones
num. de página desplazamiento
p
d
100
p1
500
500
100
...
708
p2
Página de la
tabla de páginas
929
...
900
Dirección lógica
p1
708
...
d
p2
f
900
Tabla de páginas
de 1er nivel
929
55
rw- v
Página de
tabla de páginas de
2º nivel
d
Dato al que
se accede
56
La paginación multinivel
La paginación multinivel
Ejemplos reales de sistemas con paginación multinivel
– La arquitectura SPARC, con 32 bits de dirección soporta un esquema
con 3 niveles de paginación.
– Utilizar un TLB
– La arquitectura del Motorola 68030, con 32 bits de dirección soporta
un esquema con 4 niveles de paginación.
– El Pentium de Intel, con 32 bits de dirección, soporta un esquema con
2 niveles de paginación.
Solución:
i386 de Intel, tiene un TLB con 32 entradas y consigue una tasa de
aciertos del 98%
Motorola 68030 tiene un TLB de 22 entradas.
Pentium de Intel tiene dos TLBs:
– el primero gestiona las páginas estándar de 4Kbytes y tiene una capacidad de
64 entradas.
– el segundo para implementar páginas de 4Mb y tiene una capacidad de 8
entradas.
Inconveniente:
– Utilizar memoria caché para almacenar tablas de páginas. Con esto el
sistema se ralentizará, pero únicamente entre un 20% y un 40%.
Cada nivel de paginación requiere incrementar en uno el número de
accesos a memoria para acceder a una dirección física.
58
57
Contenidos
Memoria virtual
1.- Conceptos básicos
– Segmentación por demanda.
3.- Asignación contigua
4.- Asignación dispersa
Ventajas
– Aumentar el grado de multiprogramación
5.5.- Memoria virtual
(9.1)
– Paginación por demanda.
2.- Gestión de memoria
Concepto de memoria virtual
– Aumentar el tamaño de los programas
Paginación por demanda
Algoritmos de reemplazo
Asignación de marcos
Hiperpaginación
– Ahorro de memoria.
Inconvenientes
– Reducir el rendimiento del sistema si no se diseña y sintoniza
adecuadamente.
– Mayor complejidad.
TEMA 3.- Gestión de la memoria
59
60
Memoria virtual
Contenidos
Intercambios
1.- Conceptos básicos
2.- Gestión de memoria
Memoria Virtual
(lógica)
A
3.- Asignación contigua
Memoria Secundaria
4.- Asignación dispersa
0000
A0 A0
A1
5.5.- Memoria virtual
Memoria Principal
(física)
A1
B
A0
B0
A1
A0 A0
B0
A1
B1
B1
Paginación por demanda
Algoritmos de reemplazo
Asignación de marcos
Hiperpaginación
0000
B0
B1
B1
61
Paginación por demanda
Concepto de paginación por demanda
(9.2)
Fallos de página
– Definición:
Se produce cuando referenciamos una página que tiene su bit de validez
igual a 0
– Manejo de fallos de página
Descriptores de página
– Bit de validez
Página en disco.
Error de acceso.
El proceso “crece” y reclama nuevas páginas.
– Se carga la página en un marco
– Bit de referencia
– Se aborta el proceso
– Bit de modificación
62
Paginación por demanda
– Paginación + Intercambios entre memoria principal y secundaria
(swapping).
TEMA 3.- Gestión de la memoria
Problema con las páginas compartidas.
– Si el SO lo permite, se le asigna una nueva página al proceso, se valida y se le
asigna un marco.
63
64
Paginación por demanda
Paginación por demanda
(9.2)
Fallo de página: caso de página en disco
3: buscar página en el área de swap
2: excepción
Sistema
operativo
Memoria
lógica
0000
Página 0
Página 1
Página 2
Página 3
Marco Validez
4
61
5
0
0
0
1
0
1
1
1
0
0
0
Algoritmo de fallo de página: caso de página en disco (9.2)
– Encontrar la página demandada en disco.
Memoria
primaria
– Encontrar un marco libre:
Memoria
secundaria
Tabla de páginas
A
Página 2
Página 0
A0
A2
A1
A3
– Leer la página demandada del disco (page in) y ubicarla en el marco
libre, actualizando la tabla de páginas y la tabla de marcos libres.
Página 3
Página 1
Si existe un marco libre, utilizarlo.
Si no, utilizar un algoritmo de reemplazo de páginas.
Si el bit de modificación es 1, escribir la víctima en disco (page out).
Actualizar la tabla de páginas, invalidando la víctima, y la tabla de marcos.
– Transferir control al proceso de usuario, reejecutando la instrucción
que provocó el fallo de página.
4. Cargar página
(page in)
6: reiniciar
CPU instrucción
1: referencia
5: Actualizar tabla de páginas
Paginación por demanda
Reemplazo de páginas
66
65
Contenidos
(9.4)
1.- Conceptos básicos
– Si la memoria principal está completamente ocupada y se produce un
fallo de página:
2.- Gestión de memoria
Una página ubicada en memoria principal, denominada víctima, debe
dejar su marco a la página demandada.
4.- Asignación dispersa
– Si el bit de modificación es 1 hay que salvar la víctima a disco (page out)
– Leer la página demandada sobre el marco de la víctima (page in)
3.- Asignación contigua
5.5.- Memoria virtual
– Existen diversos algoritmos para seleccionar la víctima.
67
TEMA 3.- Gestión de la memoria
Paginación por demanda
Algoritmos de reemplazo
Asignación de marcos
Hiperpaginación
68
Algoritmos de reemplazo de páginas
Algoritmos de reemplazo de páginas
(9.5)
Serie de referencias
Algoritmos de sustitución de páginas
3 marcos de página: 9 fallos de página (6 reempl.)
1
2
3
4
1
2
5
1
2
3
4
5
1
1
1
4
4
4
5
5
5
5
5
5
2
2
2
1
1
1
1
1
3
3
3
3
3
3
2
2
2
2
2
4
4
– Algoritmo FIFO
– Algoritmo óptimo
4 marcos de página: 10 fallos de página (6 reempl.)
– Algoritmo LRU
1
– Algoritmo de aproximación al LRU
(9.5.1)
Algoritmo FIFO
1
1
1
1
1
5
5
5
5
4
4
2
2
2
2
2
2
1
1
1
1
5
3
3
3
3
3
3
2
2
2
2
4
4
4
4
4
4
3
3
3
Segunda oportunidad
70
69
Algoritmos de reemplazo de páginas
Algoritmos de reemplazo de páginas
Algoritmo FIFO
3 marcos de página: 7 fallos de página (4 reempl.)
– Filosofía
La víctima será aquella página que hace mas tiempo que ha sido
CARGADA en memoria.
1
2
3
4
1
2
5
1
2
3
4
5
1
1
1
1
1
1
1
1
1
3
4
4
2
2
2
2
2
2
2
2
2
2
2
3
4
4
4
5
5
5
5
5
5
– Ventajas
Muy simple.
– Inconvenientes
(9.5.2)
Algoritmo óptimo
4 marcos de página: 6 fallos de página (2 reempl.)
Presenta la anomalía de Belady
1
71
1
1
1
1
1
1
1
1
1
4
4
2
2
2
2
2
2
2
2
2
1
1
3
3
3
3
3
3
3
3
2
2
4
4
4
5
5
5
5
5
5
72
Algoritmos de reemplazo de páginas
Algoritmos de reemplazo de páginas
Algoritmo óptimo
– Filosofía
Garantiza que un conjunto de páginas mantenido con N marcos es un
subconjunto del que se mantiene con N+1 marcos
– Propiedad
Ofrece un número de fallos mínimo.
– Inconvenientes
(9.5.1)
– Definición
La víctima es aquella página que se tardará más en utilizar.
– Ventajas
Algoritmos de pila
Si un algoritmo es de pila NUNCA presenta la anomalía de Belady
Implementación imposible.
74
73
Algoritmos de reemplazo de páginas
Algoritmos de reemplazo de páginas
Algoritmos de pila
– FIFO no es un algoritmo de pila
Algoritmo LRU
(9.5.3)
– Filosofía:
3 marcos de página: 9 fallos de página (6 reempl.)
1
2
3
4
1
2
5
1
2
3
4
5
1
1
1
4
4
4
5
5
5
5
5
5
2
2
2
1
1
1
1
1
3
3
3
3
3
3
2
2
2
2
2
4
4
La víctima será aquella página que hace más tiempo que ha sido
REFERENCIADA.
– Propiedades:
Es un algoritmo de pila.
4 marcos de página: 10 fallos de página (6 reempl.)
1
1
1
1
1
1
5
5
5
5
4
4
2
2
2
2
2
2
1
1
1
1
5
3
3
3
3
3
3
2
2
2
2
4
4
4
4
4
4
3
3
3
75
76
Algoritmos de reemplazo de páginas
Algoritmos de reemplazo de páginas
Ejemplo algoritmo LRU
3 marcos de página: 10 fallos de página (7 reempl.)
1
2
3
4
1
2
5
1
2
3
4
5
1
1
1
4
4
4
5
5
5
3
3
3
2
2
2
1
1
1
1
1
1
4
4
3
3
3
2
2
2
2
2
2
5
– Contadores
– Cola
Ventajas
– Buena aproximación al óptimo
Inconvenientes
1
1
1
1
1
1
1
1
1
1
5
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
5
5
5
5
4
4
4
4
4
4
4
4
3
3
3
– Solución:
Utilizar aproximaciones al algoritmo.
78
77
Contenidos
Algoritmos de reemplazo de páginas
Alg. segunda oportunidad
1.- Conceptos básicos
2.- Gestión de memoria
1
0
3.- Asignación contigua
1
0
siguiente
víctima
(9.5.3)
– Difícil de implementar
4 marcos de página: 8 fallos de página (4 reempl.)
1
Implementaciones del algoritmo LRU
0
4.- Asignación dispersa
5.5.- Memoria virtual
víctima
1
Paginación por demanda
Algoritmos de reemplazo
Asignación de marcos
Hiperpaginación
1
Bit de
referencia
páginas
79
TEMA 3.- Gestión de la memoria
80
Asignación de marcos
Contenidos
Problema de asignación de marcos
1.- Conceptos básicos
– Lista de marcos libres
2.- Gestión de memoria
– Reparto de marcos entre los procesos y el SO
3.- Asignación contigua
Algoritmos de asignación de marcos
4.- Asignación dispersa
– Asignación equitativa
5.5.- Memoria virtual
– Asignación proporcional
– Asignación prioritaria
Ambito de las políticas de reemplazo
– Reemplazo local
Paginación por demanda
Algoritmos de reemplazo
Asignación de marcos
Hiperpaginación
– Reemplazo global
81
Hiperpaginación (thrashing)
El problema de la hiperpaginación
82
TEMA 3.- Gestión de la memoria
Hiperpaginación (thrashing)
(9.7)
Principio de localidad de referencia
(9.7.1)
– Localidad:
– Causa de la hiperpaginación
Conjunto de páginas que un proceso utiliza conjuntamente.
– Principio de localidad de referencia.
Hiperpaginación
– Hiperpaginación ≡ Σ(tamaños de localidad) > (tamaño memoria total)
Utilización
de la CPU
Grado de multiprogramación
83
84
Hiperpaginación (thrashing)
Hiperpaginación (thrashing)
(9.7.2)
Modelo del área activa
Modelo del área activa
– Asume el principio de localidad de referencia.
– Determinar el número de páginas que un proceso que deben tener en
memoria para obtener un buen rendimiento y evitar la
hiperpaginación.
– Área activa: conjunto de páginas accedidas en las últimas ∆
referencias.
– Ventana de área activa ∆ Es un número fijo de referencias.
... 5 3 5 2 3 5 2 3 5 4 5 4 5 9 8 9 4 6 9 2 3 9 2
∆
∆
t1
AA(t1) = {2,3,5}
85
Hiperpaginación (thrashing)
Control de la tasa de fallos de página
Tasa
de
fallos
de
página
(9.7.3)
Límite superior --> Asignar marcos
Límite inferior --> Eliminar marcos
Número de marcos
87
t2
AA(t2) = {4,5,6,8,9}
86
Descargar