Está en la página 1de 114

SISTEMAS OPERATIVOS I

UNIDAD IV
INSTITUTO TECNOLGICO
DE MORELIA

ADMINISTRACIN DE
MEMORIA

Departamento de Sistemas y
Computacin

MC B
M.C.
Benito
i S
Snchez
h R
Raya
Disponible en: www.benito.org.mx

sanchezraya@hotmail.com

CONTENIDO
1.
2.
3.
4
4.
5.
6.

7.
8.

Administracin de memoria bsica


I t
Intercambio
bi (Swapping)
(S
i )
Memoria virtual
Algoritmos para reemplazo de pginas
Modelado de algoritmos de reemplazo de pginas
Aspectos de diseo de los sistemas con
paginacin
Aspectos de implementacin
Segmentacin

1. ADMINISTRACIN DE MEMORIA
1
BSICA

Jerarquas de memoria:

Cach Pequea, rpida, cara y voltil.


RAM Mediana, regular costo, regular
velocidad y voltil
velocidad,
voltil.
D. Duro Enormes, lentos, baratos y
permanente.

Parte del SO que administra la jerarqua de


memoria se llama: Administrador de
Memoria.

Administrador de memoria:

Mantener
M
t
las
l
reas d
de memoria
i usadas
d y vacas.

Asignar memoria a los procesos cuando la requieren.


Liberarla cuando finalicen los procesos.
Administrar los intercambios entre la memoria principal y el
disco.

Intercambio y paginacin

Cuando la primera es pequea, y no alberga a todos los


procesos.

Carga y descarga de procesos entre la memoria y el disco.

1.1.
1
1 M
Monoprogramacin
i sin
i
intercambio ni paginacin

Ejecutar un programa a la vez.

En la figura de la siguiente diapositiva se ilustran


tres variaciones:

Compartir la memoria entre el programa y el SO.

En la p
primera variante se usaba en mainframes y
minicomputadoras.
La segunda, en sistemas de bolsillo y sistemas integrados.
La tercera, se empleo en PCs, era tpico de MSDOS. En
ROM esta el BIOS.
BIOS

Se teclea un comando, el SO carga el programa de


disco a memoria, lo ejecuta, al finalizar, se prepara
para cargar un nuevo programa y sobreescribir la
memoria

a) SO en la parte baja de la RAM. b) SO parte alta de la ROM


c) Controladores de dispositivos en ROM y el resto en RAM.

1.2.
1
2 M
Multiprogramacin
lti
i con particiones
ti i
fijas

Ya existe la multiprogramacin.
Consiste en dividir la memoria en n particiones
(Iguales o desiguales)

En la figura siguiente, en el inciso a):

Normalmente en forma manual y antes de arrancar el


sistema.
Al llegar un trabajo se coloca en la cola de entrada de la
particin ms pequea en la que cabe.
P ser particiones
Por
ti i
fij
fijas se d
desperdicia
di i ell espacio
i no
ocupado por un trabajo (ms pequeo el trabajo que la
particin).
Desventaja:
j Puede haber una p
particin g
grande vaca
mientras en la cola de una particin chica hay muchos
trabajos formados, como las particiones 1 y 3 de la figura.

a) Particiones de memoria fijas, con colas de entrada individuales.


b) Particiones de memoria fijas, con una sola cola de entrada.

En la figura siguiente, en el inciso b):

Otra opcin es mantener una sola cola


cola.
Al desocuparse una particin el trabajo al frente de la cola
que quepa en esa particin la ocupar.

Es decir, ocupar una particin lo mas justa a su tamao.

Una variante sera:

Escoger de la fila el trabajo que mas se acerque al tamao de


la particin.
Desventaja:

Discriminara a los trabajos pequeos. Por que estos


desperdiciaran espacio.
Cuando debera darles mejor servicio, porque normalmente son
trabajos interactivos.

Una estrategia sera:

Este sistema de particiones fijas se uso en el


OS/360 de IBM

10

Cada vez que se ignore un trabajo, del frente de


la fila, se le da un punto; y despus de n puntos
ya no se le puede ignorar.

Se llamaba MFT (Multiprogramacin con nmero


fijo de tareas).
Ya no se usa.

1.3. Modelado de la Multiprogramacin

Consiste en ver el aprovechamiento de la CPU


desde un punto de vista probabilstico.
probabilstico
Supongamos que:

Hay n procesos en la memoria al mismo tiempo.


U proceso pasa un porcentaje
Un
t j d
de ti
tiempo p ((en %)
esperando a que terminen operaciones de E/S.
La probabilidad de que todos estn esperando E/S es de
pn.
Por lo tanto el aprovechamiento de la CPU esta dado por:

11

Aprovechamiento de la CPU = 1-pn.


A esto se le denomina grado de multiprogramacin
multiprogramacin.

Degree of Programamming
12 Aprovechamiento de la CPU en funcin del nmero de procesos en la memoria.

Ejemplo:

13

Si una computadora tiene 32 MB de RAM


16 son para el SO
L programas d
Los
de usuario
i requieren
i
4 MB d
de
memoria para ejecutarse.
Con una espera
p
de E/S del 80% p
para cada uno.
Podramos tener 4 programas cargados en
memoria al mismo tiempo.
Calcular su aprovechamiento:

Aprovechamiento de la CPU = 1-pn.

1-0.8
1
0 84
1-0.4096
0.5904
59%

Si aumentamos
t
otros
t
16 MB d
de RAM
RAM, Cul
C l
sera el aprovechamiento del CPU?
14

Solucin:

Seran 8 programas a la vez en memoria


El aprovechamiento sera:

1-0.88
1-0
1
0.167
167
0.833
83%

Es decir,, al aumentarle 16 de RAM sube el rendimiento en


un 24%.

Y Si aumentamos otros 16 de RAM?


15

Solucin:

16

El aprovechamiento
h i t sera
d
dell 93%
Subira en 10%.

En base a este modelo se p


puede decir q
que la
primera adicin de RAM es buena inversin, pero la
segunda no lo es tanto.
La idea principal de este modelado es que la
multiprogramacin permite a los procesos usar la
CPU cuando de otra manera estara inactiva.

1.4
1
4A
Anlisis
li i d
dell desempeo
d
de
d un
sistema multiprogramado

Consideremos un rea de cmputo con


procesamiento por lotes:

Sus trabajos esperan 80% en E/S


En la figura siguiente inciso a)

Llegan 4 trabajos a ejecutarse


ejecutarse, en el orden ya especificado y
en esos tiempos, con su cantidad de minutos requeridos.
El primero llega a las 10:00 am, requiere 4 min. para
ejecutarse.
Utiliza solo 12 seg de CPU por cada minuto en memoria.
El trabajo tendr que permanecer en la memoria: 20 min.

17

Para poder realizar 4 min. de CPU.


Aun sin tener competencia empleara ese tiempo
tiempo.

18

a) Llegada y requerimientos de 4 trabajos b) Aprovechamientos de la CPU


c) Serie de sucesos, los nmeros arriba de las lneas indican el tiempo de CPU en
cada intervalo

De 10:00 a 10:10 estar solo en el CPU:

El aprovechamiento del CPU aumentara de 20%


a 36%. ((calculados con 1-p
pn)
Pensemos en calendarizacin round-robin

19

E l 2 min
Emplear
i d
de su ti
tiempo.

Cada uno recibe el 50% del tiempo del CPU, es decir,


0 18 min de CPU de cada minuto real (36%/2)
0.18
(36%/2).

La aparicin del segundo trabajo solo le quita el


10% del tiempo de CPU al primero (de 20 a 18
min).

A las 10:15 llega el tercer trabajo

El ttrabajo
b j 1h
ha recibido:
ibid 2.9
2 9 min
i
El trabajo 2 ha recibido: 0.9 min.
Con multiprogramacin de tres vas, cada trabajo
recibe: 0.16 minutos de CPU por minuto real.
Aprovechamiento CPU = 48%
48% / 3 = 16% =0.16 min

20

El trabajo 1 termina en el tiempo 22, debido a la


aparicin del trabajo 2.

1.5. Reubicacin y proteccin

Cuando se enlaza (cdigo+procedimientos+bibliotecas) un


p g
programa:

Ejemplo:

21

El enlazador requiere saber en que parte de la memoria


iniciar el programa.
Hay particiones de 100 K
El SO esta en los primeros 100 K
Un programa se carga en la particin 1
La primer lnea del programa es una llamada a la biblioteca
que se encuentra en la direccin 100 de dicha aplicacin.
Esta direccin saltar a la direccin absoluta 100, cuando
debera ser a la direccin 100+100
Si se cargase en la particin 2, debera ser 200+100, en lugar
de 100.

El anlisis anterior es el problema de la


reubicacin
Una posible solucin sera que si el programa:

22

Se carga
g en la p
particin 1,, sumar 100 a sus direcciones
Se carga en la particin 2, sumar 200 a sus direcciones
As sucesivamente

OS/MFT de IBM trabajaba bajo este esquema


esquema.

La proteccin

Consiste en proteger de accesos de algunos


procesos a reas de memoria que no les
pertenecen.
En este nivel todas las direcciones son absolutas.

23

De ah el riesgo latente.

IBM protegi sus equipos 360 de la siguiente


manera:

24

Dividir la memoria en bloques de 2 KB.


Asignar cdigos de proteccin de 4 bits a cada bloque.
En la palabra de estado del programa (PSW) se
colocaban los 4 bits de proteccin del bloque del
proceso en ejecucin.
Solo el SO poda modificar los bits de la PSW
PSW.
El hardware de la IBM 360 detectaba cuando un
proceso intentaba acceder a un bloque cuyos bits
difieren de los de la palabra de estado (PSW).

Otra solucin a la reubicacin y proteccin consista:

Equipar la mquina con dos registros especiales de


hardware:

Al calendarizar un trabajo

25

Base y lmite
El registro base almacenaba la direccin donde iniciaba la
particin en donde se cargo el trabajo.
El registro lmite guardaba la longitud de la particin.

Cada que se genera una direccin se le suma el registro


base.
El hardware protege de otros usuarios la modificacin de
los registros.
registros

Ejemplo:

26

Si el registro base tiene la direccin 100


Una llamada CALL 100, se transformara en una llamada
CALL 100+100.
Esto sin modificar la instruccin en si. Como era el caso de la
primera opcin.
Tambin se debe estar verificando el registro lmite para evitar
desbordamientos.

Una desventaja: Hara una suma y una comparacin cada


vez que se accese a la memoria
La CDC 6600 usaba este esquema.
q
Intel 8088 en IBM-PC usaba solo el registro base.

2. INTERCAMBIO (swapping)

En un sistema de procesamiento por lotes es muy


g
la memoria en p
particiones fijas.
j
fcil organizar
En sistemas compartidos no siempre se pueden
tener en memoria los programas activos.

Los p
programas
g
excedentes se mantienen en disco y se
traern en forma dinmica a la memoria para su ejecucin.

Esto se puede solucionar con:

Intercambio

Memoria virtual

27

Traer a la memoria un proceso entero y ejecutarlo por un rato


y volver a guardarlo en disco.
Permite que los programas se ejecuten, aunque solo una
parte de ellos este en memoria principal.

28

Cambios en la asignacin de memoria por la carga y descarga de procesos.


Lo sombreado es memoria vaca.

En a): Solo el proceso A esta en memoria


D
Despus
se crean o se ttraen a memoria
i llos
procesos B y C.
En d): A se intercambia al disco
disco.
Luego llega D y B sale.
Al final se vuelve a traer a memoria A.

Ahora quedo en un lugar distinto, es preciso reubicar las


direcciones que contiene, ya sea:
Por hardware ((Durante la ejecucin
j
del p
programa)
g
)
Por software (En el momento del intercambio)

29

Aqu las particiones son variables en


cantidad y tamao
tamao, conforme van llegando
los procesos

Compactacin de memoria:

30

Esto complica
p
su control.
Cuando el intercambio crea muchos huecos, se
t t de
trata
d crear un solo
l h
hueco pero d
de mayor
tamao, desplazndolo hacia abajo en la medida
de lo posible.
No es comn (requiere mucho tiempo CPU)

Cunta memoria darle a un proceso?

Si los procesos son de tamao fijo:

Se asigna lo que requiera.

Si los segmentos de datos de los procesos


suelen crecer (ejemplo asignacin dinmica)

Si hay un hueco adyacente, se le podr asignar.


Moverse a un rea de memoria mas grande.
Si no hay, bajar otros procesos a disco.
Si aun as no hay, tendr que eliminarse.

31

2.1.
2
1 Ad
Administracin
i i t i de
d memoria
i con
mapas de bits

32

a) Memoria con 5 procesos y tres huecos, zonas sombreadas vacas y con 0.


b) Con mapa de bits c) Con listas enlazadas

Forma de administrar la memoria dinmica.


L memoria
La
i se di
divide
id en unidades
id d d
de asignacin
i
i
A cada unidad de asignacin le corresponde un bit
Bit en 0 desocupada
desocupada, en 1 asignada
asignada.
Tamao de la unidad de asignacin:

Tamaos pequeos, mayor mapa de bits


Tamaos grandes, mapa de bits pequeo.

33

Habra desperdicio de memoria por el proceso en su ltimo


bloque (sino es mltiplo de la unidad de asignacin)

34

El tamao de asignacin solo depender del total


de memoria libre
libre.
Un inconveniente sera que al subir un proceso
ms a memoria,, se tendra que
q recorrer todo el
mapa de bits en busca de k bits consecutivos en
0, lo cual sera lento.

2.2.
2
2 Ad
Administracin
i i t i de
d memoria
i con
listas enlazadas

Consiste en mantener una lista enlazada de


segmentos de memoria asignados y libres
libres.
Un segmento puede ser:

Cada nodo de la lista:

35

Proceso o
Hueco
Proceso o Hueco
P
H
Direccin de inicio
Longitud
Apuntador al siguiente nodo

36

Cuando un proceso termina o se baja a disco,


la actualizacin (4 combinaciones) de la lista es:

Cuando un proceso se crea o se sube a


memoria:

Algoritmo del primer ajuste:


Se explora la memoria hasta hallar un hueco lo
suficientemente g
grande donde q
quepa.
p
El hueco se divide en dos partes (proceso y hueco
restante, a menos que sea exacto)

Algoritmo del siguiente ajuste:


Similar al anterior, excepto que se explora la memoria a
partir de donde se realiz el anterior ajuste, no lo hace
desde el principio.
Suele ser ms lento que el anterior.

37

Algoritmo del mejor ajuste:


Se explora toda la lista y se escoge el hueco ms
pequeo que alcance.
Es ms lento.
Desperdicia ms memoria que los dos anteriores. Porque
deja huecos pequeos inservibles.

Algoritmo del peor ajuste:


Analiza toda la lista y toma el hueco ms grande
g
q
que
encuentre.
Para dejar huecos de tamao aceptable y reutilizables.

38

Algoritmo del ajuste rpido:

39

Mantiene listas individuales para algunos de los tamaos


que se solicitan en forma ms comn.
Podra mantenerse una tabla de n elementos, donde
habra apuntadores a cada una de las listas donde hay
bloques de huecos de tamaos similares.
Ejemplo: A los de 4 KB, a los de 8 KB, etc, etc
La localizacin de un hueco es muy rpida
Pero es complejo y lenta la actualizacin cuando un
proceso termina o se intercambia.
Sino hay fusin la memoria pronto se fragmentar en
muchos
h h
huecos pequeos
iinservibles.
ibl

3. MEMORIA VIRTUAL

Al aparecer programas ms grandes que la


memoria se opt por dividir el programa en
memoria,
fragmentos, llamados superposiciones
(
(overlays)
y )

40

La superposicin 0 inicia la ejecucin, termina y


despus se carga la 1, y as sucesivamente.
En ocasiones se poda tener ms de una
superposicin en memoria.
El partir el programa se realizaba en forma
manual.
l

La solucin fue la memoria virtual.

El programa, sus d
datos
t y su pila
il pueden
d ser
mayores que la memoria.
Se carga
g en memoria, lo q
que est en uso en ese
momento, y el resto a disco.
Intercambios constantes de fragmentos entre
memoria y disco.
En multiprogramacin:

41

Puede haber mltiples fragmentos de mltiples


programas a la vez
vez.

3.1. Paginacin

42

43

La CPU enva direcciones virtuales a la MMU


L MMU enva
La
direcciones
di
i
fsicas
f i
a la
l memoria.
i
Las direcciones enviadas por el programa son
direcciones virtuales
virtuales, y constituyen el espacio de
direcciones virtuales.
Las direcciones virtuales no se envan directamente
al bus de memoria sino a la MMU.
La MMU establece una correspondencia entre las
direcciones virtuales y las fsicas
fsicas.

44

Pgina virtual vs marco de


pgina
Puede generar direcciones de 16
bis (de 0 a 64K)
Fsicamente tiene 32K de
memoria fsica.
Puede ejecutar programas de
hasta 64 K
Debe estar en disco el programa
completo para subir parte de l
cuando se requiera.
Paginas y marcos de pgina
deben ser del mismo tamao.
Paginas = Marco de pagina = 4K
Hay 16 Pginas virtuales y 8
marcos de pgina
pgina.
Las X indican que esas pginas
no estn presentes en memoria
En hardware un bit de
presente/ausente lo indica

Ejemplo: MOV REG, 0

Ejemplo: MOV REG, 8192

S transforma
Se
t
f
a MOV REG,
REG 24576

Ejemplo: MOV REG, 20500

45

Se envia la direccin virtual 0 a la MMU


La MMU verifica que la 0 (0 a 4095) esta en el marco de pgina 2
(8192 a 12287).
As que la MMU coloca en el bus de direccin la direccin 8192.
As que MOV REG, 0 8192

Esta 20 bytes arriba del inicio de la pagina virtual 5


Se transforma a MOV REG,
REG 12308

Ejemplo: MOV REG, 32780

Una direccin 12 bytes arriba del inicio de la pagina virtual


8.
La MMU detecta que no tiene correspondencia en memoria
fsica.

46

La CPU salta al SO (interrupcin), este salto se llama fallo de


pgina.
El SO escoge un marco de pgina que no se este usando
mucho y lo baja a disco
disco.
En su lugar sube el marco de pgina requerido.
Modifica el mapa de direccionamiento
Reinicia la instruccin interrumpida
interrumpida.

Ejemplo de direccin virtual:


8196 (0010000000000100)
Se transforma empleando el
mapa de la figura anterior.
La direccin de 16 bits se
divide en:
4 Nm de pagina
12 Desplazamiento

Podramos
P
d
ttener 16 pginas
i
Podramos direccionar 4096
bits de cada pgina.
El num de p
pgina
g
se usa como
ndice para consultar la tabla
de pginas.
Si bit presente/ausente es 1:

47

El marco de pgina hallado en


la tabla de pginas se copia en
los tres primeros bits del
registro de salida junto con su
desplazamiento (12 bits)
Los 15 bits constituyen la
direccin fsica
Esto se coloca en el bus de
memoria.

3.2. Tablas de pginas

Problemas a resolver:
1.

2
2.

48

Las tablas de pginas deben ser


extremadamente grandes
La transformacin de direcciones debe ser
rpida.

1.

Las tablas de pginas deben ser


extremadamente
t
d
t grandes
d

49

Las computadoras modernas suelen tener 32


bits (4 GB) o ms
ms, con pginas de 4K
4K, tendra
millones de pginas (1048576).
Una de 64 bits: 4611686018427387904 pginas

2.

La transformacin de direcciones debe


ser rpida
id

50

Esta en funcin del punto anterior, aunado a


que cada vez que se haga referencia a la
memoria se requiere hacer la transformacin.
Por una instruccin tpica se requiere en
ocasiones hasta 4 accesos a memoria.
La idea es no generar cuellos de botella.

3.2.1. Tablas de pginas multinivel

Soluciona el problema de almacenar enormes tablas


pginas
g
en la memoria todo el tiempo.
p
de p
Se usan tablas de pginas multinivel
En el inciso a) de la siguiente figura:

Tenemos una direccin virtual de 32 bits


bits.
Se divide en tres campos:

51

PT1 10 bits
PT2 10 bits
Despl 12 bits

Los desplazamientos son de 12 bits (indica que las


pginas son de 4K (212/1024))
Hay un total de 220 pginas (1,048,576)

(b)

52

a) Direccin de 32 bits con dos campos de tabla de pginas


b) Tablas de pginas de dos niveles.

No requiere que las tablas de pginas estn


t d ell ti
todo
tiempo en memoria
i
Ejemplo:

Un proceso requiere 12 MB

53

4MB de la memoria baja para el texto


Los siguientes
g
4MB p
para los datos
Los 4MB superiores de la memoria para la pila
Entre los datos y la pila hay un hueco enorme que no se
usa
usa.

En la figura anterior inciso b):

Cuando se le presenta a la MMU una direccin


virtual:
1.
2
2.

3.

54

A la
l iizquierda
i d ttenemos lla ttabla
bl d
de paginas
i
d
de primer
i
nivel
i l
con 1024 entradas (campo PT1)

Extrae el campo PT1


Usa el valor anterior para consultar la tabla de pginas de
1er nivel (1024 entradas de 4 KB cada una = 4MB)
El valor anterior contiene la direccin del nmero de
marco de pgina donde esta almacenada una tabla de
pginas de 2do nivel.

Para el ejemplo anterior:

La entrada 0 del primer nivel contiene:

La entrada 1:

55

Tabla de pginas para los datos.

La entrada 1023:

Tabla de pginas del texto del programa.

Tabla de pginas para la pila.

Las entradas sombreadas no se usan.


PT1 nos lllleva a lla di
direccin
i d
donde
d quedaron
d
llos
segmentos del programa (primer nivel, al inicio del
segmento)
L ttabla
La
bl d
dell primer
i
nivel
i l nos lllleva all iinicio
i i d
de cada
d
segmento (cdigo, datos, pila) del programa

PT2 tiene el ndice a la tabla de pginas de 2do nivel


seleccionada (la direccin exacta en el segmento)
segmento).
Despl Tiene el desplazamiento que existe a partir
del inicio de la p
pgina
g
virtual correspondiente.
p
El espacio de direcciones contiene ms de un milln
de pginas

B j este
Bajo
t esquema solo
l se necesitan
it 4 ttablas
bl d
de pginas.
i

1er nivel

2d nivel
2do
i l

56

Una
0 4MB, 4 8 MB, 4MB superiores

57

Tambin puede haber fallos de pgina.


Se podrn manejar tablas de pginas de
ms de dos niveles
Se estaran cargando/descargando
constantemente los marcos de pgina a
manipular.
manipular

3.2.2.
3
22 E
Estructura
t
t
d
de una entrada
t d d
de
tabla de pgina.

58

El tamao y estructura depende de la


mquina.
i

a)

Numero de marco de pgina:

b)

Bit de presente/ausente

c)

Se enciende cuando se hace referencia a dicha pgina.

No poner en cach

59

Encendido cuando se ha escrito algo en la pgina. Y poder


actualizarse en disco si ha sido modificada, de lo contrario se
d
desecha.
h

Bit de Solicitada

f)

Tres bits,
bits para ver si se puede leer
leer, escribir o ejecutar
ejecutar.

Bit de Modificada

e)

Esta o no en memoria (fallo de pgina)

Proteccin

d)

Es su identificador

Uso en registros de dispositivos. Para no usar copias antiguas


de algn comando.

3.3.
3
3 Bf
Bferes d
de consulta
lt para
traduccin

Consideremos una instruccin que copia un


registro
i t en otro:
t

Sin paginacin:

Con paginacin:

60

Slo se efecta una referencia a memoria


memoria.
Se requieren referencias adicionales (para acceso a las
tablas de paginacin)
Reduce el desempeo del CPU.

Normalmente se hacen muchas referencias a pocas


pginas (y no al contrario)
En base a esto se opt por:

61

Colocar un dispositivo
p
hardware en las computadoras
p
Que almacene y traduzca direcciones virtuales a fsicas sin
pasar por la tabla de pginas.
Se llama Buffer de Consulta para Traduccin (TLB) o
memoria asociativa.
Normalmente esta dentro de la MMU y no pasa de 64
entradas.

Ejemplo:

Proceso cargado en las pginas virtuales 19, 20 y


21.
Tiene cdigos de proteccin para leer y ejecutar
ejecutar.

62

Datos en uso en pginas 129 y 130


ndices de clculos en la pgina 140
La pila esta en las pginas 860 y 861

TLB para acelerar la Paginacin

63

Funcionamiento:

C
Cuando
d se presenta
t una di
direccin
i virtual
i t l a lla MMU
MMU.

Primero: El hardware verifica (en paralelo) si esta presente en


la TLB.
Si no viola los bits de proteccin el marco de pgina se toma
de la TLB sin recurrir a la tabla de pginas.
Si viola los bits de proteccin o no se encuentra en la TLB se
produce un fall de pgina.
Cuando no esta la direccin virtual en la TLB

64

Se realiza una consulta ordinaria a la tabla de pginas.


Desaloja una entrada en la TLB y coloca la nueva direccin en
ella, para futuros accesos.

MANEJO DEL TLB POR SOFTWARE

En mquinas SPARC, MIPS, Alpha, HP PA, etc

Administran la TLB por software


El SO carga explcitamente la TLB
Cuando no se encuentra una pgina en la TLB:

Con esto se simplifica la MMU

65

Se genera un fallo
S
f ll d
de pgina
i
Dejando que el SO resuelva el problema.
Debe hacerse con pocas instrucciones, porque los fallos TLB
ocurren con ms frecuencia que los de pgina.
Se dejan recursos para cach u otros recursos que mejoran el
desempeo.

Se pueden reducir los fallos de TLB si se cargan


anticipadamente las entradas (por probabilidades y
predicciones)

3.4. Tabla de pginas invertidas

Ejemplo:

66

Un espacio
U
i d
de di
direcciones
i
d
de 32 bit
bits (232),
) con 4096 (4K)
bytes por pgina.
Requiere ms de un milln (1048576) de entradas en la
t bl d
tabla
de pginas.
i
Slo sistemas recientes pueden manejar una tabla tan
grande.
Ahora imaginemos una mquina de 64 bits, ocupara una
tabla de 30 millones de Gbytes. No es factible!.

Las tablas de pginas anteriores requieren una


entrada por cada pgina virtual
virtual.
Una solucin es la tabla de pginas invertidas:

Hay una entrada por cada marco de pgina en la memoria


fsica en lugar de una entrada por pgina virtual
fsica,
virtual.
Ejemplo:

67

Direcciones virtuales de 64 bits con pginas de 4K y 256 MB


de RAM.
Solo requiere 65536 entradas en la tabla.
La entrada indica que proceso y que pgina virtual esta en el
marco de pgina correspondiente (proceso, marco).

Desventajas:

La ttraduccin
L
d
i d
de di
direcciones
i
virtuales
i t l a f
fsicas
i
es
mucho ms difcil.
Cuando el p
proceso n hace referencia a la p
pgina
g
virtual p, el hardware no podr utilizar p como
ndice para consultar la tabla de pginas.

68

Se har una bsqueda


q
en toda la tabla de p
pginas
g
invertida, buscando la entrada (n,p)

Esta bsqueda se har cada vez que se haga


referencia a la memoria.

Una mejora a lo anterior sera:

69

IImplementar
l
t una TLB en hardware
h d
y por software
ft
analizar
li
los fallos de pgina.
La bsqueda podra ser a travs de una tabla hash sobre la
di
direccin
i virtual.
it l
Las pginas virtuales en memoria, en cierto momento, con
la misma llave hash estarn enlazadas.
Si la tabla hash tiene tantas ranuras como marcos de
pginas, las cadenas tendran una longitud promedio de
una sola entrada.

Comparacin entre una tabla de pginas tradicional y una invertida

70

71

Una vez hallado el nmero de marco, se


coloca
l
en ell TLB ell nuevo par ((virtual,
i t l f
fsica)
i )
Se usan actualmente en algunos equipos
IBM y HP.
HP
Se volvern ms comunes en los equipos de
64 bits
bits.

4. ALGORITMOS PARA
4
REEMPLAZO DE PGINAS

Al producirse un fallo de pgina:

El SO decidir que marco de pgina bajar a


disco, para en su lugar colocar el nuevo marco
solicitado.

72

Si el marco a desalojar fue modificado, se reemplazar,


de lo contrario simplemente se sobrescribir.

El desempeo del sistema se mejorara o


empeorara, dependiendo del algoritmo de
reemplazo de paginas a emplear.

Este problema tambin aplica en otras


reas:

Cache de memoria

Servidor Web (proxy)

73

Pueden o no modificare
No se modifican

Algoritmos
1.
2
2.

3.
4
4.
5.
6.

7.

8
8.
9.

74

10.

Algoritmo ptimo de reemplazo de pginas


Algoritmo de reemplazo de pginas no usadas recientemente
(NRU)
Algoritmo de reemplazo de pginas FIFO
Algoritmo de reemplazo de pginas de segunda oportunidad
Algoritmo de reemplazo de pginas tipo reloj
Algoritmo de reemplazo de pginas menos usadas
recientemente (LRU)
Algoritmo de reemplazo de pginas no usadas frecuentemente
(NFU)
Algoritmo del envejecimiento
Algoritmo de reemplazo de pginas de conjunto de trabajo
Algoritmo de reemplazo de pginas WSClock

1. Algoritmo ptimo de reemplazo


1
de pginas

Es el mejor, fcil de describir, pero difcil de


implementar
Las pginas se rotulan con el nmero de
instrucciones q
que se ejecutarn
j
antes de q
que se
haga la primera referencia a ella.
Al presentarse un fallo de pgina:

75

De llas pginas
D
i
que estn
t en memoria,
i se reemplaza
l
lla que
ms instrucciones falten para referenciarla.
La idea es aplazar lo ms que se pueda los fallos de
pgina.
i
Es decir, se desaloja la pgina con el rtulo mayor.

Este algoritmo no es factible ponerlo en practica (No se usa).

Sin embargo, al implementar un simulador en la primera


ejecucin, para llevar la cuenta de todas las referencias a
pginas, sera posible implementarlo en la segunda ejecucin.

76

Al producirse un fallo de pgina


pgina, no hay forma de saber cuando se
referenciar a cada pgina.

Usando la informacin recabada en la primera ejecucin.

Lo anterior servir para medir el desempeo de


algoritmos reales, al compararlo con el desempeo
obtenido con el simulador.
Cabe mencionar que el simulador slo ser vlido
para ese programa y sus mismas entradas.

2. Al
2
Algoritmo
it
de
d reemplazo
l
de
d pginas
i
no usadas recientemente (NRU)

NRU Not Recently Used


P
Para
l obtencin
la
bt
i d
de llas estadsticas
t d ti
d
de uso, llas
computadoras con memoria virtual asocian a cada
pgina
p
g
dos bits de estado.

Los bits se actualizan cada vez que se haga


referencia a la memoria.

77

R Se enciende cuando se referencia la pgina.


M Se enciende cada que se escribe en la pgina.

Es fundamental que se enciendan por hardware y se


apaguen por software.

Si el hardware no cuenta con estos bits, pueden


simularse en software:

78

Al cargar un proceso, todas sus entradas se marcarn


como no presentes.
Al hacer referencia a una pgina, se produce un fallo de
pgina y el SO encender el bit R, con permisos de solo
lectura. Y reiniciar la instruccin.
Al querer escribir, habr otro fallo de pgina, entonces se
encender el bit M, cambiando a modo de lectura/escritura.
Frecuentemente el bit R se establece a 0 para distinguir las
pginas que no han sido solicitadas ltimamente.

Al presentarse un fallo de pgina, el SO examina


todas las pginas y las divide en cuatro
categoras, en base a R y a M:

79

Clase 0: No solicitada, No modificada.


Clase 1: No solicitada, Modificada.
Clase 2: Solicitada, No modificada.
Clase 3: Solicitada, Modificada.

La clase 1, ocurre cuando una interrupcin apaga


R de una clase 3.
M no se debe apagar, porque sirve para
reemplazar tablas modificadas.

Este algoritmo desalojar al azar una pgina


d clase
de
l
menor que est
t vaca.

Este algoritmo,
g
, es fcil de entender e
implementar.

80

Es mejor desalojar una pgina modificada que no


ha sido referenciada
referenciada, en lugar de una sin cambios
pero con muchas referencias.

Moderadamente eficiente, es decir, es aceptable.

3. Algoritmo de reemplazo de
3
pginas FIFO

81

El SO mantiene una lista de todas las pginas que


actualmente estn en memoria
memoria.
Con la pgina ms antigua al principio y la ms
recientemente cargada
g
al final
Al presentarse un fallo de pgina, se desaloja la
pgina del principio de la lista y la nueva se anexa al
final.
final
Podra desalojar una pgina que se usa mucho.
Nunca se usa FIFO
FIFO, al menos en su forma pura.
pura

4. Algoritmo de reemplazo de
4
pginas de segunda oportunidad

Es una variante del FIFO


Evita el problema de desalojos de pginas
que se usan mucho.
Funcionamiento:

Se examina el bit R de la pgina ms antigua:

82

Si R
R=0,
0 iindica
di que, aparte
t d
de antigua
ti
no se usa mucho.
h
Por lo tanto es reemplazada de inmediato.
Si R=1, se apaga el bit y la pgina es colocada al final
como si acabara de llegar
llegar. Posteriormente se contina
la bsqueda.

Este algoritmo busca una pgina antigua que no se


use mucho
mucho.
Si se ha hecho referencia a todas las pginas, el
algoritmo
g
se comporta
p
como FIFO p
puro.

83

Tomando el principio de la lista, debido a que fue


apagando(R) a todas las pginas.

La lista analiza tiempos de llegada


llegada.
Es ineficiente, porque constantemente cambia
pginas de lugar.

84

a) Pginas en orden FIFO


b) Listas de pgina si hay un fallo de pgina en el tiempo 20 y el bit R de la
pgina A est encendido. Los nmero de arriba de las pginas son sus
horas de carga.

5. Algoritmo de reemplazo de
5
pginas tipo reloj

Esta variante mantiene las pginas en una lista circular


parecida a un reloj.

En lugar de estar cambiando constantemente las pginas, como


las versin anterior.

Una manecilla apunta a la pgina ms antigua


Al presentarse un fallo de pgina:

Se examina la pgina a la que apunta la manecilla

85

Si R=0
R 0
Se desaloja
La nueva se inserta en su lugar
La manecilla se incrementa una posicin
Si R=1
Se cambia a 0
La manecilla se adelanta a la siguiente pgina

86

Se repite este proceso hasta hallar una


pgina
i con R
R=0.
0

La diferencia con el anterior es su implementacin

6. Al
6
Algoritmo
it
de
d reemplazo
l
de
d pginas
i
menos usadas recientemente (LRU)

LRU Least Recently Used


Una aproximacin al algoritmo ptimo se
basa en que:

87

Es probable que las pginas que se han usado


mucho en las ltimas instrucciones se usarn
mucho nuevamente
Sin embargo, las que no se han usado en cierto
tiempo, seguirn sin usarse un tiempo ms.

La idea es desalojar la que tenga ms


tiempo sin usarse.

Es factible, pero con un costo elevado.

R
Requiere
i
mantener
t
una lilista
t enlazada
l
d d
de ttodas
d llas pginas
i

El costo es debido a que la lista debe actualizarse


cada vez que se hace referencia a la memoria.

88

Primero, las usadas ms recientemente


Al final, las menos usadas recientemente

Encontrar una pgina en la lista, borrarla y reinsertarla al


frente, an en hardware sera tardado.

LRU EN HARDWARE
Primera
Pi
opcin:
i

89

Equipar al hardware con un contador (de 64 bits), C.


C se incrementar en forma automtica,, despus
p
de cada
instruccin.
Cada entrada de las pginas debe tener un campo para
vaciar el valor de C.
Despus de cada referencia a la memoria, el valor actual de
C se vaca a la entrada de la pgina que se esta
referenciando.
Al ocurrir un fallo de pgina, del SO examina todos los
campos de la tabla de pginas, hasta encontrar el valor ms
pequeo, esta sera la pgina menos recientemente usada.

Segunda opcin:

90

En una mquina con n marcos de pgina


El hardware LRU mantendr una matriz de nxn
bits Inicindose con ceros
bits.
ceros.
Cada vez que se referencia al marco de pgina k,
el hardware enciende primero todos los bits de la
fila k, y luego apaga todos los bits de la columna
k.
En cualquier instante la fila cuyo valor binario sea
el ms bajo, ser la del marco menos
recientemente usado.

Ejemplo:

91

Haciendo referencia a p
pginas
g
en el orden:
0,1,2,3,2,1,0,3,2,3

Algoritmo no factible, porque no hay


mquinas que lo traigan incorporado en
hardware.

7. Al
7
Algoritmo
it
de
d reemplazo
l
de
d pginas
i
no usadas frecuentemente (NFU)

92

NFU Not Frequently Used


Es un LRU(menos usada recientemente) implementado
en software
Requiere un contador de software para cada pgina, de
valor inicial cero.
Frecuentemente estar limpiando el bit R.
En cada interrupcin de reloj
reloj, el SO explora las pginas
en memoria, para cada una el bit R (sea 0 o 1) se suma a
su contador.

Los contadores son un intento por llevar la cuenta


de qu tanto se referencian las pginas
Al ocurrir un fallo de pgina, se escoge la pgina
con el contador ms bajo.
j
Inconvenientes:

Nunca olvida

93

En varias
E
i pasadas
d no ffuncionaran
i
llos contadores,
t d
porque se
quedaran con cuentas acumuladas en las pasadas anteriores.

Esto hara que se pierda el objetivo de este algoritmo.

8. Algoritmo del envejecimiento

94

Tambin es un LRU(menos usada recientemente)


en software
Es el NFU (no usadas frecuentemente) modificado
Igual que el anterior,
anterior cada pgina requiere un
contador, y cada tick de reloj explora las pginas y
suma los R bits al contador.
Todos los contadores se desplazan un bit a la
derecha, antes de sumar el bit R.
Despus el bit R se suma al bit de la extrema
izquierda, en lugar de la derecha.

Se muestran seis paginas durante cinco ticks de reloj


reloj.
Los ticks de reloj (a, b, c, d, e)

95

96

Cuando ocurre un fallo de pgina, se desaloja


l pgina
la
i cuyo contador
t d es ell ms
b
bajo.
j
Es evidente que al no hacer referencia a una
pgina,
i

sta
t ttendr
d n (d
(de acuerdo
d a llos ticks
ti k
de reloj) ceros a la izquierda, por lo que ser
un valor pequeo
pequeo.
Cuando dos pginas tienen el mismo
contador(sobre todo ceros)
ceros), se toma al azar
cualquiera de ellas.

9. Algoritmo de reemplazo de
9
pginas de conjunto de trabajo

97

Es la forma ms pura de paginacin


L procesos iinician
Los
i i sin
i pginas
i
en lla memoria
i
Al tratar de obtener la primer instruccin, se
producir un fallo de pgina; y as respectivamente
respectivamente.
Despus de cierto tiempo, el proceso tiene casi
todas sus pginas en memoria, y su ejecucin se
estabiliza con pocos fallos de pgina.
A lo anterior se le llama paginacin por demanda.

98

Por fortuna, la mayora de los procesos, en cualquier


momento de su ejecucin slo referencia a ciertas
pginas suyas, no es comn que en una pasada
requiera todas sus pginas.
Conjunto de trabajo. Es el conjunto de pginas que
en cierto momento est usando un proceso.
Si todo el conjunto de trabajo est en memoria
memoria, no
habra fallos de pgina, al menos en esa pasada.
Si se tiene memoria reducida p
para almacenar el
conjunto de trabajo, habra muchos fallos de pgina
y se ejecutar con lentitud.

99

Programa hiperpaginado (thrashing). Es un


programa que cada pocas instrucciones causa fallos
de pgina.
Es comn q
que se vaci un p
proceso completo
p
a disco
para cargar a otro proceso. En este caso cuando se
vuelva ejecutar, es como si empezara de nuevo.
Modelo de conjunto de trabajo o prepaginacin.
prepaginacin
Es cuando el SO trata de cargar anticipadamente el
conjunto de trabajo, para evitar demasiados fallos de
pgina y agilizar la ejecucin de procesos.

100

El conjunto de trabajo cambia con el tiempo (en


cada pasada)
pasada).
La mayora de los programas, una vez estabilizado,
tienen accesos de manera aleatoria a un nmero
reducido de pginas. Es decir tiene un
comportamiento asinttico.

Debido a dicho comportamiento, es posible hacer


una conjetura respecto a qu pginas se
necesitarn al reiniciar el proceso.

101

De acuerdo al momento en que se suspendi la ltima vez.

Para este algoritmo es necesario que el SO sepa


qu pginas tiene en memoria en cada momento, y
cuales no lo estn
estn.
El conjunto de trabajo, ser el conjunto de pginas
que se usaron en las k referencias ms recientes.

Se usa el tiempo de ejecucin

102

Por ejemplo
P
j
l ell conjunto
j t d
de ttrabajo
b j sera
ell conjunto
j t d
de
pginas empleadas durante los ltimos 100 milisegundos
de tiempo de ejecucin, ese sera el valor para k.

Tiempo virtual
Ti
i t l actual.
t l Tiempo
Ti
efectivo
f ti de
d CPU que
ha consumido un proceso desde que inici su
ejecucin.
j
Por lo que se redefine el conjunto de trabajo. Es
el conjunto de pginas a las que ha hecho referencia
durante los ltimos t segundos de tiempo virtual
virtual.

La idea sera hallar una pgina que no este en el


conjunto de trabajo y desalojarla.
desalojarla
Cada entrada de la pgina contendra:

Funcionamiento:

103

Tiempo
p aproximado
p
del ltimo uso de la p
pgina,
g , R,, M,, etc.
El hardware se encarga de encender los bits R y M.
U iinterrupcin
Una
t
i d
de reloj
l j peridica,
idi
causa lla ejecucin
j
i d
de
software que apaga en cada tick de reloj el bit R.
En cada fallo de pgina, la tabla de pginas se explora en
b
busca
d
de una apropiada
i d para d
desalojar.
l j

Al buscarla:

104

S examina
Se
i R
R, sii R
R=1.
1
Se escribe el tiempo virtual en el campo tiempo del
ltimo uso en la tabla de pginas. Para indicar que
l pgina
la
i se estaba
t b usando
d cuando
d ocurri
i ell ffallo.
ll
Como se acaba de solicitar, es obvio que pertenece
al conjunto de trabajo y no es candidata al desalojo.

Si R=0
Indica que no se ha hecho referencia a ella en este tick
y puede ser candidata.
Para verificarlo: Se calcula su edad y se compara con t.
Edad = tiempo virtual actual (proceso) tiempo de ltimo uso (marco)

Si edad > t, ya no es parte del conjunto y se desaloja.


Si edad <= t, todava pertenece al conjunto de trabajo y
se le perdona la vida de momento
momento, pero se toma nota
de la que tenga mayor edad.
Si hay varias con R=0, se desaloja la de mayor edad.

105

Si todas son R=1, todas se han solicitado en el


tick actual
actual, y se desalojar una al azar
azar.
Este algoritmo es engorroso

106

Porque
q cada vez q
que hay
y un fallo de p
pgina,
g , se debe
explorar toda la tabla de pginas para encontrar una
candidata.

10. Algoritmo de reemplazo de


10
pginas WSClock

Se basa en los algoritmos anteriores de reloj y de


conjunto de trabajo
trabajo.
Algoritmo usado ampliamente en la prctica.

107

Por su sencillez de implementacin


p
y buen desempeo.
p

Se emplea una lista circular de marcos de pgina.


Al inicio la lista esta vaca.
Al cargarse la primera pgina sta se aade a la
lista, y as sucesivamente, formando un anillo.
Cada entrada tiene: tiempo del ltimo uso
uso, R
R, M
M, etc
etc.

a) y b) cuando R=1
c)) y d) cuando
d R
R=0
0

108

Cuando hay un fallo de pgina se examina


primero
i
lla pgina
i d
de lla manecilla:
ill

Si R=1

109

La pgina se us en el tick actual


actual. No es candidata
candidata.
Se apaga el bit R.
Se adelanta la manecilla y se repite el algoritmo
Ver incisos a b

Si R=0

110

Si lla edad
d d > t y lla pgina
i
sta
t lilimpia
i ((no modificada)
difi d )
Indica que ya no es del conjunto de trabajo y que no
es necesario respaldarla. La nueva pgina se
colocara
l
en este
t marco (ver
(
incisos
i i
c d).
d)
Si la edad > t y la pgina no esta limpia
No se podra desalojar (a menos que se respalde)
Para evitar una conmutacin de procesos, se
calendariza la escritura en disco, y la manecilla se
adelanta y el algoritmo continua su anlisis.
Podra haber una pgina limpia y vieja!, para usar
de inmediato.

Si la manecilla da la vuelta completa, habra dos


opciones:
a) Se calendariz al menos una escritura:

Simplemente
p
seguir
g
dando vueltas,, hasta q
que alguna
g
termine su escritura y quede limpia.
La limpia se desalojar.

b) No se calendariz ninguna escritura:

111

Indicar que todas las pginas estn en el conjunto de


trabajo
S usar
Se
all azar cualquier
l i marco lilimpio.
i E
En ell peor d
de llos
casos, se desalojar cualquiera.

Guardndola previamente en disco.

Conclusin de los algoritmos:

112

Algoritmo

Funcionamiento

Observaciones

ptimo

Reemplaza la pgina que se


No se usa
solicitar al ltimo. No se puede Slo para comparar
saber.

NRU
U

Divide
de las
as pg
pginas
as e
en 4 cclases,
ases,
se toma la de la clase menor

Fcil,
c , pe
pero
o bu
burdo
do

FIFO

Conserva el orden de carga en


una lista

Puede desalojar pginas


en uso

Segunda
oportunidad

Tipo FIFO. Verifica si se esta


usando la pgina antes de
desalojarla.

Muy lento

Reloj

Tipo 2da oportunidad.


Implementacin ms eficiente

Realista

113

Algoritmo

Funcionamiento

Observaciones

LRU

Excelente, pero requiere


Excelente
hardware especial.

Difcil de
implementar

NFU

Intento de LRU en software

No es muy bueno

Envejecimiento

Buena aproximacin al LRU en


software

Buen desempeo

Conjunto de trabajo

Desempeo razonable

Implementacin
complicada

10

WSClock

Buen desempeo e
implementacin eficiente

Eficiente y realista

REFERENCIA:

114

Sistemas Operativos Modernos, Segunda


Edi i
Edicin
TANENBAUM
Prentice Hall

También podría gustarte