Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Memoria
Memoria
Administracin de la memoria
Pilar Gonzalez
Ferez
de la memoria p.1/128
Tema 4 Administracion
ndice
Introduccin (Carretero [C4.1, C4.2], Stallings [C7.1])
Particin de memoria (Stallings [C7.2], Tanenbaum [C4.2.1 y C.4.2.2])
Memoria virtual con paginacin (Tanenbaum [C4.3, C4.4, C4.6])
Memoria virtual con segmentacin (Tanenbaum [C4.8])
Gestin de la memoria en Linux
Gestin de la memoria en Windows 2000
de la memoria p.2/128
Tema 4 Administracion
ndice
1. Introduccin
1.1. Objetivos del sistema de gestin de memoria (Carretero
[C4.1], Stallings [C7.1])
de la memoria p.3/128
Tema 4 Administracion
1. Introduccin
Memoria principal: Recurso a repartir entre el S.O. y los procesos
Sistema con monoprogramacin memoria principal
divida entre el S.O. y el proceso en ejecucin
Sistema con multiprogramacin memoria principal
dividida en dos partes:
Una parte para el sistema operativo
El resto repartida entre los procesos en ejecucin
S.O. reparto de memoria eficiente, transparente y
seguro, proporcionando un espacio independiente a cada
proceso y evitando interferencias entre ellos
de la memoria p.5/128
Tema 4 Administracion
Reubicacin
A priori no se puede conocer la posicin de memoria en
la que se va a cargar un programa al ejecutarse
Adems, al reanudar un proceso nueva posicin de
memoria (es muy poco probable que pudiese ocupar la misma posicin que tena
antes de ser suspendido)
Proteccin
Un proceso no puede acceder a la zona de memoria
asignada a otros procesos, ni a la del S.O.
Es necesario un mecanismo para proteger al S.O. y a
los procesos entre s espacios lgicos disjuntos
La reubicacin complica la proteccin
Todas las referencias a memoria de un proceso deben
comprobarse durante su ejecucin slo accedan a
su espacio de memoria
La proteccin de memoria se tiene que satisfacer a
nivel hardware, y no software (El S.O. tendra que tomar el
control en cada referencia a memoria, para realizar la comprobacin)
Comparticin
Debe haber flexibilidad para permitir que varios
procesos accedan a un misma zona de memoria:
Dos procesos ejecutando el mismo programa mismo cdigo
Varios procesos pueden utilizar una misma estructura de datos
de la memoria p.9/128
Tema 4 Administracion
Organizacin fsica
La memoria est organizada, al menos, en dos niveles:
Principal acceso ms rpido, coste ms alto y voltil
Secundaria ms lenta y barata, y no voltil
de la memoria p.10/128
Tema 4 Administracion
Maximizar el rendimiento
El gestor de memoria debe maximizar el nmero de
procesos en memoria, y minimizar el desperdicio
inherente al reparto
Poltica de asignacin decidir qu direcciones de
memoria se asignan para satisfacer una peticin
La propia gestin de memoria supone un gasto de
memoria
ptimo: cualquier direccin lgica traducida por
cualquier direccin fsica (Irrealizable!)
Hay zonas de memoria que no se pueden asignar a
procesos (DMA, S.O., disp. mapeados a memoria)
Para un mejor aprovechamiento de la memoria casi
todos los S.O. usan paginacin
Para optimizar el rendimiento memoria virtual
de la memoria p.11/128
Tema 4 Administracion
Bibliotecas de objetos
Coleccin de objetos relacionados, normalmente, entre s
Hay un conjunto de bibliotecas predefinidas que proporcionan
servicios a las aplicaciones, como los correspondientes al S.O.
de la memoria p.13/128
Tema 4 Administracion
de la memoria p.14/128
Tema 4 Administracion
Bibliotecas dinmicas
Ventajas:
Tamao de los ejecutables disminuye considerablemente
Rutinas de biblioteca nicamente en un archivo
Varios procesos en ejecucin compartir el cdigo de la
biblioteca
Actualizacin inmediata
de la memoria p.16/128
Tema 4 Administracion
de la memoria p.17/128
Tema 4 Administracion
de la memoria p.20/128
Tema 4 Administracion
de la memoria p.23/128
Tema 4 Administracion
de la memoria p.26/128
Tema 4 Administracion
ndice
2. Particin de la memoria (Stallings [C7.2])
2.1. Particiones estticas
2.2. Particiones dinmicas
2.3. Sistema de colegas
2.4. Relocalizacin y proteccin
2.5. Administracin de memoria (Tanenbaum [C4.2.1 y C.4.2.2])
de la memoria p.27/128
Tema 4 Administracion
2. Particin de la memoria
Particiones estticas
S.O. ocupa una posicin fija de la memoria principal
Resto de la memoria disponible para los procesos
dividida en particiones con lmites fijos
Particiones de igual tamao:
Cualquier proceso, con un tamao menor o igual que el de la
particin, puede cargarse en cualquier particin libre
Los procesos bloqueados, pueden suspenderse, y traer nuevos
procesos a sus particiones
El tamao de las particiones condiciona el tamao mximo de los
programas. Programas ms grandes usando overlays
Fragmentacin interna parte de la memoria de la particin
ser desperdiciada (no se puede asignar a otro proceso). El uso de la
memoria es extremadamente ineficiente
de la memoria p.28/128
Tema 4 Administracion
Particin 4
700K
Una nica
cola de entrada
Particin 3
Particin 3
400K
Particin 2
Particin 2
Particin 1
Particin 1
Sistema
operativo
(a)
100K
0
Sistema
operativo
(b)
de la memoria p.30/128
Tema 4 Administracion
2. Particin de la memoria
Particiones dinmicas
Particiones variables en nmero y longitud
Al cargar un proceso se le asigna exactamente tanta
memoria como necesita
de la memoria p.31/128
Tema 4 Administracion
de la memoria p.32/128
Tema 4 Administracion
2. Particiones de memoria
Sistema de colegas
Presenta un equilibrio razonable para superar las
desventajas de los esquemas de particin fija y variable
Los bloques de memoria disponibles son de tamao
2K , con L K U , donde:
2L = tamao de bloque ms pequeo asignable
2U = tamao de bloque ms grande asignable
de la memoria p.34/128
Tema 4 Administracion
de la memoria p.35/128
Tema 4 Administracion
de la memoria p.36/128
Tema 4 Administracion
de la memoria p.37/128
Tema 4 Administracion
de la memoria p.38/128
Tema 4 Administracion
2. Particin de memoria
Relocalizacin y proteccin
Un proceso puede ser colocado en distintas particiones
al ser reanudado o desplazado se tiene que utilizar
cdigo relocalizable y realizar el enlace en la ejecucin
Para solventar este problema se distinguen varios tipos
de direcciones:
Direccin lgica referencia a una posicin de memoria
independiente de la asignacin actual de datos a la memoria
Direccin relativa se expresa como una posicin relativa a
algn punto conocido, normalmente el principio del programa
Direccin fsica o absoluta posicin real en la memoria
principal
de la memoria p.39/128
Tema 4 Administracion
de la memoria p.40/128
Tema 4 Administracion
2. Particin de memoria
Administracin de memoria
Cmo se controlan los huecos de memoria?
Mapas de bits
La memoria se divide en unidades de asignacin y a cada
unidad de asignacin le corresponde un bit del mapa de bits
El bit es
0 si la unidad est desocupada
1 si est ocupada
Listas enlazadas
Mantener una lista enlazada de segmentos de memoria
asignados y libres, donde un segmento es un proceso o un
hueco entre dos procesos
de la memoria p.41/128
Tema 4 Administracion
16
E
24
(a)
11111000
P 14 4
P 26 3
H 29 3
11111111
11001111
11111000
H 18 2
Hueco Comienza
en 18
(b)
P 20 6
Longitud 2
Proceso
(c)
ndice
3. Memoria virtual con paginacin
3.1. Paginacin (Tanenbaum [4.3])
3.2. Tablas de pginas (Tanenbaum [4.3])
3.3. Algoritmos de reemplazo de pginas (Tanenbaum [4.4])
3.4. Aspectos del diseo para los sistemas de
paginacin (Tanenbaum [4.6])
de la memoria p.43/128
Tema 4 Administracion
3. Memoria virtual
Memoria virtual el tamao combinado del
programa, sus datos y su pila podra exceder la
cantidad de memoria fsica que se le puede asignar. El
sistema mantiene:
Las partes del proceso que se estn usando en
memoria principal
El resto del proceso en disco
Paginacin Una de las tcnicas de memoria virtual
ms usadas que permite ejecutar programas ms
grandes que la memoria fsica disponible de forma
transparente al programador
Direcciones virtuales generadas por el programa
de la memoria p.44/128
Tema 4 Administracion
3.1 Paginacin
Las direcciones virtuales constituyen el espacio de
direcciones virtual
Espacio de direcciones virtual mayor al de direcciones
fsicas
La unidad de administracin de memoria (MMU)
traduce las direcciones virtuales en direcciones fsicas
Tarjeta
de la CPU
CPU
Unidad de
administracin Memoria
de la memoria
(MMU)
Controlador
de disco
Bus
La MMU enva las
direcciones fsicas a la memoria
de la memoria p.45/128
Tema 4 Administracion
de la memoria p.46/128
Tema 4 Administracion
Ejemplo de paginacin
Espacio de
direcciones
Virtuales
60K-64K
56K-60K
52K-56K
48K-52K
44K-48K
40K-44K
36K-40K
32K-36K
28K-32K
24K-28K
20K-24K
16K-20K
12K-16K
8K-12K
4K-8K
0K-4K
Pgina virtual
Direcciones
de memoria
fsica
28K-32K
24K-28K
20K-24K
16K-20K
12K-16K
8K-12K
4K-8K
0K-4K
Marco de pgina
Direccin fsica
8192
8192
24576
20500=5*4096+20
12308=3*4096+20
24650=6*4096+74
?
de la memoria p.47/128
Tema 4 Administracion
Fallo de pgina
Problema: espacio de direcciones virtual ms grande
que la memoria fsica
Bit presente/ausente controlar qu pginas estn
presentes en memoria
Qu sucede si no hay asociacin pgina/marco?
Fallo de pgina
1. La MMU detecta que la pgina no tiene correspondencia
2. La MMU provoca un fallo de pgina (interrupcin)
3. S.O. escoge un marco que no se est usando mucho (si es
necesario vuelve a escribir su contenido en disco)
4. Trae la nueva pgina a ese marco
5. Modifica la tabla de pginas
6. Reinicia la instruccin
de la memoria p.48/128
Tema 4 Administracion
de la memoria p.49/128
Tema 4 Administracion
Desplazamiento
Tabla de
pginas
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
000
000
000
000
111
000
101
000
000
000
011
100
000
110
001
010
0
0
0
0
1
0
1
0
0
0
1
1
1
110
1
1 Bit presente/
ausente
1
Direccin
fsica
de salida
(24580)
El ajuste de 12
bits se copia de
forma directa
de la entrada
a la salida
Pgina virtual = 2
Se utiliza como ndice
en la tabla de pginas
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
Direccin
virtual
de entrada
(8196)
de la memoria p.51/128
Tema 4 Administracion
Nmero de marco
Bits presente/ausente 1 entrada vlida, 0 no est en memoria
Bits de proteccin tipos de acceso permitido
Bit modificado
Bit referenciado o solicitado se ha referenciado a la pgina
Caching desactivado para mapeo en memoria evitar el uso de
la cach para los contenidos de esa pgina
Ocultacin
desactivada Modificado
Presente/Ausente
Referenciado
Proteccin
de la memoria p.52/128
Tema 4 Administracion
10
12
PT1 PT2 Ajuste
(a)
Tabla de
pginas para
los 4MB
superiores
de memoria
Tabla de pginas
de nivel superior
6
5
4
3
2
1
0
1023
6
5
4
3
2
1
0
Hacia las
pginas
est la pgina
(b)
de la memoria p.54/128
Tema 4 Administracion
Protection
RW
R X
RW
RW
R X
R X
RW
RW
Page frame
31
38
29
62
50
45
14
75
Modified
1
0
1
1
0
0
1
1
Virtual page
140
20
130
129
19
21
860
861
Valid
1
1
1
1
1
1
1
1
No de pgina
Bit de modificado
Bit de proteccin
No de marco de pgina
Bit de validez
de la memoria p.55/128
Tema 4 Administracion
de la memoria p.57/128
Tema 4 Administracion
de la memoria p.58/128
Tema 4 Administracion
de la memoria p.60/128
Tema 4 Administracion
de la memoria p.61/128
Tema 4 Administracion
de la memoria p.62/128
Tema 4 Administracion
de la memoria p.63/128
Tema 4 Administracion
0
A
3
B
7
C
8
D
12
E
14
F
15
G
18
H
Pgina de carga
ms reciente
(a)
3
B
7
C
8
D
12
E
14
F
15
G
18
H
20
A
A se considera como
una pgina recin cargada
(b)
de la memoria p.64/128
Tema 4 Administracion
E
H
F
G
de la memoria p.65/128
Tema 4 Administracion
de la memoria p.66/128
Tema 4 Administracion
Pgina
0 1 2 3
0 0 1 1
Pgina
0 1 2 3
0 0 0 1
Pgina
0 1 2 3
0 0 0 0
Pgina
0 1 2 3
0 0 0 0
1 0
2 0
3 0
(a)
(c)
(b)
(d)
(e)
(f)
(g)
(h)
(i)
(j)
de la memoria p.67/128
Tema 4 Administracion
1 0 1 0 1 1
1 1 0 0 1 0
1 1 0 1 0 1
1 0 0 0 1 0
0 1 1 0 0 0
Pgina
0
10000000
11000000
11100000
11110000
01111000
00000000
10000000
11000000
01100000
10110000
10000000
01000000
00100000
00100000
10001000
00000000
00000000
10000000
01000000
00100000
10000000
11000000
01100000
10110000
01011000
10000000
01000000
10100000
01010000
00101000
(a)
(b)
(c)
(d)
(e)
de la memoria p.69/128
Tema 4 Administracion
de la memoria p.70/128
Tema 4 Administracion
de la memoria p.71/128
Tema 4 Administracion
Edad
10
7
5
4
6
3
9
4
6
2
5
6
12
3
5
6
A0
A1
A2
A3
A4
A6
B0
B1
B2
B3
B4
B5
B6
C1
C2
C3
A0
A1
A2
A3
A4
A5
B0
B1
B2
A6
B4
B5
B6
C1
C2
C3
(b)
(c)
de la memoria p.72/128
Tema 4 Administracion
de la memoria p.74/128
Tema 4 Administracion
de la memoria p.76/128
Tema 4 Administracion
ndice
4. Memoria virtual con segmentacin (Tanenbaum [C4.8])
4.1. Segmentacin
4.2. Segmentacin paginada
4.3. Memoria virtual en el Intel Pentium
de la memoria p.78/128
Tema 4 Administracion
de la memoria p.80/128
Tema 4 Administracion
de la memoria p.81/128
Tema 4 Administracion
Paginacin
Segmentacin
No
Si
Muchos
No
No
No
de la memoria p.82/128
Tema 4 Administracion
N de pgina
Desplazamiento
de la memoria p.83/128
Tema 4 Administracion
de la memoria p.84/128
Tema 4 Administracion
de la memoria p.85/128
Tema 4 Administracion
13
ndice
0 = GDT/1 = LDT
0: Segmento de 16 bits
1: Segmento de 32 bits
0: Li en bytes
1: Li en pginas
GD 0
Lmite
16-19 P DPL
Base 0-15
Tipo
Base 16-23
Lmite 0-15
32 Bits
4
0
Direccin
relativa
Selector
Descriptor
Direccin base
Lmite
Otros campos
10
Linear address
10
12
Dir
Page
Offset
(a)
Page table
Page directory
Page frame
Word
selected
1024
Entries
Offset
Dir
Page
Directory entry
points to
page table
Page table
entry points
to word
(b)
de la memoria p.89/128
Tema 4 Administracion
ndice
7. Gestin de la memoria en Linux (Tanenbaum [C10.4.3])
7.1. Conceptos fundamentales
7.2. Administracin de memoria fsica
7.3. Algoritmo de reemplazo de pginas
de la memoria p.90/128
Tema 4 Administracion
de la memoria p.92/128
Tema 4 Administracion
20K
8K
0
Stack pointer
Unused
memory
Stack pointer
Process B
Physical memory
Process A
BSS
BSS
Data
Text
OS
Data
Text
(a)
(b)
(c)
24K
8K
0K
de la memoria p.93/128
Tema 4 Administracion
Directory
Page
middle
directory
Middle
Word selected
Page
table
Page
Offset
Virtual address
de la memoria p.95/128
Tema 4 Administracion
de la memoria p.96/128
Tema 4 Administracion
de la memoria p.97/128
Tema 4 Administracion
de la memoria p.98/128
Tema 4 Administracion
de la memoria p.104/128
Tema 4 Administracion
ndice
6. Gestin de la memoria en Windows 2000 (Tanembaum C11.5.1
y C11.5.3)
de la memoria p.107/128
Tema 4 Administracion
Process B
Process C
Nonpaged pool
Paged pool
Nonpaged pool
Paged pool
Nonpaged pool
Paged pool
HAL + OS
HAL + OS
HAL + OS
System data
System data
System data
Process A's
private code
and data
Process B's
private code
and data
Process C's
private code
and data
4 GB
2 GB
0
Bottom and top
64 KB are invalid
de la memoria p.111/128
Tema 4 Administracion
Conceptos fundamentales
Una pgina virtual puede estar en tres estados
posibles:
Libre no se est usando
Una referencia a ella provoca un fallo de pgina
Conceptos fundamentales
Zona de intercambio
No se asigna hueco en la zona de intercambio a las
pginas comprometidas que no tienen un lugar natural
en el disco
Slo asigna hueco de intercambio a una pgina
comprometida cuando es necesario llevarla a disco
Inconveniente: aumenta la complejidad, porque es posible que
los mapas de los ficheros de paginacin tengan que traerse a
memoria durante un fallo de pgina, lo que podra causar varios
fallos de pgina adicionales
Ventaja: no es necesario asignar hueco a las pginas que nunca
se paginan
Conceptos fundamentales
Entradas de la tabla de pginas
Las entradas de la tabla de pginas son diferentes
dependiendo de la arquitectura
Las pginas sin correspondencia tambin tienen
entradas diferentes
Los bits ms importantes son el A, la pgina ha sido
referenciada, y el D, la pgina ha sido modificada
Un ejemplo de una entrada de pginas de un Pentium:
Bits
20
Page frame
1 1 1 1 1 1 1 1 1
W
Not
GL D A C
UWV
used
t
de la memoria p.115/128
Tema 4 Administracion
Conceptos fundamentales
Fallos de pgina
5 categoras de fallos de pgina:
1. La pgina no est comprometida irrecuperable
2. Hubo una violacin de proteccin irrecuperable
3. Se ha escrito una pgina compartida copiar la pgina en un
nuevo marco y aplicarle correspondencia de lectura/escritura
4. La pila necesita crecer asignarle un nuevo marco de pgina y
aplicarle correspondencia en memoria, pero se necesita que est
lleno de 0
5. La pgina est comprometida pero no tiene correspondencia
se localiza la pgina y se le aplica correspondencia en memoria
de la memoria p.116/128
Tema 4 Administracion
de la memoria p.119/128
Tema 4 Administracion
de la memoria p.121/128
Tema 4 Administracion
Top
ModStandby
Free
Zeroed
ified
page
page
page
page Modified list Dealloc(5) list
list
Zero
list
page
page
writer(4)
thread (7)
Bad
RAM
page
list
Bottom
Page evicted from a working set (1)
de la memoria p.123/128
Tema 4 Administracion
de la memoria p.127/128
Tema 4 Administracion
List headers
Standby
Modified
Free
Zeroed
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Clean
Dirty
Clean
Active
Clean
Dirty
Active
Dirty
Free
Free
Zeroed
Active
Zeroed
Active
Zeroed
Cnt WS Other
PT
Next
X
X
20
4
X
X
6
14
de la memoria p.128/128
Tema 4 Administracion