Sei sulla pagina 1di 77

Sistemas Operativos II

Gestin de la Memoria

Resumen

Introduccin a la gestin de la memoria

Requisitos
Traduccin de direcciones

Espacio contiguo

Espacio no contiguo

Memoria virtual

Introduccin

La memoria Memoria Primaria (MP), Memoria Principal,


Memoria Central o Memoria Interna es la memoria de la
computadora donde se almacenan temporalmente tanto los
datos como los programas que la unidad central de
procesamiento (CPU) est procesando o va a procesar en un
determinado momento.
Se dedica una parte de la memoria al sistema operativo
(ncleo) y la otra parte a los procesos de usuario.

Para que un proceso est preparado para ejecucin debe estar


cargado en memoria principal

El gestor de memoria es la parte del S.O. que controla el uso


de esta segunda parte.
El gestor de memoria busca el uso efectivo de la memoria
Es necesario maximizar el nmero de procesos que hay en
memoria en cada instante.

Gestin de Memoria: requisitos

Reubicacin

Permite que un proceso se pueda ubicar en diferentes


posiciones de memoria, e incluso cambiar de posicin
Permite el intercambio a memoria secundaria

Proteccin

Impide que un proceso acceda a datos de otro


Normalmente se realiza mediante hardware por razones de
eficiencia

Gestin de Memoria: requisitos

Comparticin

Organizacin Lgica

Permite que los procesos compartan informacin


Debe mantener las necesidades de proteccin
Deseable proporcionar soporte para los programas que
utilizan mdulos
La segmentacin es el mtodo que mejor satisface esta
necesidad

Organizacin Fsica

El flujo de informacin entre memoria principal y memoria


secundaria (y viceversa) lo gestiona el SO
La traduccin de direcciones se realiza durante la ejecucin del
proceso

Objetivos del sistema de gestin


de memoria

Objetivos

En sistemas con multiproceso, el S.O. debe repartir los recursos entre


los procesos existentes:
Reparto de procesador: Gestin de procesos
Reparto de memoria: Gestin de memoria

Objetivos del Gestor de Memoria


A. Espacios lgicos independientes
B. Proteccin entre procesos
C. Comparticin de Memoria (procesos ligeros)
D. Soporte a las regiones del proceso
E. Maximizar el grado de multiprogramacin
F. Mapas
de memoria de un tamao
(normalmente grandes)

adecuado

Jerarqua de Memoria

La memoria principal y los registros


son las nicas unidades de
almacenamiento
accedidas
de
manera directa por la CPU
El acceso a los registros se hace en
un pulso de reloj de CPU o menos,
mientras que para acceder a la
memoria
principal
podran
precisarse muchos ciclos.
El cach se ubica entre la memoria
principal y los registros de CPU.
Los sistemas de hardware cuentan
con una diversidad de medios para
el almacenamiento de datos,
clasificados por su velocidad de
acceso y su costo/tamao

A. Espacios lgicos independientes

A priori no se conoce la posicin de memoria que ocupar


un programa cuando vaya a ejecutarse (estado de ocupacin
de la memoria)
Cdigo en ejecutable genera referencias entre 0 y N
Ejemplo: Programa que copia un vector
Fichero Ejecutable
0
4
....
96
100
104
108
112
116
120
124
128
132
136

Cabecera
LOAD R1, #1000
LOAD R2, #2000
LOAD R3, /1500
LOAD R4, [R1]
STORE R4, [R2]
INC R1
INC R2
DEC R3
JNZ /12
.................

Vector destino
direccin 2000

partir

de

Tamao del vector en direccin


1500
Vector origen
direccin 1000

partir

de

Se supone que el cdigo del SO reside en las


posiciones ms altas.
El programa se carga en la posicin 0 y para que se
ejecute ha de pasrsele el control (es decir, que el
contador del programa apunte a esta posicin).

Problema:Como se ve, no coinciden las


direcciones usadas en el programa con la posicin a
partir de la cual se carga el programa. Suponer por
ejemplo, que el programa se cargara a partir de la
posicin 10000....

Solucin: Reubicacin de direcciones lgicas a


fsicas

Memoria
0
4
8
12
16
20
24
28
32
36
....

LOAD R1, #1000


LOAD R2, #2000
LOAD R3, /1500
LOAD R4, [R1]
STORE R4, [R2]
INC R1
INC R2
DEC R3
JNZ /12
.................

Sistema Operativo

Traduccin de Direcciones (II)

Una Direccin Relativa es una direccin lgica que toma


como base el comienzo del proceso. Direcciones de memoria
generadas por el programa.
Una Direccin fsica es una Direccin de memoria principal
asignadas al proceso.
El Registro Base forma parte de los registros del procesador
Por razones de eficiencia la traduccin la realiza el hardware
El Registro Lmite permite aplicar tcnicas de proteccin y
comparticin
La Reubicacin puede ser hardware o software

Reubicacin Hardware

Reubicacin Hardware: la MMU (memory management unit) se encarga


de la traduccin

Proceso:

Programa se carga en memoria sin modificar

El S.O. almacena por cada proceso su funcin de traduccin

El S.O. especifica a la MMU qu funcin aplicar para cada proceso


Memoria

Procesador
PC
8
R. Instruccin
LOAD R3, /1500

HW traduccin
10000
1500

11500

10000
10004
10008
10012
10016
10020
10024
10028
10032
10036
..........

LOAD R1, #1000


LOAD R2, #2000
LOAD R3, /1500
LOAD R4, [R1]
STORE R4, [R2]
INC R1
INC R2
DEC R3
JNZ /12
.................

Reubicacin software

Reubicacin software: traduccin de


direcciones
durante
carga
del
programa. Esta solucin se usa en
sistemas sin el hardware especfico de
traduccin (MMU).
Proceso:

El programa se carga con las direcciones


ya traducidas
Se genera un cdigo diferente del
programa ejecutable

Desventajas:

No asegura proteccin (no se verifica


cada direccin a usar, sino que se usan
las direcciones generadas tras el
proceso de carga)
No permite mover programa en tiempo
de ejecucin (suponer que es necesaria
la reubicacin del espacio asignado al
proceso, por necesitar ms espacio.....)

Memoria

10000
10004
10008
10012
10016
10020
10024
10028
10032
10036
..........

LOAD R1, #11000


LOAD R2, #12000
LOAD R3, /11500
LOAD R4, [R1]
STORE R4, [R2]
INC R1
INC R2
DEC R3
JNZ /10012
.................

Esquemas de memoria basados en


asignacin contigua
Gestin de Memoria

3.1. Esquema Hardware


El mapa de proceso se ubica en una zona contigua de la memoria
principal.
Proceso:

El S.O. busca un hueco en memoria de tamao suficiente para alojar su mapa de


memoria del proceso que comienza.
El S.O. reserva la parte del hueco necesaria y crea en ella el mapa inicial del
proceso
Se establece la funcin de traduccin, de forma que las direcciones del
programa se correspondan con las direcciones existentes en el hueco asignado.

Hardware requerido:

Registros valla (registro base y registro lmite). Estos dos registros slo son
accesibles en modo privilegiado.
Los registros valla estn desocupados cuando el S.O. toma el control para acceder
a todo el mapa de memoria.

Traduccin de Direcciones (I)

El hardware de
traduccin
permite la
reubicacin

3.1. Esquema Hardware

Registro lmite: Se comprobar que las direcciones usadas por el


proceso no excedan el valor almacenado en l.
Registro base: Una vez realizada la comprobacin anterior, se suma a
cada direccin el valor contenido en este registro, de forma que se
obtiene la direccin fsica pertinente.
0

Memoria
Proceso 4

Procesador
PC
8

10000

Hard. traduccin (MMU)


R. lmite

4000
Registro instruccin
LOAD R3, /1500

>

NO

SI
Excepcin

R. base

21000
+

10200

Proceso 7
15036
Proceso 3
20500
21000
22500

25000
N

Proceso 2

Fragmentacin

Bsicamente la fragmentacin es la memoria desperdiciada, tanto dentro de la


memoria principal como de la secundaria

Esta memoria desperdiciada se produce cuando ciertos sectores no pueden ser


asignados a ningun proceso o dato y quedan vacos e inaccesibles

Tipos de Fragmentacin
Interna: Se llama fragmentacin interna a los espacios libres de memoria que esta
asignada a un proceso(decimos proceso para abreviar, pero tambin pasa con los
datos), pero que este no ocupa.
Externa: se refiere a los espacios de memoria que no estn asignados, pero
tampoco pueden utilizarse, en general esto se debe a que ya sea de forma fija o
dinmica la memoria se dividi en bloques demasiado pequeos y no continuos
los cuales no pueden albergar a casi ningn proceso y por ende se encuentran
siempre desocupados pero inaccesibles.

Tcnica que persigue la asignacin contigua


de memoria

Particiones Estticas o Fijas

Es la forma mas simple de administracin de memoria para


multiprogramacin

La memoria principal se divide en particiones


estticas, definidas durante el inicio del sistema. Se
dedica una particin para el Sistema Operativo y las
restantes para los procesos de usuario
Los procesos se pueden cargar en una particin de
igual o mayor tamao
Beneficio

Es simple de implementar e impone poca sobrecarga al


sistema operativo

Espacio contiguo: Particiones fijas

Divisin de la memoria en regiones con lmites


fijos

Regiones del mismo tamao

Produce fragmentacin interna pues el proceso no


ocupa toda la particin

Si son grandes se desperdicia mucho espacio


Si son pequeas no caben los procesos

Regiones de distintos tamaos

Mltiples colas: la particin ms pequea donde quepa


Cola nica: la particin ms pequea de las libres

Particiones Estticas o Fijas

Las particiones fsicas pueden ser implementadas con


registros de lmite superior e inferior o con registros de
base y lmite
Registros de lmite superior e inferior
Registros de base y lmite
Problemas

Un programa puede ser demasiado grande para caber en una


particion, por lo tanto si un programa no se ha disenado
mediante superposicion (overlays) no se puede ejecutar.
Se malgasta el espacio interno de cada particin cuando el
bloque cargado es mas pequeo, lo que se conoce como
fragmentacin interna.

Espacio contiguo: Particiones fijas

Particiones fijas de
igual y de distinto
tamao

Particiones Dinmicas

Tcnica que persigue la asignacin contigua de memoria


Particiones variables en nmero y longitud
Al cargar un proceso se le asigna exactamente tanta memoria
como necesita.
Problemas:

Por la entrada y salida de procesos en la memoria, se van generando


porciones cada vez ms pequeas de la memoria sin utilizar, lo que se
conoce como fragmentacin externa

Para solucionar este problema se debe recurrir a la


compactacin de la memoria de manera de eliminar los
espacios (huecos) entre procesos.
Esto significa que los procesos deben ser reubicados en
memoria dinmicamente
Perjuicio: mucha sobrecarga, uso de CPU

Espacio contiguo: Particiones dinmicas

La particin se crea al ejecutar el proceso


Necesita algoritmo de ubicacin

Espacio contiguo: Particiones dinmicas

Produce fragmentacin externa


Se soluciona mediante compactacin

Poltica de asignacin de espacio

El S.O. debe considerar qu espacio, de los huecos libres, se usar


intentando encontrar un equilibrio entre buen aprovechamiento de
espacio y tiempo de respuesta corto, es decir, se aplica un algoritmo
de decisin que debe ser eficiente.
Este problema es un clsico: Cmo asignar espacio para su
aprovechamiento ptimo?. Existen tres posibles enfoques:

a) Mejor ajuste (best-fit). Se elige la zona libre ms pequea donde


quepa el mapa del proceso.
Problema: Conlleva crear nuevos huecos de tamao pequeo. Adems,
elegir el hueco ms pequeo obliga a mantener ordenados por tamao
los huecos disponibles. No es eficiente
b) Peor ajuste. Se busca el hueco ms grande, intentando evitar la
generacin de huecos pequeos. Sigue precisando mantener el control
de los tamaos
c) El primero que ajuste (first-fit). Suele ser la mejor poltica. Muy
eficiente, ya que basta con encontrar una zona libre de tamao
suficiente, y ofrece un aprovechamiento aceptable

Ejercicio1. Prctica de particiones fijas de


tamaos diferentes

Considerar un sistema con intercambio, en el que la


memoria posee particiones libres de tamao fijo: 1000Kb,
400Kb, 1800Kb, 700Kb, 900Kb, 1200Kb y 1500Kb. Estos
huecos estn dispuestos en el orden dado.
Se tienen tres procesos de tamaos 1200Kb, 1000Kb y
900Kb. Para los algoritmos:

Primero en ajustarse
Mejor en ajustarse
Peor en ajustarse
Siguiente en ajustarse el orden dado.

a) Qu huecos sern asignados?


b) Qu algoritmo aprovecha mejor la memoria?

Solucion
1000Kb, 400Kb, 1800Kb, 700Kb, 900Kb, 1200Kb y 1500Kb.
1000

2400

1800

700

900

1200

1500

Se tienen tres procesos de tamaos P1 =1200Kb, P2=1000Kb y


P3= 900Kb.
a) Primero en ajustarse
Particiones
Procesos

1000

2400

1800
P1=1200
Fi=600

700

900

1200
P2=1000
Fi=200

1500
P3=900
Fi=600

a) Para el algoritmo primero en ajustarse:


Segmento

Hueco Asignado

Fragmentacin

1200 kb

1800

600

1000 kb

1000

900

900

b) Para el algoritmo mejor ajustarse:


Segmento

Hueco Asignado

Fragmentacin

1200 kb

1200

600

1000 kb

1000

900

900

c) Para el algoritmo peor en ajustarse:


Segmento

Hueco Asignado

Fragmentacin

1200 kb

1800

600

1000 kb

1500

500

900

1200

300

Total

1400 kb

d) Para el algoritmo siguiente en ajustarse:


Segmento

Hueco Asignado

Fragmentacin

1200 kb

1800

600

1000 kb

1200

200

900

1500

600

Total

1400 kb

En un sistema de gestin de memoria, el sistema


operativo ocupa 10 K y dispone de una memoria libre de
30 K, en la que se introducen los siguientes trabajos:
TRABAJOS

TAMAO

T. DE ESTANCIA
EN MEMORIA

TI

4K

0,3 seg.

T2

2K

0,1 seg.

T3

7K

0,5 seg.

T4

15 K

0,4 seg.

T5

8K

0,8 seg.

T6

12 K

0,2 seg.

Si la memoria tiene 3 particiones fijas de 4K, 10K y 16K, y se utiliza un


planificador FCFS con cola nica y asignacin de la particin segn el
criterio. Representar los estados de dicha memoria, indicando el tiempo de
retorno medio y la fragmentacin en cada estado.
a) Usa primer en ajustarse y b) el mejor que se adapte.

a) Usa primer en ajustarse


0
4K

0.1

0.2

0.3

0.4

0.5

0.6

T1
FI=0
T2

T1
FI=0
T5

T1
FI=0
T5

T5

T5

T5

FI=8
T3

FI=2
T3

FI=2
T3

FI=2
T3

FI=2
T3

FI=2
T4

FI=9

FI=9

FI=9

FI=9

FI=9

FI=1

10 K

16 K

0.6
4K

0.7

0.8

0.9

10

1.1

1.2

FE=4
T5

FE=4
T5

FE=4
T5

FE=4

FE=4

FE=4

FI=2
T4

FI=2
T4

FI=2
T4

FE=10
T6

FE=10
T6

FE=10

FI=1

FI=1

FI=1

FI=4

FI=4

FE=16

10 K

16 K

Tiempo de Retorno Medio


TRABAJO ENTRADAS
S
T1
0
T2
0
T3
0
T4
0
T5
0
T6
0
TOTAL
TIEMPOS DE RETORNO= 3.8

SALIDAS

TOTALES

0.3
0.1
0.5
0.9
0.9
1.1

0,3
0,1
0,5
0,9
0,9
1,1
3.8
T. RETORNO MEDIO = 3.8/6 = 0,63

Trabajo en Equipo

En equipo resolver los ejercicios de Cuestionario


Usar formatos
Entregar en plataforma

Conclusin

Si el sistema de gestin de memoria es de particiones fijas


(como indica el enunciado) el problema es la
fragmentacin interna. En este caso el algoritmo que
mejor aprovecha la memoria es el mejor en ajustarse
dado que la fragmentacin interna es nula, despus el
algoritmo primero en ajustarse con fragmentacin interna
de 600 y finalmente los otros dos que producen una
fragmentacin interna de 1400

Particiones Dinmicas: Asignacin de


Memoria

Consiste en determinar en qu hueco ubicar un nuevo proceso, intentando


evitar la fragmentacin externa. Para esto existen algoritmos:
Mejor ajuste (best-fix): consiste en ubicar el proceso en el espacio de
memoria que mas se ajuste a su tamano. Tiene los peores resultados y
genera huecos demasiado pequenos
Primer ajuste (first-fix): consiste en ubicar el proceso en el primer
hueco disponible, recorriendo desde el inicio de la memoria, cuyo
tamano sea suficiente para el proceso. El mas sencillo y rapido, y con
buenos resultados. Genera pequenas particiones en las primeras
posiciones de la memoria
Prximo ajuste (next-fix): consiste en ubicar el siguiente hueco
disponible, que
sea suficientemente grande, a partir de la ultima asignacion de memoria.
Peores resultados que el algoritmo del primer ajuste, necesita
compactacion mas frecuentemente
Peor ajuste (worst-fix): ubicar el proceso generando el mayor hueco
posible. Curiosamente, ofrece buenos resultados

Espacio no contiguo: asignacin de memoria

El proceso se divide en fragmentos


Asignacin de cada fragmento a una zona de
memoria

Una tabla almacena la asignacin de cada proceso

No tienen por qu estar contiguos


Cada acceso a memoria se convierte en dos accesos:
uno a la tabla y otro al dato

Slo es posible con ayuda del hardware

Reduce el coste de las consultas a la tabla

Espacio no contiguo: paginacin

El proceso se divide en fragmentos del mismo


tamao llamados Pginas
La memoria se divide estticamente en
fragmentos de ese tamao llamados Marcos de
pgina
Se crea una tabla de pginas para cada proceso
que hay en memoria que indica la posicin de esa
pgina
El esquema es similar a las particiones fijas, pero
un proceso puede ocupar varias particiones
Las direcciones lgicas se expresan mediante dos
valores: nmero de pgina y posicin en la pgina

Espacio no contiguo: paginacin

Espacio no contiguo: paginacin

Espacio no contiguo: paginacin

Para aplicar el esquema de paginacin, las pginas


deben ser de tamao 2n

Una divisin entre 2n en valores binarios equivale a


eliminar los n bits menos significativos

En ese caso la direccin lgica coincide con la


direccin relativa
Los marcos de pgina siempre se corresponden
con posiciones de memoria con los n bits menos
significativos a cero
La traduccin de direcciones se simplifica

Espacio no contiguo: paginacin

Ejemplo de
direcciones con
paginacin

La direccin relativa
1502 se corresponde
con la direccin lgica
(1, 478)

Traduccin con Paginacin

Espacio No Contiguo
Segmentacin (I)

El proceso se divide en fragmento del distinto


tamao llamados Segmentos
La memoria se divide dinmicamente en
fragmentos del tamao adecuado para cada
segmento
El esquema es similar las particiones variables,
pero un proceso puede ocupar varias particiones
Es necesario un algoritmo de ubicacin para
decidir dnde se sita un segmento en memoria

Espacio No Contiguo
Segmentacin (II)

Se crea una tabla de segmentos para cada proceso


que hay en memoria, indica la posicin del
segmento y debe almacenar el tamao de cada
uno

Las direcciones lgicas se expresan mediante dos


valores: nmero de segmento y posicin en el
segmento

El tamao del campo con la posicin delimita el


tamao mximo del segmento.

Espacio No Contiguo
Segmentacin (III)

Este tipo de divisin es ms cercana al trabajo del


programador, porque cada segmento se
corresponde con un mdulo y se genera la
posicin relativa a ese mdulo

No hay ningn mtodo que simplifique la


traduccin, porque los segmentos son de distinto
tamao

Espacio No Contiguo
Segmentacin (y IV)

Ejemplo de direcciones
con segmentacin

No hay ninguna
relacin entre la
direccin relativa 1502
y la direccin lgica (1,
752)

La direccin lgica
cambia segn el
tamao de los
segmentos

Espacio No Contiguo
Traduccin con Segmentacin

Espacio No Contiguo
Segmentacin Paginada (I)

Cada segmento se divide en pginas de tamao 2n

La posicin dentro del segmento es una direccin


relativa que es una direccin lgica de paginacin

El proceso utiliza segmentacin ( s, d ) y el


sistema divide el desplazamiento en una direccin
lgica de paginacin d = ( p, d )

La memoria se divide en Marcos de Pgina

Espacio No Contiguo
Segmentacin Paginada (II)

Se utilizan tabla de segmentos y tabla de pginas

Una traduccin necesita de tres accesos a memoria en lugar de


dos

La tabla de segmentos indica la ubicacin de la tabla de pginas


del segmento y su nmero de pginas

La tabla de pginas indica la ubicacin en memoria de cada


pgina

Las pginas de un segmento no tienen que estar contiguas en


memoria

Espacio No Contiguo
Traduccin con Segmentacin Paginada
Direccin virtual

Memoria

P
D

Tamao
del
segmento

+
S
Base de la tabla
de pginas

Tabla de segmentos

Tabla de pginas

Direccin fsica

Introduccin a la Memoria Virtual


Caractersticas (I)

No es necesario que todos los fragmentos del


proceso estn en memoria principal

Vlido tanto para paginacin como segmentacin


En adelante hablaremos slo de pginas

Cuando se accede a una pgina que no est en


memoria se produce un Fallo de Pgina

El SO realiza una E/S y trae la pagina del disco


El proceso queda bloqueado hasta que llega la pgina
Ejecuta otro proceso en estado Listo

Introduccin a la Memoria Virtual


Caractersticas (y II)

Conjunto residente es la parte que est en


memoria, el resto se almacena en memoria
secundaria
Es necesario tomar ms decisiones para gestionar
la memoria
Presenta dos ventajas

Es posible tener ms procesos en memoria principal


por lo que aumenta el grado de multiprogramacin
Es posible que un proceso sea ms grande que la
memoria por lo que el tamao del programa no est
condicionado por el de la memoria

Introduccin a la Memoria Virtual


Cercana de Referencias (I)

Si un sistema pasa mucho tiempo resolviendo


fallos de pgina, se dice que est en hiperpaginacin

El procesador pasa ms tiempo atendiendo fallo de


pgina que ejecutando procesos

El S.O. adivina las pginas que va a usar un proceso


en el futuro y las mantiene en memoria
Para ello emplea informacin sobre el
comportamiento del proceso en el pasado
cercano

Introduccin a la Memoria Virtual


Cercana de Referencias (y II)

Principio de Cercana

Un proceso slo accede a parte de sus pginas durante


cierto periodo de tiempo, por lo que si esas pginas
estn en memoria no generar fallos de pgina
Cuando pasa ese periodo de tiempo, el proceso utiliza
otro conjunto de pginas y genera fallos hasta tenerlas
todas en memoria

El Principio de Cercana es que permite llevar a la


prctica la memoria virtual
Garantiza que un proceso no esta continuamente
con fallos de pgina

Hardware de Memoria Virtual


Buffer de Traduccin Adelantada, TLB (I)

Permite acceder rpidamente a las ltimas entradas utilizadas de


la tabla de pginas o segmentos

Utiliza registros asociativos (rpidos y caros)

Permiten buscar un valor en todos ellos a la vez

La traduccin comienza buscando en TLB, despus busca en la


tabla de pginas o segmentos y por ltimo produce un fallo de
pgina y carga la pgina del disco

El tiempo de acceso efectivo en un sistema con TLB es:


Tacceso = prob_acierto * Tsiacierto + (1-prob_acierto) * Tsifallo

Hardware de Memoria Virtual


TLB (y II)
Con pocos
registros
asociativos se
obtienen un
alto
porcentaje de
aciertos en
TLB por lo
que se mejora
mucho el
tiempo de
acceso

Hardware de Memoria Virtual


Modificaciones en Estructuras

Paginacin

En cada entrada de la tabla de pginas aade dos bits

El bit de presencia (P) indica que la pgina est en memoria principal

El bit de modificacin (M) indica que la pgina se ha modificado desde que se


cargo en memoria principal

Una pgina no modificada no necesita escribirse en disco cuando se expulsa de


memoria

Segmentacin

Cada entrada de la tabla de segmentos incluye tambin P y M

Segmentacin paginada

Los bits P y M pertenecen a cada pgina de un segmento

Software de Memoria Virtual


Polticas de Lectura

Deciden cundo debe entrar una pgina en


memoria
Paginacin por demanda

Paginacin previa

La pgina se carga cuando el proceso lo solicita


Carga un conjunto de pginas del mismo bloque de
disco

Normalmente se combinan ambos

Paginacin previa al principio de la ejecucin o cuando


hay muchos fallos de pgina
Paginacin por demanda cuando ya no hay muchos
fallos de pgina

Software de Memoria Virtual


Polticas de Reemplazo (I)

Deciden qu pgina sale de memoria cuando se


necesita espacio para cargar otra pgina
Deben tener en cuenta que algunas pginas estn
bloqueadas y no pueden salir de memoria
Se diferencian dos tipos de algoritmos:

Alcance local: la pgina a reemplazar pertenece al


proceso que recibe la nueva pgina cargada.
Normalmente los procesos tienen siempre el mismo
nmero de pginas
Alcance global: la pgina a reemplazar puede
pertenecer a cualquier proceso. Los procesos pueden
tener ms o menos pginas en cada instante

Software de Memoria Virtual


Polticas de Reemplazo (II)

Algoritmo FIFO

Reemplaza la pgina
que lleva ms
tiempo en memoria
Presenta la
anomala de Belady:
al utilizar ms
marcos se generan
ms fallos de pgina

Software de Memoria Virtual


Polticas de Reemplazo (III)

Algoritmo ptimo

Reemplaza la pgina que tardar ms tiempo en


usarse
Utiliza informacin sobre el futuro (no conocida)
Slo es til con carcter terico

Software de Memoria Virtual


Polticas de Reemplazo (IV)

Algoritmo Usada menos recientemente (LRU)

Las usadas en el pasado cercano sern las usadas en el


futuro cercano (principio de cercana)
Difcil de llevar a la prctica porque necesita anotar el
instante de TODAS las pginas
Se utilizan
algoritmos
basados en
LRU

Software de Memoria Virtual


Polticas de Reemplazo (V)

Algoritmo del reloj (Segunda Oportunidad)

Un bit de uso indica si una pgina se ha usado


El bit de uso se pone a uno cuando se referencia una
pgina que ya est en memoria
Para el reemplazo, se recorre la lista de pginas de
forma circular a partir de la ltima posicin de
reemplazo
Al pasar por una pgina con bit de referencia a uno, se
pone a cero
Si se encuentra una pgina con el bit de uso a cero, se
reemplaza esa pgina

Software de Memoria Virtual


Polticas de Reemplazo (VI)
Algoritmo del reloj (Segunda Oportunidad)

Software de Memoria Virtual


Polticas de Reemplazo (VII)

Algoritmo del reloj (Clases de pginas)

Utiliza el bit de uso (u) y el bit de modificacin (m)


Establece cuatro clases de pginas (con u y m)
El algoritmo de reemplazo es:
1.

2.
3.

Comenzando el la posicin actual del puntero, recorrer la lista de


marcos. Durante este recorrido se selecciona el primer marco
con u=0 y m=0. No se modifica el bit de uso
Si falla el paso 1, recorrer de nuevo la lista buscando marcos con
u=0 y m=1. Poner a cero el bit de uso de las pginas recorridas
Si falla 2, todos los bit de uso estarn a cero. Repetir el algoritmo
desde el paso 1. Esta vez se encontrar un marco en el paso 1 o
en el 2

Software de Memoria Virtual


Polticas de Reemplazo(VIII)

Software de Memoria Virtual


Gestin del Conjunto Residente (I)

Intenta mantener en memoria todas las pginas que un


proceso necesita en un instante dado

Utiliza un algoritmo de asignacin local, pero cambia el


nmero de pginas asignadas a un proceso

Es la estrategia del Conjunto de Trabajo

El conjunto de trabajo de un proceso en un instante virtual t y con


parmetro , W(t, ), es el conjunto de pginas a las que el proceso ha
hecho referencia en las ltimas unidades de tiempo virtual

Por tiempo virtual se entiende el tiempo transcurrido mientras el proceso


esta ejecutando, cada instruccin ejecutada equivale a una unidad de
tiempo virtual

Software de Memoria Virtual


Gestin del Conjunto Residente (II)

El algoritmo mantiene en memoria el conjunto


de trabajo de un proceso para un parmetro
dado
El algoritmo no es aplicable en la prctica

El valor ptimo de es desconocido


El valor ptimo de cambia durante la ejecucin
del proceso
Es impracticable la medida del conjunto de trabajo
de cada proceso, porque sera necesario marcar
cada referencia de cada pgina de un proceso y
mantener una cola ordenada de las pginas del
proceso

Software de Memoria Virtual


Gestin del Conjunto Residente (III)

Algoritmo de Frecuencia de fallos de pgina


(PFF)

Emplea el bit de uso y define un umbral de tiempo F


Controla el tiempo entre fallos de pgina
Si el tiempo entre dos fallos en menor que F, la
pgina se aade al conjunto residente del proceso
que la necesita. Esto aumenta el tamao del
conjunto residente
Si el tiempo entre dos fallos de pgina es mayor que
F, se reemplazan todas las pginas con el bit de uso
a cero y se pone a cero el bit de uso del resto. Esto
reduce el tamao del conjunto residente

Software de Memoria Virtual


Gestin del Conjunto Residente (IV)

El algoritmo PFF no funciona bien cuando el proceso cambia el


conjunto de pginas que utiliza

El conjunto residente crece mucho porque hay muchos fallos de pgina

Algoritmo de Conjunto de trabajo muestreado en intervalos


variables (VSWS)

Reemplaza las pginas no usadas en intervalos de tiempo variables

Emplea el bit de uso y tres parmetros

M, duracin mnima del intervalo

L, duracin mxima del intervalo

Q, nmero de fallos de pgina permitidos en el intervalo

Software de Memoria Virtual


Gestin del Conjunto Residente (y V)

Algoritmo VSWS
1.

Si el tiempo virtual del intervalo llega a L, el intervalo termina

2.

Si se producen Q fallos de pgina en el intervalo


a.

Si el tiempo virtual del intervalo es menor que M, continuar con el intervalo

b.

Si el tiempo virtual del intervalo es mayor que M, el intervalo termina

Durante el intervalo, las pginas siempre se aaden al conjunto


residente. Eso hace que aumente de tamao

El conjunto residente slo puede disminuir de tamao al final


del intervalo

Cuando hay muchos fallos de pgina, el intervalo se reduce y el


conjunto residente se vaca con mayor frecuencia

Software de Memoria Virtual


Polticas de Vaciado

Deciden cundo se lleva a memoria secundaria una pgina que


est en memoria principal

Vaciado por demanda

La pgina se descarga cuando se reemplaza

Vaciado previo

Descarga un conjunto de pginas del mismo bloque de disco

Software de Memoria Virtual


Polticas de Control de Carga

Determinan el nmero de procesos en memoria principal. Grado


de multiprogramacin

El objetivo es limitar el nmero de fallos de pgina para evitar la


hiperpaginacin

Los algoritmos de Gestin del conjunto residente incluyen


control de carga

Criterio L = S

El tiempo medio entre fallos de pgina es el necesario para tratar un fallo de


pgina

Criterio del 50%

El dispositivo de paginacin debe estar en uso el 50% del tiempo

Software de Memoria Virtual


Suspensin de Procesos

Para reducir el grado de multiprogramacin es


necesario expulsar procesos de memoria
Existen las seis posibilidades siguientes:

Proceso con la prioridad ms baja


Proceso con ms fallos de pgina
ltimo proceso en entrar al sistema
Proceso con menos pginas en memoria
Proceso con ms pginas en memoria
Proceso con mayor tiempo de ejecucin restante

Bibliografa

Bsica:

Sistemas operativos. Conceptos fundamentales. James L. Peterson y


Abraham Silberschatz. Ed. Reverte. 1991.

Sistemas operativos, 5 edicin. Willian Stallings. Ed. Pearson. 2005.

Complementaria y de consulta:

Conceptos de Sistemas Operativos, 6 edicin. Silberschatz, Galvin y Gagne.


Ed. Limusa-Wiley. 2002.

Sistemas operativos. Diseo e implementacin, 2 edicin. Andrew


Tanenbaum y Albert Woodhull. Ed. Pearson. 2002.

Potrebbero piacerti anche