Objetivos
P1 P1 P2 P3
Memoria
CPU
Un
Fsica
P1 P2 P3 0000 Direcciones o
lgicas
Memoria
ceso
0000 0000 0000 Principal
a pro
Cad su cdigo cdigo cdigo
e
MMU
tien cin Mapa de memoria
direc 0000 Memoria del proceso en
a
lgic ejecucin
datos datos datos ??? Principal
Direcciones
fsicas
pila pila pila FFFF
FFFF Direcciones
Direcciones
fsicas fsicas
Bus
1.- Conceptos bsicos 7 1.- Conceptos bsicos 8
Contenidos El problema de gestin de la memoria
1.- Conceptos bsicos Todo sistema operativo debe ofrecer alguna solucin para estos
problemas:
2.-
2.- Gestin de memoria Memoria
El problema de gestin de la memoria
Reubicacin fsica
P1
El problema de la reubicacin Escasez
P1
El problema de la escasez de memoria Proteccin 0000
Memoria
El problema de la asignacin Asignacin
P2
lgica
P2
3.- Asignacin contigua
0000
4.- Asignacin dispersa Memoria
P1
5.- Memoria virtual
lgica
Pn
Pn
0000
Memoria
lgica
9 10
5000
Registro
base
11 12
El problema de escasez de la memoria El problema de escasez de la memoria
Disco
El mtodo de intercambios (swapping) (8.3) La tcnica de memoria virtual (9.1) memoria
secundaria
Memoria fsica
Memoria virtual memoria primaria
DISCO memoria lgica
MEMORIA
Proceso 1 swap out P2
Proceso 1
Proceso 2 Intercambio
swap in Proceso 2
con disco
Falta de
espacio
13 14
Sistema Sistema
Stub printf libX11.so Stub printf
operativo operativo
19 20
Asignacin de la memoria Asignacin de la memoria
Asignacin contigua y asignacin dispersa
Mtodos de asignacin
Memoria Memoria
fsica fsica Asignacin contigua (8.4) :
P1 memoria P1 memoria
lgica lgica
P1 Particiones fijas (8.4.2).
0000 0000
P1
Particiones variables (8.4.2)
P2
Asignacin dispersa:
P2 P2 Paginacin (8.5).
memoria memoria P1
lgica P2 lgica
Segmentacin (8.6).
0000 0000
P2
21 22
600 K
25 26
Contenidos La paginacin
marcos
TEMA 3.- Gestin de la memoria 27 28
La paginacin La paginacin
memoria
lgica
Estructura de una direccin lgica La tabla de pginas
Descriptor de pgina :
0 Nmero de marco fsico
Bit de validez
Bits de proteccin (rwx)
1
Bit de modificado
N=2k 2m-k-1
29 30
Direccin lgica
CPU Marco 0
num. de pgina desplazamiento Espacio de direcciones fsicas: 32 bytes
4
p d Espacio de direcciones lgicas: 16 bytes
Marco 1
m bits Tamao de pgina: 4 bytes
memoria memoria 8 e
f
fsica lgica Marco 2
Tabla de pginas g
h
0 a 12
p 0 b Marco 3
c Tabla de
d.f. = f*N + d 4
d
pginas 16
f e
f Marco 4
P2 g 5
h 20 a
8 m 2 b
n Marco 5 c
. 6 d
num. de marco desplazamiento Direccin fsica . 24 m
f d f 12
- Marco 6
n
d .
.
28
n bits Marco 7
N=2k
31 32
La paginacin La paginacin
memoria
fsica
Proteccin (8.5.2.2) 0000 Anlisis
Un ejemplo Marco 0
Ventajas
Marco 1 No aparece fragmentacin externa .
memoria
Tabla de pginas Facilita la reubicacin.
lgica Marco 2 Pgina 0
0000 Proporciona proteccin.
Pgina 0 Marco bits acc. bit val Marco 3 Pgina 1 Inconvenientes
2 r v
Pgina 1 Marco 4 Pgina 2 Fragmentacin interna.
3 r v
Pgina 2 Marco 5
P1 4 r v Tamaos de pgina
Pgina 3 Marco 6
7 r v Grandes mucha fragmentacin interna.
Pgina 4 8 w v Marco 7 Pgina 3 Pequeos tablas de pgina muy grandes.
Pgina 5 9 w v Marco 8 Pgina 4
6143
- r i
Marco 9 Pgina 5
- r i
10239
33 34
La paginacin La paginacin
f r v
35 36
La paginacin La paginacin
Memoria
Tabla de pginas en registros asociativos: (8.5.2) Tabla de pginas con TLB
fsica
TLB: Translation Look-aside Buffers
Los registros contienen: Direccin lgica
clave. num. de pgina desplazamiento
CPU p d
contenido.
La bsqueda 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 pgina desplazamiento
f d
37 38
Contenidos La segmentacin
Concepto de segmentacin (8.6)
1.- Conceptos bsicos
Definicin Memoria lgica
2.- Gestin de memoria Dividir el espacio de direcciones en Datos SEGMENT
Memoria fsica
fragmentos de longitud VARIABLE. :
3.- Asignacin contigua
Tipos de Segmento datox dw xx
Codigo
4.-
4.- Asignacin dispersa Cdigo
datoy dw yy
:
Paginacin (8.5) Datos Datos ENDS
Segmentacin (8.6) Pila
Tcnicas combinadas
Segmentacin paginada (8.7) Propiedades de los segmentos Datos
Codigo SEGMENT
Paginacin multinivel (8.5.3) :
Codigo ENDS
5.- Memoria virtual
Pila
Pila SEGMENT
dw 500
Pila ENDS
TEMA 3.- Gestin de la memoria 39 40
La segmentacin La segmentacin
Tabla de segmentos
Tabla de segmentos
Direccin fsica
n bits
41 42
La segmentacin La segmentacin
Memoria
Memoria
fsica
fsica
Traduccin de direcciones (8.6.2) Ejemplo de segmentacin
Direccin lgica CPU 0
num. de segmento desplazamiento
s d Memoria
Memoria 1400
pila virtual
virtual Segmento 0
Memoria fsica subrutina
Tabla de segmentos Segmento 3 2400
s Segmento 0
Codigo Tabla de segmentos 3200
base lmite tabla
de base lmite Segmento 3
sqrt
smbolos 0 1400 1000 4300
Datos Segmento 1 Segmento 4 1 6300 400 Segmento 2
SI 2 4300 400 4700
+ < programa 3 3200 1100 Segmento 4
NO principal 4 4700 1000
Pila 5700
Direccin fsica Segmento 2 6300
Segmento 1
43 6700 44
La segmentacin La segmentacin
Comparticin de segmentos Facilidad para proteccin (8.6.4)
0
Proceso P1 Segmento
pila 6300 Proceso P1
Lmite Base Datos P1
Segmento 6700 Lmite Base Permisos
S ... ... datos Direccin virtual
S ... ... RW C 1200
D 400 6300 Segmento CPU
cdigo 12300
D 400 6300 RW
C 21000 28400
emacs C 21000 28400 RO
Datos P2
WR
22300 Segmento
Proceso P2 Segmento
pila INTR
pila
Lmite Base
Segmento
MMU
Segmento
S ... ... datos datos
D 10000 12300 Segmento 28400 Segmento Error
cdigo
WR cdigo
C 21000 28400 emacs
emacs emacs
49400
45 46
La segmentacin La segmentacin
47 48
Contenidos La segmentacin paginada
100
... ... 708 p1
708 p2
... f rw- v
900
Tabla de pginas
929 de 1er nivel d
Pgina de
Pgina de la ... Dato al que
929 tabla de pginas de
tabla de pginas 900 se accede
2 nivel
55 56
La paginacin multinivel La paginacin multinivel
57 58
B1
63 64
Paginacin por demanda Paginacin por demanda
Fallo de pgina: caso de pgina en disco (9.2)
3: buscar pgina en el rea de swap Algoritmo de fallo de pgina: caso de pgina en disco (9.2)
Sistema 2: excepcin Encontrar la pgina demandada en disco.
Memoria
operativo primaria Encontrar un marco libre:
Tabla de pginas Memoria Si existe un marco libre, utilizarlo.
secundaria Si no, utilizar un algoritmo de reemplazo de pginas.
A Memoria Marco Validez Pgina 2 Si el bit de modificacin es 1, escribir la vctima en disco (page out).
lgica 4 1 Actualizar la tabla de pginas, invalidando la vctima, y la tabla de marcos.
0000 6- 0
1
Pgina 0 A0 A2 Leer la pgina demandada del disco (page in) y ubicarla en el marco
1 1
Pgina 1 5 1
Pgina 0 A1 A3 libre, actualizando la tabla de pginas y la tabla de marcos libres.
Pgina 2 0 0 Pgina 3 Transferir control al proceso de usuario, reejecutando la instruccin
Pgina 3 0 0 Pgina 1 que provoc el fallo de pgina.
0 0 4. Cargar pgina
(page in)
6: reiniciar
1: referencia
CPU instruccin
5: Actualizar tabla de pginas
65 66
Algoritmo FIFO 2 2 2 1 1 1 1 1 3 3 3
3 3 3 2 2 2 2 2 4 4
Algoritmo ptimo
4 marcos de pgina: 10 fallos de pgina (6 reempl.)
Algoritmo LRU
1 1 1 1 1 1 5 5 5 5 4 4
Algoritmo de aproximacin al LRU 2 2 2 2 2 2 1 1 1 1 5
Segunda oportunidad 3 3 3 3 3 3 2 2 2 2
4 4 4 4 4 4 3 3 3
69 70
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
71 72
Algoritmos de reemplazo de pginas Algoritmos de reemplazo de pginas
73 74
Algoritmos de pila
Algoritmo LRU (9.5.3)
FIFO no es un algoritmo de pila
Filosofa:
3 marcos de pgina: 9 fallos de pgina (6 reempl.) La vctima ser aquella pgina que hace ms tiempo que ha sido
1 2 3 4 1 2 5 1 2 3 4 5 REFERENCIADA.
1 1 1 4 4 4 5 5 5 5 5 5 Propiedades:
2 2 2 1 1 1 1 1 3 3 3 Es un algoritmo de pila.
3 3 3 2 2 2 2 2 4 4
4 marcos de pgina: 10 fallos de pgina (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 pginas Algoritmos de reemplazo de pginas
3 3 3 3 5 5 5 5 4 4
4 4 4 4 4 4 3 3 3
77 78
1
Bit de pginas
referencia
79 TEMA 3.- Gestin de la memoria 80
Asignacin de marcos Contenidos
Grado de multiprogramacin
83 84
Hiperpaginacin (thrashing) Hiperpaginacin (thrashing)
85 86
Hiperpaginacin (thrashing)
Nmero de marcos
87