Professional Documents
Culture Documents
• Esquemas no contiguos:
– Paginación
– Segmentación
– Segmentación paginada
Memoria Virtual: paginación por
demanda
SOI
1
Conceptos generales
hardware
Jerarquía de
memoria:
Las cachés.
Tiempo efectivo
de acceso.
SOI
2
Jerarquía de Memoria
Caché(s)
Hardware
Bus de memoria Bus de E/S
SOI
6
Conceptos generales
software
Requisitos de la gestión de
memoria.
Niveles de gestión de
memoria.
Compilación de programas:
Enlace y carga.
Espacios de direcciones:
lógico y físico:
Traducción de direcciones
Apoyo hardware a la
traducción: la MMU
SOI
7
Requisitos de la gestión
de memoria (i)
El SO asigna memoria a los procesos para su
ejecución, garantizando:
Protección:
Contrapuestos
SOI
9
Niveles de gestión
de memoria
Existen dos niveles: Proceso
Gestor de memoria Gestor de
del SO -asigna Nuestro
memoria del
proceso
porciones de objetivo
brk
memoria al proceso
Gestor de memoria Gestor de
del proceso -gestiona memoria
estas porciones (p. ej. del SO
a través de malloc y SO
free).
SOI
10
Procesamiento
de un programa
Etapas por las que pasa un programa
Módulos
Fuentes antes de cargarse en memoria.
Módulos Bibliotecas
Traductor Objetos de sistema
dinámicas
Editor de Programa
Enlaces Absoluto
Bibliotecas Programa
de sistema Cargador Ejecutable
SOI
11
Compiladores, enlazadores
y cargadores
Compiladores y ensambladores: Sus
salidas contienen direcciones reubicables
y referencias externas.
Enlazadores: resuelven las referencias
externas de las subrutinas compiladas o
ensambladas por separado.
Cargadores: ligan direcciones reubicables
a direcciones absolutas.
SOI
12
Ligadura de direcciones
SOI
15
Cuando hacer ligadura (ii)
Tiempo de carga:
Se genera código reubicable si no se
conoce la ubicación en memoria en
tiempo de compilación.
El procesador debe disponer al menos
de un registro de reubicación, que
contendrá la dirección de inicio del
programa. El SO carga el programa en
memoria y ajusta el registro de
reubicación.
SOI
16
Cuando hacer ligadura (iii)
Tiempo de ejecución:
Si la ligadura se retrasa hasta la
ejecución del proceso, este puede
moverse durante su ejecución de una
zona de memoria a otra.
Necesitamos soporte hardware para la
correspondencia de direcciones. Lo
veremos para el caso de segmentación
y paginación.
SOI
17
Ligaduras dinámicas
Caché Caché
virtual Caja de real
Memoria
CPU Traducción
Física
(MMU)
L/E datos
(sin traducir)
SOI
21
Unidad de Gestión
de Memoria
MMU (Memory Management Unit) – disposi-
tivo hardware que traduce direcciones
virtuales en direcciones físicas. También
implementa protección.
El hardware determina la forma en la que el
SO gestiona la MMU.
En el esquema MMU más simple, el valor del
registro de reubicación se añade a cada
dirección generada por el proceso de usuario
al mismo tiempo que es enviado a memoria.
SOI
22
MMU
Microprocesador
CPU “Violación de
acceso”:
Dirección - No presente
Memoria virtual
- Usuario/kernel
- Escritura
- Lectura
- Ejecución
MMU
Controlador
de memoria Dirección
física Excepción
Bus instrucciones/datos
SOI
23
Esquemas simples de
asignación
Gestión de memoria en
sists. multiprogramados:
Asignación estática.
Asignación dinámica.
Intercambio
Fragmentación
Compactación
SOI
24
Organización contigua
del almacenamiento
En este apartado veremos esquemas de
asignación contigua, es decir, la memoria
principal asignada a un proceso es un
único bloque de memoria contigua.
En el tema siguiente, veremos esquemas
de asignación no contigua, es decir,
permitimos que el programa este dividido
en bloques, o segmentos, que se pueden
colocar en zonas no necesariamente
contiguas de memoria principal.
SOI
25
Particiones
Fragmentación Memoria
Memoria no utilizada
SOI
29
Fragmentación interna
Memoria
Fragmentación interna:
la memoria asignada es
mayor que la usada; la Partición fija
diferencia entre ambas
es memoria interna a
una partición que no se Partición
Proceso fija
usa.
Se produce cuando se
asigna memoria en
particiones fijas. Memoria no utilizada
SOI
30
Compactación
SO SO
10 K 10 K
Tarea 1(8KB) 18 K Tarea 1(8KB)
18 K
19456 Load 4, 53248
30 K
31744 Load 4, 53248 40960 37
50 K
53248 37
62 K
80 K
Registro Tarea 2 (16KB)
reubicación 92 K
00000 Tarea 2 (16KB) Registro
reubicación
SOI -12288
32
Intercambio (swapping)
SOI
35
Protección y reubicación
¿Cómo aseguramos la protección? y
¿Cómo reubicamos los procesos?
Necesitamos dos registros: el registro
base y límite. En cada load y store:
Reubicación:
Direc. Física = Direc. Virtual + Reg. Base
Protección – comprobar que la dirección
cae en el rango [base,límite).
SOI
36
Registros base y límite
CPU Memoria
BASE BASE +
LIMITE
MEMORIA
Dirección
CPU >= <
No No
Trampa al SO de error
de direccionamiento
SOI
38
Pros y contras de los
registros base y límite
Pros: Económico Contras: ¿ cómo … SO
en términos de: aumentar la gcc
memoria de un
emac
Registros: sólo
dos. proceso, ó
Ciclos – suma y compartir módulos
comparación. y protegerlos
adecuadamente?
Solución: asignación no contigua … a
continuación
SOI
39
Organizaciones no
contiguas
Paginación
Segmentación
Segmentación
paginada
Ejemplo: Intel x86
SOI
40
Idea básica
Ideas básicas
Traducción de direcciones
Búfer de reconocimiento
de traducciones
Protección de memoria
Reducción de la TP en
memoria:
Paginación multinivel
SOI
42
Paginación: ideas básicas
SOI
44
Traducción:
Tabla de páginas
Dirección Dirección
virtual física
MMU
p d m d
Marco m
CPU
d
m
p
m Bits
p = nº página adicionales
d =desplazamiento Memoria
m= nº marco
Tabla de páginas
SOI
47
Un ejemplo sencillo
Marcos
Direc. virtual 00000
00110 Páginas 0
00100
0 1 001
1 Página 0
00000
Página 0 4 100
01000
00100
1 2
Página 1 2 3 011 01100
01000 3 Página 2
Página 2 3 5 110 10000
01100 4 Página 1
Página 3 Tabla de 11000
páginas 5 Página 3
Espacio
lógico 10010 Memoria física
SOI Direc. física
48
Implementación
de la TP
Memoria
Microprocesador marco
dato d
CPU Excepción m
Dirección
virtual
SO
MMU
TP
b b
p d
RLTP m a+p
Dirección a a
física a
m+| d
p RBTP
SOI
Bus instrucciones/datos
50
Búfer de reconocimiento
de traducciones
Cada acceso a una instrucción/dato requiere
dos accesos a memoria: uno a la TP y otro a
la instrucción/dato.
Para reducir el tiempo de acceso se introduce
una caché hardware rápida denominada Búfer
de reconocimiento de traducciones (TLB
-Translation Look-aside Buffer).
La traducción ahora se realiza:
➊ Si existe ya en el TLB, tenemos el marco.
➋ Si no, la buscamos en la TP y ajustamos
el TLB.
SOI
51
TLB: implementación
1 1
Comparador
CPU
Memoria
p d f d
Acierto Tabla de
TLB páginas
TLB
p f f
Fallo
TLB
SOI
54
Localidad de referencia
Tiempo
SOI
55
Tiempo de Acceso Efectivo
Despreciable
τ=100ns Para valore altos de α
ε=20ns TAE=122ns
α=98% ¡Sólo 22% penalización!
SOI
56
Protección de memoria
SOI
61
Paginación a dos
niveles (cont.)
d1 d2 desp.
...
...
...
... Memoria
Tabla de páginas
de primer nivel
Tablas de páginas
de segundo nivel
SOI
62
Rendimiento
Definición
Traducción de
direcciones
Características
Segmentación paginada
SOI
65
Segmentación
Soporta mejor la
visión de memoria del S1
S1
usuario: un programa
S2 S4
es una colección de
unidades lógicas – S3
segmentos: S3
procedimientos, S4 S2
funciones, pila, tabla
de símbolos, matrices, Espacio de Memoria
etc. usuario física
SOI
66
Segmentación (cont.)
Una dirección lógica es una tupla:
<número_de_segmento, desplazamiento>
La Tabla de Segmentos aplica direcciones
bidimensionales definidas por el usuario
en direcciones físicas de una dimensión.
Cada entrada de la tabla tiene los
siguientes elementos:
base - dirección física donde reside el
inicio del segmento en memoria.
límite - longitud del segmento.
SOI
67
Traducción en
segmentación
Error
Dirección Dirección
virtual lineal
CPU s d b+d<l b+d
Si
s
s = nº segmento l b
d = desplazamiento
b = base
l = longitud
Tabla de
segmentos Memoria
SOI
68
Implementación de la
tabla de segmentos
Para acceder a la TS del sistema o de un
proceso necesitamos los registros:
Registro Base de la Tabla de Segmentos
(STBR) apunta a la posición en memoria
de la tabla de segmentos.
Registro Longitud de la Tabla de
Segmentos (STLR) indica el número de
segmentos usados por el programa; el
número de segmento s es legal si
s<STLR.
SOI
69
Características
SOI
72
Ejemplo: Intel 80x86
Dirección
lineal Si Traducción
Traducción Pagi.
segmentos activa páginas
Tabla de descrip- No
tores de segmento Dirección física
SOI
74
Paginación
Directorio de páginas
CR3
Una tabla de páginas
PFN 31 11 0
PFN
31 21 11 0
DIR PAGE OFFSET
Dirección virtual 31 11 0
Dirección física PFN OFFSET
SOI
75
PTEs en el Intel x86
31 12 8 7 6 5 4 3 2 1 0
PFN DA U WP
Paginación por
demanda
Falta de página
Sustitución de
páginas
Conjunto activo
(de trabajo)
SOI
77
Memoria virtual es ...
SOI
79
Memoria Virtual
Características
Faltas de páginas
Sustitución de
páginas
Rendimiento
SOI
81
Características
1º ld 0x32, r2
CPU
2º
6º VB
Disco 5º Tabla
0
de
3º Páginas
Gestor
Falta Página
4º del SO
SOI
85
Otros usos del
bits de validez
En ocasiones puede que una página este
en memoria pero el SO haya desactivado
el bit de validez.
Esto le permite al SO:
Simular en soft el bit de referencia.
Implementar la copia-sobre-escritura
(copy-on-write) – mecanismo que para
ahorrar memoria permite compartir
páginas y duplicarlas cuando se intenta
escribir en en ellas.
SOI
86
¿si no hay marcos libres?
... Sustitución de páginas
SOI
89
Algoritmos de sustitución
Definiciones
Algoritmo óptimo
“ LRU
Aproximación: el
algoritmo del reloj
Asignación de marcos
SOI
90
Definiciones
SOI
94
Algoritmo LRU
SOI
96
LRU : implementaciones
SOI
97
Algoritmo del reloj
Necesitamos:
1 bit de referencia (inicialmente a 0).
Marcos candidatos en lista circular
Un puntero (la manecilla del reloj).
A partir de la posición actual de la manecilla:
Si la pg. tiene bit=1, se pone a 0 (se le da
una segunda oportunidad).
Se avanza la manecilla, y seguimos en 1.
Se sustituye la primera que encontramos
con el bit=0. Se avanza la manecilla.
SOI
98
Algoritmo del reloj:
ejemplo
3 Nº marco 3
página 4 página 4
ref.=1 ref.=0
2 0 2 0
página 3 página 1 página 3 página 5
ref.=1 ref.=1 ref.=0 ref.=1
1 1
página 2 página 2
ref.=1 ref.=0
Si un proceso no tiene
“suficientes” páginas,
la tasa de faltas es alta Conducta
esperada
→ baja uso de la CPU
Producción
→ el SO incrementa el
grado de multiprogra-
mación → más faltas
de páginas → ... Conducta
real
Hiperpaginación =
sistema ocupado en Grado de
traer/sacar páginas. multiprogramación
SOI
102
¿ A qué se debe ?
SOI
106
Propiedades del WS
t
SOI
107
WS e hiperpaginación
SOI
109
Algoritmo Frecuencia
de Faltas de Página
PFF es una estimación
del |WS|.