Está en la página 1de 27

Administracin de Memoria.

Sistemas Operativos
Tema 4.

Sistemas Operativos (IS11) Tema 4 1

Administracin de memoria.

Jerarqua de memoria:
Registros CPU del procesador
Cach (memoria rpida)
Memoria principal RAM
Almacenamiento secundario (memoria virtual)
Al bajar en la jerarqua ms capacidad pero ms lento es el
dispositivo y ms barato.
Administrador de memoria:
Parte del S.O. que gestiona la memoria:
Control de que partes de la memoria estn utilizadas o libres.
Asignar memoria a procesos y liberarla cuando terminan.
Administrar intercambio entre memoria y disco (Memoria Virtual).

Sistemas Operativos (IS11) Tema 4 2


Administracin de memoria.

Proceso de Compilacin y Carga de un Programa:

Programa Fuente Mdulo Otros Modulos


Objeto Objeto
Contenido
de la memoria Ejecucin
en binario
Compilacin y Editor de Carga
Ensamblador Enlaces

Ejemplo: (enlace de direcciones) Programa ensamblador con


salto a una etiqueta:
ETIQ --
--
jmp ETIQ

Sistemas Operativos (IS11) Tema 4 3

Proceso de Compilacin y Carga de Programas.

En que momento se realiza el enlace o traduccin de


direcciones?
Compilacin: Generando cdigo absoluto, en el momento de
compilacin se sabe donde residir el programa en memoria.
Carga (Reubicacin esttica):
El compilador genera cdigo relocalizable.
Se crean direcciones de memoria absolutas cuando se carga el
programa en memoria.
Ejecucin (Reubicacin dinmica) :
Durante la ejecucin puede moverse el cdigo de un proceso.
Necesita apoyo del hardware:
Direcciones
Registro Base
Logicas
0
1 MEMORIA
CPU +
. FISICA
.
.
100

Sistemas Operativos (IS11) Tema 4 4


Administracin en sistemas Monoprogramados.

En sistemas monoprogramados generalmente la memoria


principal dividida en dos particiones:
Una para el usuario:
Un proceso con su cdigo.
Direccin a partir de la que se cargan programas de usuario.
Otra para el sistema operativo residente (memoria baja).
00000 0FFFF

Sistema
Operativo Usuario

Es necesario proteger las particiones entre s.

Sistemas Operativos (IS11) Tema 4 5

Administracin en sistemas Monoprogramados.


A veces el tamao del S.O. desea variarse:
Ej.: Manejadores de dispositivos que no se usan.
Se puede realizar una reubicacion dinmica del espacio.
Registro Base=
14000
Direccin Direccin
Logica= 346 Fsica= 14346 MEMORIA
CPU +
FISICA

Tambin, cargar los procesos de usuario en memoria alta.


00000 FFFFF

Sistema Proceso
Operativo Libre Usuario

Sistemas Operativos (IS11) Tema 4 6


Administracin en sistemas Multiprogramados.

Es deseable que haya varios procesos en memoria para su


ejecucin concurrente.
Se debe compartir la memoria entre varios procesos que
esperan asignacin de la misma.
Esquemas de asignacin de memoria:
Contigua: particiones fijas y variables
Intercambio (swapping)
Paginacin
Segmentacin
Segmentacin paginada

Sistemas Operativos (IS11) Tema 4 7

Administracin en sistemas Multiprogramados.

Primer esquema de asignacin de memoria: Particiones


La memoria est dividida de antemano en espacios (Particiones).
Un proceso necesita ejecutarse -> Se le asigna uno de dichos
espacios (Particin).
Cada particin puede contener un nico proceso.
Pueden ser:
Particiones Fijas:
Todas el mismo tamao.
Con diferentes Tamaos.
Particiones Variables.

Sistemas Operativos (IS11) Tema 4 8


Particiones Fijas.

Particiones de igual tamao:

00000 0FFFF 1FFFF 2FFFF NFFFF

Sistema
Operativo Particin 1 Particin 2 ... Particin N

Nivel de multiprogramacin limitado por nmero de particiones.


Hay una cola con procesos que quieren utilizar memoria y ejecutarse.
Hay una tabla para indicar particiones ocupadas y libres.

Sistemas Operativos (IS11) Tema 4 9

Particiones Fijas.
Particiones con diferentes tamaos:
00000 0FFFF 3FFFF 40FFF E1FFF FFFFF

Sistema
Operativo Particin 1 Particin 2 ... Particin N

Para procesos que quieren utilizar Proceso 6

Proceso 5 Proceso 4
memoria para ejecutarse: 00000 Proceso 1 Proceso 3 ... Proceso 2 FFFFF
Podemos tener varias colas:
Cada proceso se asigna a una
Sistema
Operativo Particin 1 Particin 2 ... Particin N
cola en funcin de su tamao.

Podemos tener una nica cola: Proceso 3

Cuando se libera una particin -> Proceso 2

se asigna al primer proceso que Proceso 1

cabe en ella. 00000 ... FFFFF

Sistema
Operativo Particin 1 Particin 2 ... Particin N

Sistemas Operativos (IS11) Tema 4 10


Particiones Fijas.
Problemas que presenta este tipo de asignacin de memoria:
Debe proporcionarse reubicacin:
En que particin entrar el proceso?.
Existe Fragmentacin Interna y Externa:
Interna:
Una particin asignada y no ocupada totalmente por el proceso.
Externa:
Un proceso quiere ejecutarse, hay una particin libre, pero de
menor tamao que el proceso.
Necesidad de proteccin: (en sistemas multiprogramados)
Un proceso no acceda al rea de memoria del otro.
Si la reubicacin es dinmica puede usarse registros base-lmite.
Registro Lmite=
1000
Registro Base=
14000
Direccin Direccin
Logica= 346 SI Fsica= 14346 MEMORIA
CPU Es menor ? +
FISICA

NO Interrupcin Hardware
interna al S.O.

Sistemas Operativos (IS11) Tema 4 11

Particiones Variables.

Funcionamiento:
Inicialmente: Toda la memoria (salvo particin del S.O.)
disponible para procesos, como si fuese un gran hueco.
Llega un proceso:
Se introduce en un hueco libre.
El espacio no ocupado ser un nuevo hueco.
Cada zona de memoria ocupada -> una particin.
Proceso termina:
Libera su zona de memoria.
Se convierte en un hueco.
Dicho hueco se fusiona con los adyacentes.
Se conserva una tabla de partes de memoria ocupadas y libres y
la cola de entrada de procesos en memoria.

Sistemas Operativos (IS11) Tema 4 12


Particiones Variables.

Un ejemplo:los procesos se cargan en memoria, compiten


por la CPU y al acabar liberan la memoria
Memoria Memoria
Proceso Requerida Proceso Requerida
P1 600 K P4 700 K
P2 1000 K P5 500 K
P3 300 K

S.O. S.O. S.O. S.O. S.O. S.O. S.O. S.O.


400K
Proceso
Proceso Proceso Proceso Proceso Proceso 600K P5
900K P1 P1 P1 P1 P1
1000K
Proceso Proceso Proceso
2160K

1000K
Proceso Proceso P4 P4 P4
1560K

P2 P2
1700K
300K 300K 300K
2000K
Proceso Proceso Proceso Proceso Proceso
560K

P3 P3 P3 P3 P3
2300K 260K
260K 260K 260K 260K
2560K

Sistemas Operativos (IS11) Tema 4 13

Particiones Variables.

Fragmentacin de Particiones Variables:

Externa: SI. (memoria dividida en huecos pequeos)


Suma del espacio libre en memoria suficiente para el nuevo proceso.
Pero no hay huecos suficientemente grandes para l.
El nuevo proceso no se carga en memoria.

Interna: NO.
Las particiones se crean con el tamao solicitado por el proceso.

Sistemas Operativos (IS11) Tema 4 14


Particiones Variables.
Esta asignacin de memoria se denomina: Asignacin
dinmica de almacenamiento
Como elegir un hueco cuando llega un nuevo proceso de
tamao N?
Estrategas:
Primer Ajuste:
Escoge el primer hueco libre de tamao suficiente.
Mejor Ajuste:
Hueco ms pequeo con tamao suficiente (requiere ver toda la lista
si no est ordenada).
Peor Ajuste:
Hueco ms grande: Pretende conseguir que los huecos que queden
sean grandes (requiere ver toda la lista si no ordenada).

Sistemas Operativos (IS11) Tema 4 15

Particiones Variables.
Cul es el mejor?

Simulaciones y Estadsticas:
Criterio tiempo (reduccin) y utilizacin de memoria
(aprovechamiento):
Primer Ajuste y Mejor Ajuste son mejores que Peor
Ajuste.

Regla del 50%: un anlisis estadstico refleja que


Con Primer Ajuste por cada N bloques de memoria asignados se
pierden 0,5 N bloques por fragmentacin externa (1/3 memoria
inutilizada).

Sistemas Operativos (IS11) Tema 4 16


Particiones Variables.
Proteccin de Memoria: se utiliza cdigo reubicable
Si cdigo reubicable -> se pueden usar registros base y lmite.

Registro Lmite= S.O.


500
Registro Base= Proceso
1400 P5
Direccin Direccin
1400K
Logica= 346 SI Fsica= 1746
Es menor ? + Proceso
P4
NO Interrupcin Hardware 1900K
CPU interna al S.O.
Proceso
P3

Sistemas Operativos (IS11) Tema 4 17

Particiones Variables.

Compactacin: intenta solucionar fragmentacin ext.


Consiste en desplazar las particiones ocupadas para que estn
juntas en memoria:
Queda un solo hueco libre de mayor tamao.
Es una solucin al problema de fragmentacin externa.
Slo es posible si la reubicacin es dinmica (en ejecucin).
Ejemplo: S.O. S.O.
400K 400K
100+300+260= Proceso Proceso
P5 P5
900K 900K
Hueco de 660k 1000K
Proceso
Proceso P4
P4
1600K
1700K Proceso
P3
2000K 1900K
Proceso
P3
2300K
2560K 2560K

Sistemas Operativos (IS11) Tema 4 18


Particiones Variables.
Problemas de la Compactacin:
Consume tiempo: Desplazar zonas de memoria.
Difcil seleccionar una estrategia de compactacin ptima.
(1) (2) (3)

S.O.
300K
P1 200K P1 200K P1 200K P1 200K
500K P2 100K P2 100K P2 100K P2 100K
600K
P3 200K
800K P4 400K
1000K P4 400K
P3 200K P3 200K
1200K

1500K
P4 400K
1900K
2100K

Cul es la mejor?
Sistemas Operativos (IS11) Tema 4 19

Paginacin.

Paginacin: (solucin a fragmentacin externa)


Permite que la memoria de un proceso no sea contigua.
Hay una distincin entre direcciones lgicas y fsicas.
La memoria fsica la dividimos en bloques de tamao fijo:
marcos.
La memoria lgica:
La dividimos en bloques llamados: pginas.
De igual tamao que el marco.
Las pginas de un proceso se cargan en los marcos de la
memoria principal que estn disponibles:
Tenemos trozos del proceso all donde la memoria est
disponible.

Sistemas Operativos (IS11) Tema 4 20


Paginacin.
Hardware de paginacin: para traduccin de direcciones
Tabla de Pginas
Direccin Direccin Fsica
Lgica P D 0 M D
1
2
CPU ...
P M

La direccin lgica generada consta de dos partes:


Nmero de Pagina (P).
Desplazamiento dentro de la pgina (D).
La tabla de pginas: (contiene la direccin base en memoria fsica)
Permite establecer una correspondencia entre el nmero de
pgina y un nmero de marco de memoria fsica.
La direccin fsica es el nmero de marco y el desplazamiento.

Sistemas Operativos (IS11) Tema 4 21

Paginacin.
Memoria Tabla de Memoria
Ejemplos: Lgica Pginas Fsica

Pagina 0 0 1 0
1 Pagina 0
Pagina 1 1 4
2
Pagina 2 2 3 3 Pagina 2
Pagina 3 3 7 4 Pagina 1
5
6
7 Pagina 3
Memoria Tabla de Memoria 8
Lgica Pginas Fsica

0 a 0 16
Pagina 0 1 b 0 5 1 17
2 c 2 18
3 d 3 19
4 e 1 6 4 i 20 a
Pagina 1 5 f 2 1 5 j 21 b
6 g 6 k 22 c
7 h 7 l 23 d
3 2
8 i 8 m 24 e
Pagina 2 9 j 9 n 25 f
10 k 10 o 26 g
11 l 11 p 27 h
12 m 12 28
Pagina 3 13 n 13 29
14 o 14 30
15 p 15 31

Sistemas Operativos (IS11) Tema 4 22


Paginacin.

Tamao de pginas y marcos definidos por Hardware.


Normalmente se escoge un tamao de pgina potencia de 2:
Ya que es ms fcil la traduccin de direcciones lgicas a fsicas.

Direccin Tabla de Pginas


Direccin Fsica
Lgica 0010 000000 0 010 110 000000
1 001
2 110
CPU
3 011
4
5
6 011
7
8
...
m
Tamao memoria lgica 2 M-n bits altos de la direccin lgica= P
n
tamao pgina 2 (bytes o palabras) n bits bajos de la direccin lgica = D
P ndice en tabla de pginas
D desplazamiento

Sistemas Operativos (IS11) Tema 4 23

Paginacin.
El SO traduce direcciones usando una copia de la tabla pginas
en memoria
Implementacin Hardware de la Tabla de Pginas:
1) Un conjunto de registros (circuitos lgicos de alta velocidad):
Habr que cargar estos registros en un cambio de contexto.
Se usa para pocas entradas (unas 256)
2) Tabla en memoria principal y registro base cuyo contenido apunta a
la tabla de pginas:
Para cambiar de tabla de pginas -> Basta cambiar de registro base.
Menor tiempo de cambio de contexto pero mayor de acceso a
memoria
Accedemos dos veces a memoria para obtener un dato en memoria.
Para tablas grandes (millones de entradas)

Sistemas Operativos (IS11) Tema 4 24


Paginacin.
3) Registros Asociativos (TLB): (pequea cach de acceso rpido),
(translation look-aside buffers)
Los registros contienen solo unas pocas entradas de una T.pginas
2 partes en cada registro:
Una clave (nmero de pgina).
Y un valor (nmero de Marco).
Compara el valor de la pgina deseada con todas las claves.
Si la clave est: Proporciona el nmero de marco asociado.
Si no est: Se accede a la tabla de pginas de memoria.
Direccin Direccin Fsica
Lgica P D TLB M D
clave M
Tabla de Pginas
CPU 0
1
2
...
P M

Sistemas Operativos (IS11) Tema 4 25

Paginacin.
Ventaja: Pginas Compartidas:
La paginacin permite compartir cdigo comn entre varios procesos:
Slo si el cdigo es reentrante (no se modifica durante ejecucin).
El rea de datos de los procesos sera diferente.
Ejemplo: varios procesos ejecutan el mismo editor de textos
PROCESO 1 PROCESO 3

Memoria Tabla de Memoria Tabla de Memoria


Lgica Pginas Lgica Pginas Fsica

Una nica copia Editor 1 0 3


1 Editor 1 0 3
1 0
Editor 2 1 4 Editor 2 1 4 1 Datos 1
Del editor en Editor 3 2 6 Editor 3 2 6 2 Datos 3
3 Editor 1
Memoria fsica Datos 1

PROCESO 2
3 1 Datos 3 3 2
4 Editor 2
5
6 Editor 3
Memoria Tabla de 7 Datos 2
Lgica Pginas
8
Editor 1 0 3
1 9
Editor 2 1 4 10
Editor 3 2 6 11
Datos 2 3 7 12

Sistemas Operativos (IS11) Tema 4 26


Paginacin.

Proteccin de memoria en entorno con paginacin:


En la tabla de pginas pueden encontrarse unos bits de
proteccin asociados a cada marco
indican si la pgina es de slo lectura o lectura y escritura.
Cuando se consulta el nmero de marco, se consultan adems
los bits de proteccin.
Se debe controlar que el nmero de pgina no supere el total de
pginas usadas por el proceso (sera una direccin incorrecta).

Sistemas Operativos (IS11) Tema 4 27

Segmentacin.

Otro esquema de asignacin memoria: Segmentacin


El espacio de direcciones lgicas se compone de un conjunto
de segmentos: Cada uno tiene un nombre y una longitud.
Para el usuario las direcciones especifican el nombre del
segmento y el desplazamiento dentro de l.
El nombre del segmento se numera (es un nmero).
<nmero segmento, desplazamiento>
El procesador Intel 8086 usa segmentacin, los programas se
separan en:
Segmento de Cdigo.
Segmento de Datos.
Segmento de Pila.
Hay una divisin lgica del proceso en diferentes segmentos.

Sistemas Operativos (IS11) Tema 4 28


Segmentacin.
Hardware de segmentacin mediante Tabla de segmentos:
Establece la correspondencia entre direcciones fsicas y lgicas.
Se busca en la tabla de acuerdo con el nmero de segmento.
Cada entrada 2 registros:
base (dir. Fsica inicial del segmento en memoria)
lmite de segmento (longitud del segmento)
Se compara lmite del segmento con desplazamiento.
Si desplazamiento vlido, se suma a la direccin el registro base.
Tabla de Segmentos
Direccin
Lgica S d 0
1
2
CPU ... Direccin Fsica =
Base + d
S Limite Base +

Limite SI
>d?
Interrupcin
NO Error de
direccionamiento

Sistemas Operativos (IS11) Tema 4 29

Segmentacin.
Ejemplo: sean 5 segmentos en memoria fsica
1400

Limite Base Segmento 0


2400
Datos 0 1000 1400
Segmento 4 1 400 6300
Subrrutina 1 3200
Segmento 0 Programa 2 400 4300
Principal 3 1100 3200 Segmento 3
Segmento 2 4300
4 1000 4700 4700 Segmento 2
Subrrutina 2
Segmento 3
Segmento 1 Segmento 4
Pila
5700

6300
6700 Segmento 1

Acceso a byte 1200 del segmento 0 da error direccionamiento

Sistemas Operativos (IS11) Tema 4 30


Segmentacin.

Implementacin Hardware de la tabla de segmentos:


Puede ubicarse en registros rpidos o memoria (como paginacin).
Si est en memoria:
Un registro base STBR (segment table base register) indica
inicio de la tabla de segmentos en memoria.
Un registro lmite indica longitud de la tabla de segmentos.
Proteccin:
Bits de proteccin: Segmento de slo lectura o lectura y escritura.
Se consultan antes de acceder al segmento.
Comparticin de cdigo:
Puede realizarse a nivel de segmento (cdigo o datos).
Cada proceso tendr una tabla de segmentos.
Compartir un segmento significa que una entrada de la tabla de
segmentos coincide en varios procesos (igual posicin fsica).

Sistemas Operativos (IS11) Tema 4 31

Segmentacin.
Ejemplo comparticin editor: Tabla de Segmentos
Proceso P1
Memoria Fsica
Limite Base
0 25286 43062
Editor 1 4425 68348 43062
Segmento 0
Datos 1 Editor
Segmento 1
68348
Memoria Lgica
Tabla de Segmentos Datos 1
Proceso P1
Proceso P2 72773
Limite Base

Editor 0 25286 43062

Segmento 0 1 8550 90003


90003
Datos 2
Datos 2
Segmento 1 98553

Memoria Lgica
Proceso P2

Si compartimos un segmento todos los procesos que lo comparten


deben definir dicho segmento con el mismo cdigo.
Direccin ( S , desplazamiento )

Sistemas Operativos (IS11) Tema 4 32


Segmentacin.

Fragmentacin:
Los segmentos son de tamao variable:
Puede haber fragmentacin externa.
Bloques de memoria demasiado pequeos para contener un
segmento.
Solucin: Se puede compactar la memoria (segmentacin usa
reubicacin dinmica).
Problema de fragmentacin, casos extremos:
Cada proceso un segmento, igual esquema que en particiones
variables.
Cada palabra (byte) un segmento:
No habra fragmentacin externa.
Necesitamos una tabla de segmentos del tamao de la memoria.

Sistemas Operativos (IS11) Tema 4 33

Segmentacin Paginada.

Otro esquema de asignacin de memoria es: Segmentacin


paginada
La Memoria lgica est dividida en bloque llamados segmentos que
contienen las regiones de un proceso.
Direccin lgica=<n segmento, desplazamiento>=<S,d>
Los segmento estn divididos en pginas de igual tamao que los marcos
(potencias de 2).
Las pginas de un proceso se cargan en marcos de la memoria principal.
Cada segmento tiene asociada una tabla de pginas
Se usa un registro lmite y base de la tabla de pginas para cada
segmento

Sistemas Operativos (IS11) Tema 4 34


Segmentacin Paginada.

Esquema de traduccin de direcciones


Direccin lgica=<n segmento, desplazamiento>=<S,d>
S= entrada de la tabla de segmentos:
Tabla de Segmentos
Contiene el lmite
0
del segmento
Tabla de Pginas
Contiene la Direccin
Lgica
1
del Segmento S
direccin base ...
de una tabla de S d
S
Limite Base Tabla + m
de Pginas
pginas.
Habr una tabla CPU
de pginas por SI
Direccin
Fsica
cada segmento. Limite
>d?
P d' m d'

El desplazamiento d es: NO Interrupcin


Error de
Un nmero de pgina P. direccionamiento
Un nuevo desplazamiento
dentro de la pgina d.

Sistemas Operativos (IS11) Tema 4 35

Memoria virtual.
Recordemos que queremos:
Mantener simultneamente varios procesos en memoria para
permitir multiprogramacin.
Memoria Virtual:
Permite separar la memoria lgica del usuario de la memoria fsica.
Un proceso en ejecucin no tiene porque encontrarse totalmente en
memoria principal (slo parte).
Ahora un proceso puede ser mayor que la memoria fsica.
Permite transferencia de informacin entre memoria principal y
secundaria (2 niveles consecutivos de la jerarqua de memoria).
Usa un dispositivo de almacenamiento secundario (disco) como
dispositivo de intercambio.
La memoria virtual puede implementarse sobre Paginacin
o Segmentacin paginada: se transfieren pginas.
La transferencia suele ser bajo demanda.

Sistemas Operativos (IS11) Tema 4 36


Paginacin por demanda.
Paginacin por demanda:
Los procesos estn divididos en pginas.
Inicialmente: una serie de pginas del proceso cargadas en memoria
principal (MP), las que se usan.
El resto en almacenamiento secundario.
Necesario un bit de presencia en tabla de paginas: Bit vlido-invlido
1, pgina cargada en MP (v).
0, pgina no cargada (i). Memoria Tabla de
Pginas
Memoria Disco
Lgica Fsica
0
0 A 0 4 v 1
Si el proceso accede a pginas 2
1 B 1 i
residentes en memoria (bit de 3 A
4 A
presencia vlido): 2 C 2 6 v 5 B C
6 C
la ejecucin prosigue normalmente 3 D 3 i 7 D E
Si accede a una pgina no residente 4 E 4 i
8
9 F F
(bit presencia invlido) 10
5 F 5 9 v
Ocurre una interrupcin o fallo de
pgina , Control al SO 6 i

7 i

Sistemas Operativos (IS11) Tema 4 37

Paginacin por demanda.


Gestin de un Fallo de pgina
1. Se detecta que la pgina no est en memoria
2. Se produce una interrupcin
3. Se busca la pgina en almacenamiento secundario (disco)
4. Se busca un marco libre, se lee la pgina de almacenamiento
secundario y se copia en el marco seleccionado
5. Se actualiza la tabla de pginas Interrupcin 2 Sistema Laalmacenamiento
pgina est en

6. Reiniciamos en la instruccin Tabla de


Operativo 3 auxiliar.
interrumpida Pginas Disco

0 4 v Memoria
1 M corresponde Fsica
a una pgina 1 i A 0
Cargar M que no est 1
en memoria. 2 6 v B C 2 A
3
3 i D E 4 B
... F
5
6 C
7
M i 8
6 4 9 F
M+1 9 v 10
Reiniciar la Cargar
instruccin M+2 i la pgina en
memoria.

M 2 v 5
Actualizar la tabla de pginas.

Sistemas Operativos (IS11) Tema 4 38


Paginacin por demanda.

Hardware de apoyo a la paginacin por demanda:


Capacidad de marcar en la tabla de pginas una entrada
como vlida o invalida (bit valido-invalido).
Unidad de almacenamiento secundario:
La seccin de disco empleado para este fin se denomina:
espacio de intercambio o almacenamiento auxiliar.

Paginacin por demanda pura:


Caso extremo: comenzamos la ejecucin de un proceso sin
ninguna pgina cargada en memoria.
Se irn produciendo fallos de pginas sucesivamente y
cargando las pginas necesarias.

Sistemas Operativos (IS11) Tema 4 39

Segmentacin Paginada con Paginacin por Demanda.

No todas las pginas de todos los segmentos estaran en


memoria.
Usamos tambin bits de valido-invalido para la tabla de
pginas asociada a cada segmento.
El funcionamiento es igual que paginacin por
demanda.

Sistemas Operativos (IS11) Tema 4 40


Reemplazo de pginas.

Utilizando Memoria Virtual:


Los procesos tienen parte de sus pginas cargadas en memoria.
En un instante, la totalidad de los marcos de memoria estn
ocupados.
Qu ocurre si ante un fallo de pgina no existe un
marco libre en memoria principal?
Posibles soluciones que aplicara el S.O. :
Abortar el proceso de usuario (no es una buena solucin).
Descargar otro proceso y llevarlo a almacenamiento
secundario liberando sus marcos (se puede hacer).
Reemplazar pginas:
Encontramos un marco que no se est utilizando y lo
liberamos.

Sistemas Operativos (IS11) Tema 4 41

Reemplazo de pginas.

Fallo de pgina con reemplazo de pginas:


Se busca la pgina deseada en almacenamiento secundario.
Se busca un marco libre.
LO HAY: lo utilizamos.
NO LO HAY: reemplazo de pgina
usar un algoritmo de reemplazo de pginas para seleccionar un
marco vctima que genere el menor nmero de fallos de pgina
Pasamos el contenido del marco a almacenamiento secundario.
Actualizamos la tabla de pginas.
Ya disponemos de un marco libre. Se lee la pgina de
almacenamiento secundario y se copia en el marco libre.
Se actualiza la tabla de pginas.
Se reinicia la instruccin interrumpida.

Sistemas Operativos (IS11) Tema 4 42


Rendimiento

Frecuencia de Fallo de pgina


Sea p la probabilidad de que una referencia a memoria provoque un
fallo de pgina (0<p<1)
Si p=0, nunca hay fallos de pgina
Si p=1, hay fallo de pgina en todas las referencias
Sea tm el tiempo de acceso a memoria principal
Sea tfp el tiempo para resolver un fallo de pgina, que depende de:
Tiempo de transferencia entre almacenamiento secundario y memoria
Tiempo de actualizacin de tablas de pginas
Tiempo de reinicio de la ejecucin del proceso
El tiempo efectivo de acceso a memoria TEAM vendr dado por:
TEAM=(1-p).tm + p.tfp
Objetivo de cualquier algoritmo de reemplazo:
Obtener la menor tasa de fallos de pgina posible
Sistemas Operativos (IS11) Tema 4 43

Reemplazo de pginas.
Reduccin del tiempo para resolver los fallos de pgina
Fallo de pgina: dos accesos a almacenamiento secundario
Uno para guardar la pgina vctima
Otro para cargar la nueva pgina
Usar bit de modificado en la tabla de pginas
Al cargar la pgina, desde almacenamiento secundario a
memoria, el bit modificado se pone a 0 (no modificada)
Si se escribe en la pgina el bit pasa a 1 (modificado)
Si la pgina es elegida como vctima se mira su bit de
modificado
Si la pgina no ha sido modificada (bit a cero) no habr
que salvarla
Si la pgina ha sido modificada (bit a uno) se salvar
El uso de bit modificado reduce el tiempo tfp
Sistemas Operativos (IS11) Tema 4 44
Reemplazo de pginas.

La tasa de fallos de pgina (p) depender de:


Nmero de pginas de los procesos
Nmero de procesos en memoria
Nmero de marcos disponibles
Del algoritmo de reemplazo de pginas que se utilice
Hay que usar aquel que conlleve menor nmero de fallos

Para poder implementar un sistema de memoria virtual


nos queda por responder a dos preguntas:
Cmo reemplazar las pginas?
Es necesario escoger un algoritmo de reemplazo de pginas
Cmo decidir cuantos marcos de cada proceso tenemos en
memoria?

Sistemas Operativos (IS11) Tema 4 45

Algoritmos de reemplazo de pgina.


Clasificacin de estrategias de reemplazo:
Reemplazo Global
Utilizan los algoritmos de reemplazo de pginas actuando sobre
las pginas de todos los procesos
Reemplazo Local
Usa los algoritmos slo entre las pginas del proceso que
necesita un reemplazo de pgina
Algoritmos de reemplazo de pginas:
FIFO
ptimo
LRU (Last Recently Used)
De la segunda oportunidad o del reloj
Con bits referenciado y modificado

Sistemas Operativos (IS11) Tema 4 46


Algoritmos FIFO.

Se reemplaza la pgina que lleva ms tiempo en memoria


El SO mantiene una lista de las pginas
Se reemplaza la pgina cabecera de la lista y se inserta al final
El rendimiento no siempre es bueno, pueden sustituirse pginas muy usadas
Puede presentarse la anomala de Belady: ms marcos en memoria no
implica que hayan menos fallos de pgina
Ejemplo: Sea la secuencia: 7, 0, 1, 2, 7, 0, 5, 7, 0, 1, 2, 5
Con 3 marcos, 9 fallos de pgina, con 4 hay 10 fallos
Anomala de Belady
Secuencia pginas 7 0 1 2 7 0 5 7 0 1 2 5 7 0 1 2 7 0 5 7 0 1 2 5

7 7 7 2 2 2 5 5 5 5 5 5 7 7 7 7 7 7 5 5 5 5 2 2

3 Marcos 0 0 0 7 7 7 7 7 1 1 1 0 0 0 0 0 0 7 7 7 7 5

1 1 1 0 0 0 0 0 2 2 1 1 1 1 1 1 0 0 0 0

Fallos de pgina 2 2 2 2 2 2 1 1 1

Sistemas Operativos (IS11) Tema 4 47

Algoritmos ptimo.

El algoritmo ptimo tiene la menor tasa de fallos


Reemplazar la pgina que no se va a usar durante ms tiempo
Es irrealizable ya que no se conoce a priori la utilizacin de memoria de
instrucciones futuras
Ejemplo: En los fallos 1 y 2 hay que decidir la pgina:
1 entre la 0 , 1 y 7 la 7
2
2 entre la 0 , 1 y 2 la 1 1 2 2 1

Secuencia pginas 7 0 1 2 0 3 0 3 2 1 2
7 7 7 2 2 2 2 2 2 2 ?
3 Marcos 0 0 0 0 0 0 0 0 ? ?
1 1 1 3 3 3 3 ? ?
Fallos de pgina
1 2
Sistemas Operativos (IS11) Tema 4 48
Algoritmos LRU (Last Recently Used).
Sustituye la pgina que ms tiempo lleva sin ser usada
Implantacin mediante un contador:
Cada vez que accedemos a memoria se incrementa su valor
Se copia el valor del contador en la tabla de pginas asociado a la pgina a la
que hemos accedido
Se elimina la pgina que tiene el valor del contador ms bajo
Implementacin mediante pila:
En la base, la pgina que lleva ms tiempo, en la cima la ms nueva

Ejemplo:
Secuencia pginas 7 0 1 2 0 3 0 3 2 1 2

7 1 7 1 7 1 2 4 2 4 2 4 2 4 2 4 2 9 2 9 2 11
3 Marcos 0 2 0 2 0 2 0 5 0 5 0 7 0 7 0 7 1 10 1 10
1 3 1 3 1 3 3 6 3 6 3 8 3 8 3 8 3 8
Fallos de pgina

Sistemas Operativos (IS11) Tema 4 49

Algoritmos de la segunda oportunidad o del reloj.


Utiliza un bit de referencia asociado a cada pgina
Inicialmente estn a cero 0
Cambia a 1 cuando se accede a la pgina para leer o escribir
El SO pone peridicamente todos a cero
Funciona como FIFO pero: 1
Selecciona una pgina y examina su bit referenciado
Est a cero, reemplazamos la pgina
Est a uno, se da una segunda oportunidad a la pgina
Se pone el bit referenciado a cero 1
Buscamos la siguiente vctima

Cmo implementarlo?
Se usa una cola circular de las pginas residentes en memoria 0
Un puntero indica la siguiente pgina a reemplazar de la cola
Si bit referenciado = 1, lo ponemos a cero y avanzamos el puntero
Si bit referenciado =0, sustituimos esa pgina

Sistemas Operativos (IS11) Tema 4 50


Algoritmos con bits referenciado y modificado.

Utiliza en cada pgina un bit referenciado (1 indica pgina


accedida) y un bit modificado (1 indica acceso de escritura)
Las pginas agrupadas en cuatro clases:
c Referenciado = 0, Modificado = 0
d Referenciado = 0, Modificado = 1
e Referenciado = 1, Modificado = 0
f Referenciado = 1, Modificado = 1
Se reemplazar la pgina de la clase inferior (nmero ms
bajo) no vaca
Si hay varias en esa clase se utilizar FIFO para la seleccin

El SO pone peridicamente a cero el bit referenciado


Sistemas Operativos (IS11) Tema 4 51

Polticas de asignacin de marcos.


Cuntos marcos se asignan a cada proceso en un sistema
multiprogramado?
Estrategias de asignacin
Asignacin fija
Los marcos de memoria existentes se dividen:
Equitativamente: n marcos/n procesos
Proporcionalmente: se asignan ms marcos a procesos ms grandes
Suele estar asociada a una estrategia de reemplazo local
Asignacin dinmica
La cantidad de marcos de cada proceso vara dinmicamente segn
la necesidades del mismo
Puede aplicarse a:
reemplazo local, cada proceso varia la cantidad de marcos que utiliza
reemplazo global, los procesos compiten por el uso de memoria

Sistemas Operativos (IS11) Tema 4 52


Hiperpaginacin.
Hiperpaginacin (thrashing)
Nmero de fallos de pgina elevado debido a que el n de marcos
asignados al proceso no es suficiente para almacenar las pginas
referenciadas por el mismo
Ms tiempo en la cola de servicio de paginacin que en CPU
El rendimiento de la CPU decrece
Grfica de utilizacin de CPU en funcin del grado de
multiprogramacin
Solucin:
Descargar las pginas de
uno o varios procesos a
almacenamiento secundario
liberando marcos de memoria
Tiempo accesoefec t = (1 p ) t m + p t fp
t m = tiempo de acceso a memoria .
t fp = tiempo de fallo de pagina .
p = probabilid ad de fallo de pagina .
Sistemas Operativos (IS11) Tema 4 53

También podría gustarte