Está en la página 1de 22

SO Sistemas operativos

Objetivos

1.- Introducir los conceptos y los problemas bsicos de la gestin de


memoria:
Gestin de la memoria Memoria lgica vs. memoria fsica
Asignacin de memoria a procesos
2.- Estudiar las tcnicas bsicas de asignacin dispersa:
Paginacin.
Segmentacin.
Combinacin de tcnicas
Equipo Sistemas Operativos DISCA/DSIC  Segmentacin Paginada
Universidad Politcnica de Valencia  Paginacin multinivel.
3.- Entender la gestin de memoria virtual: problemas a resolver,
implementacin y efectos sobre el rendimiento del sistema.

TEMA 3.- Gestin de la memoria 2

Indice y bibliografa Contenidos


 ndice
1.-
1.- Conceptos bsicos
1. Conceptos bsicos
 Memoria fsica vs. Memoria lgica
2. Gestin de memoria  La Unidad de Manejo de Memoria (MMU)
3. Asignacin contigua 2.- Gestin de memoria
4. Asignacin dispersa
3.- Asignacin contigua
5. Memoria virtual
4.- Asignacin dispersa
 Bibliografa 5.- Memoria virtual
A. Silberschatz, P.B. Galvin
Sistemas Operativos. Conceptos Fundamentales. 5 ed.
 Captulo 8: Apartados 8.1 (excepto 8.1.4), 8.2, 8.3, 8.4 (excepto 8.4.1),
8.5 (excepto 8.5.4, 8.5.5), 8.6 y 8.7 (excepto 8.7.1 y 8.7.2)
 Captulo 9: Apartados 9.1, 9.2, 9.3, 9.4, 9.5 (excepto 9.5.4.3), 9.6
(excepto 9.6.1) y 9.7 .
TEMA 3.- Gestin de la memoria 3 TEMA 3.- Gestin de la memoria 4
Memoria fsica vs. memoria lgica Memoria fsica vs. memoria lgica

 Memoria lgica de un proceso (8.2)  Memoria lgica de un proceso (8.2)

P1 P1 P2 P3

0000 0000 0000 0000


cdigo o cdigo cdigo cdigo
oces cin
a pr
Cad su direc
tiene 0000
a
lgic
datos datos datos datos

pila pila pila pila

1.- Conceptos bsicos 5 1.- Conceptos bsicos 6

Memoria fsica vs. memoria lgica La Unidad de Manejo de Memoria (MMU)


0000
ica i a
fs recc nic
00 n
00
di a

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

El problema de la reubicacin El problema de escasez de la memoria

 Reubicacin en tiempo de ejecucin: la MMU (8.1.1)  Por qu? (9.1)


Programa reubicable es aquel que puede ejecutarse en cualquier segmento Los procesos tienen una necesidad mayor de memoria.
de memoria fsica.
Aumentar el grado de multiprogramacin
Para permitir la reubicacin en tiempo de ejecucin es necesario un
Hardware especfico MMU
Ejemplo: MMU con registro base.  Tcnicas para solucionarlo:
Intercambios (Swapping)
MMU MEMORIA Memoria virtual
CPU
Bibliotecas dinmicas
or direccin direccin
ad + mov R1, R2 7000
ces lgica 2000 fsica 7000
o
Pr

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

El problema de escasez de la memoria El problema de escasez de la memoria


 Enlace esttico con bibliotecas  Enlace esttico con bibliotecas

Enlazado programa programa


programa programa Cargador
Compilador libreras ejecutable ejecutable
fuente objeto estticas

nombre.c La librera esttica nombre Carga el Memoria


se copia en nombre
#include <stdio.h> nombre.o 021402
ejecutable
#include <stdlib.h> nuestro programa 021402
nombre en Principal
#define LINSIZ 40 021402 cuando lo Bibliotecas 234123 Bibliotecas 234123
char *getline(char *); 234123 estticas 278761 estticas 278761 memoria
278761
compilamos del sistema 546781
main() {
345687
del sistema 546781 para
double reg = 0.0; 546781 345687
345687 ............. .............
convertirse
char line[LINSIZ]; Lib1.a Lib2.a
while (getline(line) != NULL) ............. Lib1.a Lib2.a en proceso
Lib2.a Lib1.a 024302 042302 024302 042302
{ ............. 010010010011
042302 024302 234223 333122 234223 333122 110010100110
333122 234223 678771 228764 678771 228764 111100111001
Bibliotecas 228764 678771 447781 556783 447781 556783 100011110101
111100011100
estticas 556783 447781 345685 445686 345685 445686 010101001101
445686 345685 ............. ............. ............. ............. 001111001010
del sistema
............. ............
15 16
El problema de escasez de la memoria El problema de escasez de la memoria

 Bibliotecas dinmicas (8.1.3)  Bibliotecas dinmicas (8.1.3)


Memoria Memoria
P1 T. func. bib.
Memoria fsica fsica
printf
lgica P1
0000 P1 (3)
P1

libX11 Rutina cargador


libX11.so (2)
libX11.so
P2 Memoria
lgica call printf
(1)
0000
P2
Sistema
Stub printf
libX11
operativo
17 18

El problema de escasez de la memoria El problema de escasez de la memoria

 Bibliotecas dinmicas (8.1.3)  Bibliotecas dinmicas (8.1.3)

T. func. bib. Memoria T. func. bib. Memoria


printf fsica printf fsica
P1 P1
(3)
P1 (6) P1

Rutina cargador Rutina cargador


(2) (4)
(5)
libX11.so libX11.so

(1) call printf call printf

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

Contenidos Mtodo de mltiples particiones fijas

1.- Conceptos bsicos  Memoria dividida en particiones de diferente tamao


2.- Gestin de memoria  Cola nica / mltiples colas
3.-
3.- Asignacin contigua  Problema: Fragmentacin interna sistema
 Mtodo de mltiples particiones fijas COLA DE operativo
 Mtodo de mltiples particiones variables PROCESOS
100 K
4.- Asignacin dispersa P1 100 K
5.- Memoria virtual P4 necesita un hueco que ha sido P2 100 K
ocupado por un proceso que P3 100 K 400 K
desperdicia gran parte de su espacio.
P4 500 K
P5 400 K

600 K

TEMA 3.- Gestin de la memoria 23 24


Mtodo de mltiples particiones variables Mtodo de mltiples particiones variables

 Algoritmos de asignacin de huecos


P1 P1 P1 El primer ajuste
COLA DE
PROCESOS El mejor ajuste
El peor ajuste
P1 600 K
P2 P4 P4
 Problema: Fragmentacin externa
P2 1000 K P1
Solucin: Compactacin coste: 1900
P3 300 K P1
P3 P3 P3 P3 P4
P4 700 K P1 600 K
P5 700 K P2 1000 K P1 P3
P3 300 K P4
Asignacin Asignacin P3
P2 acaba P1 acaba P3
P1, P2,P3 P4
P4 coste: 300

25 26

Contenidos La paginacin

1.- Conceptos bsicos  Concepto bsico (8.5)


Dividir el espacio de direcciones en memoria
2.- Gestin de memoria fsica
fragmentos de longitud FIJA.
3.- Asignacin contigua  Pginas. memoria
P2 lgica
4.-
4.- Asignacin dispersa  Marcos.
 Paginacin (8.5)
 Segmentacin (8.6)
 Tcnicas combinadas
Segmentacin paginada (8.7)
Paginacin multinivel (8.5.3)

5.- Memoria virtual pginas

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

num. de pgina desplazamiento d p Tabla de pginas


p d
Descriptor de pgina
m-1 k-1 0
nmero de bit bits bit otros
m bits ... marco validez proteccin modificado ...
m-k bits k bits

N=2k 2m-k-1

29 30

La paginacin La paginacin memoria


fsica

 Traduccin de direcciones  Un ejemplo 0

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

 Implementacin de la tabla de pginas (8.5.2)  Tabla de pginas en memoria Memoria


fsica
Registros de la MMU
Memoria Direccin lgica
num. de pgina desplazamiento
TLB CPU p d

PTLR > PTLR > p ? Marco bits bit


NO acc. val
SI
PTBR + f r v
... ...

f r v

MMU marco de pgina desplazamiento


f d

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

 Estructura de una direccin lgica  La tabla de segmentos


Contiene un descriptor por cada segmento.
num. de segmento desplazamiento
s d Cada descriptor de segmento contiene, al menos:
 Base del segmento:
m bits  Lmite:
 Otros, ...

Tabla de segmentos
Tabla de segmentos

base lmite etc. Descriptor de segmento

base lmite otras

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

 Anlisis  Implementacin de la tabla de segmentos (8.6.3)


Ventajas Registros de la MMU
 No aparece fragmentacin interna. Memoria
 Facilita la reubicacin. TLB
 Proporciona proteccin.
Inconvenientes
 Fragmentacin externa.
Tamaos de segmento
 Muy Grandes  aproximacin a particiones variables.
 Muy Pequeos  eliminara la fragmentacin externa, pero aumentara el
tamao destinado a registros
 Tamao Fijo Paginacin

47 48
Contenidos La segmentacin paginada

1.- Conceptos bsicos  Motivacin (8.7)


Cuando los segmentos crecen:
2.- Gestin de memoria
 Aumenta la fragmentacin externa.
3.- Asignacin contigua  Aumenta el problema de encontrar un Lmite Base Otras
hueco libre en memoria para ubicarlo.
4.-
4.- Asignacin dispersa  Problema de asignacin dinmica de
segmento Tabla pginas protec, ..
 Paginacin (8.5) memoria debido a la diferencia de
 Segmentacin (8.6) tamao de los segmentos.

 Tcnicas combinadas  Solucin:


Segmentacin paginada (8.7) Paginar los segmentos  segmentacin
Paginacin multinivel (8.5.3) paginada
5.- Memoria virtual
 La tabla de segmentos
Base de la tabla de pginas.
Tamao del segmento

TEMA 3.- Gestin de la memoria 49 50

La segmentacin paginada La segmentacin paginada


 Traduccin de direcciones
Direccin lgica CPU  Anlisis
num. de segmento desplazamiento
s d Ventajas
 Ventajas de Segmentacin
p d  Ventajas de Paginacin
STBR >  Proporciona proteccin.
Inconvenientes
+ Tabla de segmentos Tabla pginas
p  Fragmentacin interna.
s
Longitud Base tabla pginas + f

num. de marco desplazamiento


f d
51 52
Contenidos La paginacin multinivel

1.- Conceptos bsicos  Motivacin (8.5.3)


2.- Gestin de memoria Para espacios de direcciones muy grandes, la tabla de pginas puede
ser excesivamente grande.
3.- Asignacin contigua
4.-
4.- Asignacin dispersa  Solucin:
 Paginacin (8.5)
 Segmentacin (8.6)
Paginar la propia tabla de pginas
 Tcnicas combinadas
Segmentacin paginada (8.7)
Paginacin multinivel (8.5.3)

5.- Memoria virtual

TEMA 3.- Gestin de la memoria 53 54

La paginacin multinivel Memoria


fsica
La paginacin multinivel
0
 La tabla de pginas paginada 1  Traduccin de direcciones
Tabla de num. de pgina desplazamiento
p d
Tabla de pginas pginas
de 1er nivel 100
1
... p1 p2 d Direccin lgica
500 500

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

 Ejemplos reales de sistemas con paginacin multinivel  Solucin:


La arquitectura SPARC, con 32 bits de direccin soporta un esquema Utilizar un TLB
con 3 niveles de paginacin.  i386 de Intel, tiene un TLB con 32 entradas y consigue una tasa de
aciertos del 98%
La arquitectura del Motorola 68030, con 32 bits de direccin soporta
Motorola 68030 tiene un TLB de 22 entradas.
un esquema con 4 niveles de paginacin. 

 Pentium de Intel tiene dos TLBs:


El Pentium de Intel, con 32 bits de direccin, soporta un esquema con el primero gestiona las pginas estndar de 4Kbytes y tiene una capacidad de
2 niveles de paginacin. 64 entradas.
el segundo para implementar pginas de 4Mb y tiene una capacidad de 8
entradas.
 Inconveniente:
Utilizar memoria cach para almacenar tablas de pginas. Con esto el
Cada nivel de paginacin requiere incrementar en uno el nmero de sistema se ralentizar, pero nicamente entre un 20% y un 40%.
accesos a memoria para acceder a una direccin fsica.

57 58

Contenidos Memoria virtual


 Concepto de memoria virtual (9.1)
1.- Conceptos bsicos
Paginacin por demanda.
2.- Gestin de memoria
Segmentacin por demanda.
3.- Asignacin contigua
4.- Asignacin dispersa  Ventajas
Aumentar el grado de multiprogramacin
5.-
5.- Memoria virtual
 Paginacin por demanda Aumentar el tamao de los programas
 Algoritmos de reemplazo Ahorro de memoria.
 Asignacin de marcos
 Inconvenientes
 Hiperpaginacin
Reducir el rendimiento del sistema si no se disea y sintoniza
adecuadamente.
Mayor complejidad.

TEMA 3.- Gestin de la memoria 59 60


Memoria virtual Contenidos
 Intercambios 1.- Conceptos bsicos
Memoria Virtual 2.- Gestin de memoria
A (lgica) 3.- Asignacin contigua
Memoria Secundaria
0000 4.- Asignacin dispersa
A0 A0 Memoria Principal 5.-
5.- Memoria virtual
(fsica)
 Paginacin por demanda
A1
A1
A0 A0 A0 B0  Algoritmos de reemplazo
B1  Asignacin de marcos
B A1 B1  Hiperpaginacin
B0
A1
0000
B0
B1

B1

61 TEMA 3.- Gestin de la memoria 62

Paginacin por demanda Paginacin por demanda

 Concepto de paginacin por demanda (9.2)  Fallos de pgina


Paginacin + Intercambios entre memoria principal y secundaria Definicin:
(swapping).  Se produce cuando referenciamos una pgina que tiene su bit de validez
igual a 0
Manejo de fallos de pgina
 Descriptores de pgina
 Pgina en disco.
Bit de validez Se carga la pgina en un marco
Bit de referencia  Error de acceso.
Bit de modificacin Se aborta el proceso
 Problema con las pginas compartidas.  El proceso crece y reclama nuevas pginas.
Si el SO lo permite, se le asigna una nueva pgina al proceso, se valida y se le
asigna un marco.

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

Paginacin por demanda Contenidos

 Reemplazo de pginas (9.4) 1.- Conceptos bsicos


Si la memoria principal est completamente ocupada y se produce un 2.- Gestin de memoria
fallo de pgina:
3.- Asignacin contigua
 Una pgina ubicada en memoria principal, denominada vctima, debe
dejar su marco a la pgina demandada. 4.- Asignacin dispersa
Si el bit de modificacin es 1 hay que salvar la vctima a disco (page out)
Leer la pgina demandada sobre el marco de la vctima (page in)
5.-
5.- Memoria virtual
 Paginacin por demanda
 Algoritmos de reemplazo
Existen diversos algoritmos para seleccionar la vctima.  Asignacin de marcos
 Hiperpaginacin

67 TEMA 3.- Gestin de la memoria 68


Algoritmos de reemplazo de pginas Algoritmos de reemplazo de pginas

 Algoritmo FIFO (9.5.1)


 Serie de referencias (9.5) 3 marcos de pgina: 9 fallos de pgina (6 reempl.)
1 2 3 4 1 2 5 1 2 3 4 5
 Algoritmos de sustitucin de pginas 1 1 1 4 4 4 5 5 5 5 5 5

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

Algoritmos de reemplazo de pginas Algoritmos de reemplazo de pginas

 Algoritmo ptimo (9.5.2)


 Algoritmo FIFO
3 marcos de pgina: 7 fallos de pgina (4 reempl.)
Filosofa
 La vctima ser aquella pgina que hace mas tiempo que ha sido 1 2 3 4 1 2 5 1 2 3 4 5
CARGADA en memoria. 1 1 1 1 1 1 1 1 1 3 4 4
Ventajas 2 2 2 2 2 2 2 2 2 2 2
 Muy simple.
3 4 4 4 5 5 5 5 5 5
Inconvenientes
 Presenta la anomala de Belady 4 marcos de pgina: 6 fallos de pgina (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

71 72
Algoritmos de reemplazo de pginas Algoritmos de reemplazo de pginas

 Algoritmo ptimo  Algoritmos de pila (9.5.1)


Filosofa Definicin
 La vctima es aquella pgina que se tardar ms en utilizar.  Garantiza que un conjunto de pginas mantenido con N marcos es un
Ventajas subconjunto del que se mantiene con N+1 marcos
 Ofrece un nmero de fallos mnimo. Propiedad
Inconvenientes  Si un algoritmo es de pila NUNCA presenta la anomala de Belady
 Implementacin imposible.

73 74

Algoritmos de reemplazo de pginas Algoritmos de reemplazo de pginas

 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

 Ejemplo algoritmo LRU


 Implementaciones del algoritmo LRU (9.5.3)
3 marcos de pgina: 10 fallos de pgina (7 reempl.)
Contadores
1 2 3 4 1 2 5 1 2 3 4 5 Cola
1 1 1 4 4 4 5 5 5 3 3 3
 Ventajas
2 2 2 1 1 1 1 1 1 4 4 Buena aproximacin al ptimo
3 3 3 2 2 2 2 2 2 5  Inconvenientes
Difcil de implementar
4 marcos de pgina: 8 fallos de pgina (4 reempl.)
Solucin:
1 1 1 1 1 1 1 1 1 1 1 5  Utilizar aproximaciones al algoritmo.
2 2 2 2 2 2 2 2 2 2 2

3 3 3 3 5 5 5 5 4 4

4 4 4 4 4 4 3 3 3

77 78

Algoritmos de reemplazo de pginas Contenidos


 Alg. segunda oportunidad
1.- Conceptos bsicos
1
0 2.- Gestin de memoria
3.- Asignacin contigua
1
0
4.- Asignacin dispersa

siguiente 0 vctima 5.-


5.- Memoria virtual
vctima  Paginacin por demanda
1  Algoritmos de reemplazo
 Asignacin de marcos
 Hiperpaginacin

1
Bit de pginas
referencia
79 TEMA 3.- Gestin de la memoria 80
Asignacin de marcos Contenidos

 Problema de asignacin de marcos 1.- Conceptos bsicos


Lista de marcos libres
2.- Gestin de memoria
Reparto de marcos entre los procesos y el SO
3.- Asignacin contigua
 Algoritmos de asignacin de marcos
4.- Asignacin dispersa
Asignacin equitativa
Asignacin proporcional 5.-
5.- Memoria virtual
 Paginacin por demanda
Asignacin prioritaria
 Algoritmos de reemplazo
 Ambito de las polticas de reemplazo  Asignacin de marcos
Reemplazo local  Hiperpaginacin
Reemplazo global

81 TEMA 3.- Gestin de la memoria 82

Hiperpaginacin (thrashing) Hiperpaginacin (thrashing)

 El problema de la hiperpaginacin (9.7)  Principio de localidad de referencia (9.7.1)


Causa de la hiperpaginacin Localidad:
Conjunto de pginas que un proceso utiliza conjuntamente.
Principio de localidad de referencia.
Hiperpaginacin
Utilizacin Hiperpaginacin (tamaos de localidad) > (tamao memoria total)
de la CPU

Grado de multiprogramacin

83 84
Hiperpaginacin (thrashing) Hiperpaginacin (thrashing)

 Modelo del rea activa (9.7.2)  Modelo del rea activa


Asume el principio de localidad de referencia.
Determinar el nmero de pginas que un proceso que deben tener en ... 5 3 5 2 3 5 2 3 5 4 5 4 5 9 8 9 4 6 9 2 3 9 2
memoria para obtener un buen rendimiento y evitar la
hiperpaginacin.
rea activa: conjunto de pginas accedidas en las ltimas
referencias.
Ventana de rea activa Es un nmero fijo de referencias.
t1 t2

AA(t1) = {2,3,5} AA(t2) = {4,5,6,8,9}

85 86

Hiperpaginacin (thrashing)

 Control de la tasa de fallos de pgina (9.7.3)

Tasa Lmite superior --> Asignar marcos


de
fallos
de
pgina

Lmite inferior --> Eliminar marcos

Nmero de marcos

87

También podría gustarte