Académique Documents
Professionnel Documents
Culture Documents
GSyC
nemo@gsyc.escet.urjc.es
2000
Gestión de Memoria
Reparto de memoria
Swapping 3
Swapping
Pero. . .
Implicaciones
Swapping (cont.) 5
En la prehistoria
Monoprogramación
Multiprogramación 7
Multiprogramación
Modelización
Intuitivamente:
Más memoria ) más procesos ) major uso de CPU.
Particiones fijas 9
Particiones fijas
Alternativas
Una cola:
– FIFO: puedo desaprovechar memoria.
– otra: puedo penalizar a determinados procesos.
Multiple
input queues
Partition 4 Partition 4
700K
400K
Partition 2 Partition 2
Partition 1 Partition 1
100K
Operating Operating
system system
0
(a) (b)
Carga y protección
Protección:
– Bits extra de “contexto” en la memoria.
– Segmentos: base+límite.
Fragmentación
????
????
??
(3K) (3K)
Segment 4 Segment 4
(7K) (7K) Segment 5 Segment 5 (10K)
(4K) (4K)
(4K)
Segment 3 Segment 3 Segment 3
(8K) (8K) (8K) Segment 5
Segment 6
(4K)
(4K)
Segment 6
? Segment 2 Segment 2 Segment 2 Segment 2 (4K)
(5K) (5K) (5K) (5K)
Segment 2
(3K) (3K) (3K) (5K)
Segment 1
(8K) Segment 7 Segment 7 Segment 7 Segment 7
(5K) (5K) (5K) (5K)
Segment 0 Segment 0 Segment 0 Segment 0 Segment 0
(4K) (4K) (4K) (4K) (4K)
(a) (b) (c) (d) (e)
Particiones variables 15
Particiones variables
Ejemplos:
Tareas en PalmOS.
Consideraciones
Asignación 17
Asignación
Varias formas:
bitmaps bloques
Listas fragmentos
Sistemas Buddy
???
?
??
A B C D E
8 16 24
?
?
(a)
11111000 P 0 5 H 5 3 P 8 6 P 14 4
11111111
11001111
H 18 2 P 20 6 P 26 3 H 29 3 X
11111000
Asignación (cont.) 19
Detalles prácticos
El disco hoy dia queda más lejos que la memoria del vecino. . .
) ¿Por qué no se hace swapping allí?
Asignación (cont.) 21
Optimizaciones
Buddy system 23
Buddy system
Empeora la interna.
Facilidad de recombinación.
Memoria Virtual
¿Qué es esto? 25
¿Qué es esto?
Automatización de overlays.
Paginación 27
Paginación
Conceptos
Tabla de páginas
Paginación
Paginación (cont.) 29
Implementación
Engañamos al procesador.
The CPU sends virtual
CPU addresses to the MMU
card
CPU
Memory Disk
management Memory
controller
unit
Bus
Virtual
address
space
60K-64K x
56K-60K X Virtual page
52K-56K X
48K-52K X
44K-48K 7
40K-44K X
Physical
36K-40K 5 memory
32K-36K X address
28K-32K X 28K-32K
24K-28K X 24K-28K
20K-24K 3 20K-24K
16K-20K 4 16K-20K
12K-16K 0 12K-16K
8K-12K 6 8K-12K
4K-8K 1 4K-8K
0K-4K 2 0K-4K
Page frame
Paginación (cont.) 31
Fallo de página
MMU
Entradas en la tabla:
– Número de marco
– Los bits de offset ) Presente/Ausente,. . .
Paginación (cont.) 33
MMU
Alpha: 3 niveles
Intel: 2 niveles
– 32 bits: 10+10+12
– Páginas de 4K
– Superpáginas de 4M
– 1024 entradas por tabla
Second-level
page tables
Page
table for
the top
4M of
memory
Top-level
page table
1023
6
Bits 10 10 12
5
PT1 PT2 Offset 4
3
(a) 2
1
0
1023
6
5
4
3 To
pages
2
1
0
(b)
Paginación (cont.) 35
Entradas en la TP
Número de marco
Presente
M (modificado)
R (referenciado)
no-cache
TLB
Paginación (cont.) 37
TP invertida
Algoritmos de reemplazamiento
Paginación (cont.) 39
Detalles prácticos
Anomalía de Belady
Paginación (cont.) 41
Conjunto de trabajo
Localidad de referencia.
Políticas de asignación
Paginación (cont.) 43
Problemas
Páginas compartidas
Las RO
Paginación (cont.) 45
Paging daemon
Segmentación
Dirección:desplazamiento:protección
Segmentación (cont.) 47
MULTICS, Intel.
) Direcciones virtuales, lineales, y físicas.
PAGINACIÓN SEGMENTACIÓN
Visión del programador No Si
Espacios de direcciones 1 varios
M. Virt. > M. física Si Si
Protección. Código != datos Si Si
Crecimiento No Si
Compartición Si Si
Objetivo Espacio lineal de direc- Visión del usuario, protec-
ciones ción
Fragmentación Interna Externa
Segmentación (cont.) 49
Detalle práctico
No se usa
¿Por qué?
MV en UNIX
Segmentos “virtuales”
MV en UNIX (cont.) 51
???
Imagen típica
Stack
?
Header Text
(a) (b)
Segmentos compartidos
Texto
Librerías dinámicas
MSHARED
Ficheros proyectados
MV en UNIX (cont.) 53
Más segmentos
Librerías compartidas
Ficheros proyectados
Estructuras
Vm Vm
segment descriptors segment descriptors
pages
shared
segment
page table
MV en UNIX (cont.) 55
COW
Vm Vm
segment descriptors segment descriptors
COW segment
pages pages