Gestión de Memoria en Sistemas Operativos
Gestión de Memoria en Sistemas Operativos
Objetivos
Dirección CPU
P1 lógica
Memoria
0000 física
Mapa de
código memoria del
MMU
proceso en
ejecución
datos
Dirección
física
Bus
pila
1.- Conceptos básicos Todo sistema operativo debe ofrecer alguna solución para estos
problemas:
2.-
2.- Gestión de memoria Memoria
El problema de gestión de la memoria
– Reubicación física
P1
El problema de la reubicación – Escasez
P1
El problema de la escasez de memoria – Protección 0000
Memoria
El problema de la asignación – Asignación
P2
lógica
P2
3.- Asignación contigua
0000
4.- Asignación dispersa Memoria
P1
lógica
5.- Memoria virtual Pn
Pn
0000
Memoria
lógica
7 8
El problema de la reubicación El problema de escasez de la memoria
5000
Registro
base
9 10
Memoria física
Memoria virtual memoria primaria
DISCO memoria lógica
MEMORIA
Proceso 1 swap out P2
Proceso 1
Proceso 2 Intercambio
swap in Proceso 2
con disco
Falta de
espacio
11 12
El problema de escasez de la memoria El problema de escasez de la memoria
Sistema Sistema
Stub printf [Link] Stub printf
operativo operativo
15 16
Asignación de la memoria Asignación de la memoria
Asignación contigua y asignación dispersa
Métodos de asignación
Memoria Memoria
física física – Asignación contigua (8.4) :
P1 memoria P1 memoria
lógica lógica
P1 Particiones fijas (8.4.2).
0000 0000
P1
Particiones variables (8.4.2)
P2
– Asignación dispersa:
P2 P2 Paginación (8.5).
memoria memoria P1
lógica P2 lógica
Segmentación (8.6).
0000 0000
P2
17 18
600 K
21 22
Contenidos La paginación
marcos
TEMA 3.- Gestión de la memoria 23 24
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 Número de marco físico
Bit de validez
Bits de protección (rwx)
1
Bit de modificado
N=2k 2m-k-1
25 26
CPU Marco 0
num. de página desplazamiento Dirección lógica – Espacio de direcciones físicas: 32 bytes
4
p d – Espacio de direcciones lógicas: 16 bytes
Marco 1
m bits – Tamaño de página: 4 bytes
memoria memoria 8 e
f
física lógica Marco 2
Tabla de páginas g
h
0 a 12
p 0 b Marco 3
c Tabla de
d.f. = f*N + d 4
d
e páginas 16
f f Marco 4
P2 g 5
h 20 a
8 m 2 b
n Marco 5 c
. 6 d
m
num. de marco desplazamiento Dirección física . 24
d f 12
- Marco 6
n
f d .
.
28
n bits Marco 7
N=2k
27 28
La paginación La paginación
memoria
física
Protección ([Link]) 0000 Análisis
– Un ejemplo Marco 0
– Ventajas
Marco 1 No aparece fragmentación externa .
memoria
Tabla de páginas Facilita la reubicación.
lógica Marco 2 Página 0
0000 Proporciona protección.
Página 0 Marco bits acc. bit val Marco 3 Página 1 – Inconvenientes
2 r v
Página 1 Marco 4 Página 2 Fragmentación interna.
3 r v
Página 2 Marco 5
P1 4 r v – Tamaños de página
Página 3 7 r v Marco 6
Grandes Æ mucha fragmentación interna.
Página 4 8 w v Marco 7 Página 3 Pequeños Æ tablas de página muy grandes.
Página 5 9 w v Marco 8
6143 Página 4
- r i
Marco 9 Página 5
- r i
10239
29 30
La paginación La paginación
f r v
31 32
La paginación La paginación
Memoria
Tabla de páginas en registros asociativos: (8.5.2) Tabla de páginas con TLB
física
TLB: Translation Look-aside Buffers
Los registros contienen: Dirección lógica
– clave. num. de página desplazamiento
CPU p d
– contenido.
La búsqueda se realiza por la clave en paralelo para todo el conjunto de
registros asociativos Marco bits bit
clave contenido acc. val
NO
f r v
... ... …
SI
MMU marco de página desplazamiento
f d
33 34
La paginación Contenidos
Pila
Pila SEGMENT Dirección física
dw 500
Pila ENDS n bits
37 38
La segmentación La segmentación
Traducción de direcciones (8.6.2)
La tabla de segmentos Dirección lógica CPU
– Contiene un descriptor por cada segmento. num. de segmento desplazamiento
s d
– Cada descriptor de segmento contiene, al menos:
Base del segmento: Memoria física
Límite: Tabla de segmentos
Otros, ... s
Codigo
base límite
Tabla de segmentos
La segmentación La segmentación
Facilidad para protección (8.6.4)
Análisis
Proceso P1 – Ventajas
No aparece fragmentación interna.
Límite Base Permisos
Dirección virtual Facilita la reubicación.
S ... ... RW C 1200
CPU Proporciona protección.
D 400 6300 RW
Segmento
MMU Muy Grandes Æ aproximación a particiones variables.
datos Muy Pequeños Æ eliminaría la fragmentación externa, pero aumentaría el
Segmento Error tamaño destinado a registros
WR código
Tamaño Fijo ÆPaginación
emacs
43 44
La segmentación Contenidos
La tabla de segmentos
– Base de la tabla de páginas.
num. de marco desplazamiento
– Tamaño del segmento f d’
47 48
La segmentación paginada Contenidos
...
900
929
Página de la ...
929
tabla de páginas 900
51 52
La paginación multinivel La paginación multinivel
Traducción de direcciones
Ejemplos reales de sistemas con paginación multinivel
num. de página desplazamiento – La arquitectura SPARC, con 32 bits de dirección soporta un esquema
p d
con 3 niveles de paginación.
– La arquitectura del Motorola 68030, con 32 bits de dirección soporta
p1 p2 d Dirección lógica 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.
p1
p2
Inconveniente:
Cada nivel de paginación requiere incrementar en uno el número de
accesos a memoria para acceder a una dirección física.
Tabla de páginas
de 1er nivel d
Página de
tabla de páginas de Dato al que se accede
2º nivel
53 54
57 58
Algoritmo de fallo de página: caso de página en disco (9.2) Reemplazo de páginas (9.4)
– Encontrar la página demandada en disco. – Si la memoria principal está completamente ocupada y se produce un
– Encontrar un marco libre: fallo de página:
Si existe un marco libre, utilizarlo. Una página ubicada en memoria principal, denominada víctima, debe
dejar su marco a la página demandada.
Si no, utilizar un algoritmo de reemplazo de páginas.
– Si el bit de modificación es 1 hay que salvar la víctima a disco (page out)
Si el bit de modificación es 1, escribir la víctima en disco (page out).
– Leer la página demandada sobre el marco de la víctima (page in)
Actualizar la tabla de páginas, invalidando la víctima, y la tabla de marcos.
– Leer la página demandada del disco (page in) y ubicarla en el marco
– Existen diversos algoritmos para seleccionar la víctima.
libre, actualizando la tabla de páginas y la tabla de marcos libres.
– Transferir control al proceso de usuario, reejecutando la instrucción
que provocó el fallo de página.
63 64
Contenidos Algoritmos de reemplazo de páginas
2 2 2 1 1 1 1 1 3 3 3 – Ventajas
Muy simple.
3 3 3 2 2 2 2 2 4 4
– Inconvenientes
4 marcos de página: 10 fallos de página (6 reempl.) Presenta la anomalía de Belady
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
67 68
Algoritmos de reemplazo de páginas Algoritmos de reemplazo de páginas
3 4 4 4 5 5 5 5 5 5 – Inconvenientes
Implementación imposible.
4 marcos de página: 6 fallos de página (2 reempl.)
1 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
69 70
Algoritmos de pila
Algoritmos de pila (9.5.1)
– FIFO no es un algoritmo de pila
– Definición
Garantiza que un conjunto de páginas mantenido con N marcos es un 3 marcos de página: 9 fallos de página (6 reempl.)
subconjunto del que se mantiene con N+1 marcos 1 2 3 4 1 2 5 1 2 3 4 5
– Propiedad 1 1 1 4 4 4 5 5 5 5 5 5
Si un algoritmo es de pila NUNCA presenta la anomalía de Belady 2 2 2 1 1 1 1 1 3 3 3
3 3 3 2 2 2 2 2 4 4
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
71 72
Algoritmos de reemplazo de páginas Algoritmos de reemplazo de páginas
73 74
1
Bit de páginas
referencia
75 76
Contenidos Asignación de marcos
Grado de multiprogramación
81 82
∆ ∆
t1 t2
Límite inferior --> Eliminar marcos
83 84