Sei sulla pagina 1di 92

Unidad 3.

Gestin de Memoria

Ing. Yoelma Melendres


Sistema Operativo I
Objetivos de la Unidad

Conocer los fundamentos bsicos de organizacin de


la memoria real y memoria virtual.
Conocer y aplicar mediante ejercicios las estrategias
de obtencin y colocacin de pginas en memoria
real.
Revisar y aplicar mediante ejercicios los algoritmos de
reemplazo de pginas utilizados por el Sistema
Operativo.

2
Contenido de la Unidad

1. Memoria Real. Organizacin.


2. Memoria Virtual. Organizacin.
3. Estrategias de obtencin y colocacin de
pginas.
4. Algoritmos para reemplazo de pginas.
5. Tamao de pgina. Localizacin. Conjuntos de
Trabajo.
6. Aspectos de diseo de los sistemas con
paginacin.
7. Segmentacin con paginacin.

3
1. Administracin de memoria
Jerarqua de memoria administrado por el Gestor de memoria
RAM Cach Disco duro
(Random Access Memory)

Decenas de MegaBytes Pequea Centenas de gigabytes


Mediana velocidad Rpida Lento
Mediano precio Costosa Econmico
Voltil. Voltil No voltil

Corresponde al sistema operativo coordinar la utilizacin


de esos tres tipos de memoria.
4
Mapa conceptual de
Tipos de administracin de MEM

Monoprogramacin Con
particiones
fijas Registro
No traen
procesos Multiprogramacin Con base
entre la RAM particiones
y el disco variables Registro
lmite

Formas de llevar
el control de uso Mapas de
Tipos de Adm de la MEM bits
. de memoria Intercambi
o (swapping) Listas de
Traen y bloques
llevan libres
procesos Algoritmos de
entre la RAM asignacin de
espacio libre Primer ajuste, siguiente
y el disco ajuste, mejor ajuste, peor
duro ajuste, ajuste rpido
Paginacin Algoritmos
de reemplazo
de pginas FIFO

Segmentaci
LRU
n

Segmentaci Optimo
n paginada

5
ADMINISTRACIN DE MEMORIA
BSICA

Existen dos tipos de sistemas de


administracin de memoria:
1. Los que traen y llevan procesos entre la
RAM y el disco duro durante la ejecucin:
1.1. Intercambio
1.2. Paginacin
Mecanismos artificiales utilizados por la falta de suficiente espacio
en la RAM para contener todos los programas a la vez.

2. Los que no realizan intercambio ni


paginacin.
2.1. Mono programacin
2.2. Multi programacin

6
ADMINISTRACIN DE
MEMORIA
1. Adm. De memoria que no traen y llevan procesos
entre la RAM y el disco duro durante la ejecucin.
1.1. Monoprogramacin
La ejecucin de un proceso a la vez.

1.2. Multiprogramacin
Ejecucin de varios procesos a la vez
Dos mecanismos de administracin:
Con particiones fijas
Con particiones variables

7
ADMINISTRACIN DE MEMORIA
1.1. Monoprogramacin (1/2)

Ejecuta un slo programa a la vez,


repartiendo la memoria entre ese
programa y el SO.
No utiliza Intercambio ni Paginacin.
Cuando el proceso termina, el SO
exhibe un indicador de comandos y
aguarda un nuevo comando.
El nuevo proceso se carga en MEM
sobrescribiendo el primero.
Ya casi no se usa.

8
ADMINISTRACIN DE MEMORIA
1.1. Monoprogramacin, sin Intercambio ni Paginacin (2/2)

Existen tres formas de organizar la memoria:


En computadoras de Primeras
En Mainframes y bolsillo y sistemas computadoras
Minicomputadoras integrados. personales.

Sistema Controladores de
Operativo en dispositivo en ROM
ROM
Programa
de usuario
Programa
de usuario
Programa
de usuario
Sistema Sistema
Operativo Operativo
en RAM en RAM
9
ADMINISTRACIN DE MEMORIA
1.2. Multiprogramacin con Particiones
Fijas
La multiprogramacin aumenta la utilizacin de la CPU.
Consiste en dividir la memoria en n particiones fijas de
diferentes tamaos.

Ejemplo:
Se uso multiprogramacin manual en el OS/360 de los
grandes mainframes de IBM durante muchos aos.
Se le denomin MFT (Multiprogramming with a Fixed number
of Tasks u OS/MFT)

Actualmente pocos SO utilizan este sistema de adm.

10
1.2. Multiprogramacin
Mltiples colas con Particiones Fijas
de entrada
Particin 4 Particin 4

Particin 3 Una sola cola Particin 3


de entrada

Particin 2 Particin 2

Particin 1 Particin 1

Sistema Sistema
operativo operativo

(a) Memoria con particiones (b) Particiones de memoria


fijas, con colas de entrada fijas con una nica cola de
separadas para cada particin. entrada. 11
1.2. Multiprogramacin
Modelado de la Multiprogramacin
Desde un punto de vista probabilstico veremos el
aprovechamiento de la CPU.
Dado por la frmula:

Aprovechamiento de CPU = 1 pn

n Procesos en la memoria.
Pn Probabilidad de tiempo, de que n procesos estn esperando a
que terminen operaciones de E/S (en cuyo caso la CPU estar inactiva)

12
1.2. Multiprogramacin
Modelado de la Multiprogramacin
Utilizacin de la CPU en funcin del nmero de procesos en la memoria

en espera de E/S
Desperdicio
de CPU
en espera de E/S

Porcentaje
de
en espera de E/S
utilizacin
de la CPU
0,48 CPU inactiva: pn = (0,8)n
0,36 CPU ocupada: 1 pn = 1-(0,8)n
0,20

Grado de multiprogramacin
Si los procesos pasan el 80% esperando E/S, deber haber al menos 10 procesos en la RAM
para que el desperdicio de CPU est por debajo del 10%.
13
14
1.2. Multiprogramacin.
Dos problemas introducidos
Reubicacin y Proteccin Sistema
operativo

a) Reubicacin
Equipar la mquina con dos proceso
registros especiales de
hardware:
proceso Reg. base
1. Registro de base
Direccin donde comienza
su particin. Reg. lmite
proceso
2. Registro de lmite
Longitud de la particin.
Ejem. El CDC 6600 el primer supercomputador
del mundo utilizaba este esquema.

15
1.2. Multiprogramacin
RAM
0 Proceso A PROCESOS REG. REG.
BASE LIMITE
1
A 0 80
:
B 80 23
80 Proceso B
C 103 127
81
:
103 Proceso C
:
230 S.O.
:

16
Solucin: Proteccin de direcciones con
registros base y lmite

base + limite

Direccin si si

Trampa al sistema operativo


monitorear error de direccionamiento Memoria

17
Enfoques generales para la
gestin de la memoria
Dependiendo (en parte) del
hardware disponible
2.1. Intercambio (swapping)
Consiste en cargar en la Sistema
memoria un proceso entero, operativo
ejecutarlo durante un rato y
volver a guardarlo en el disco
Proceso
P1
2. 2. Memoria virtual
Permite que los programas se Proceso
ejecuten incluso cuando tan P2
slo una parte de ellos est
cargada en la memoria
principal Espacio de
usuario
Almacenamiento
secundario
Memoria principal

18
Gestin de la memoria:
2.1. INTERCAMBIO (SWAPPING)
Tiempo

Sistema Sistema Sistema Sistema Sistema Sistema Sistema


operativo operativo operativo operativo operativo operativo operativo

La asignacin de memoria cambia a medida que los procesos entran en la memoria y


salen de ella. Las regiones sombreadas representan memoria no utilizada
19
Gestin de la memoria: 2.1. INTERCAMBIO

Sistema
operativo

proceso

proceso

Espacio de
usuario
Almacenamiento
secundario
Memoria principal (RAM)

20
Gestin de la memoria:
2.1. INTERCAMBIO
Asigna un poco de memoria extra cada vez que se intercambie un
proceso a la memoria o se lo cambie de lugar.
(a) Asignacin de espacio para un segmento (b) Asignacin de espacio para una pila y un
de datos que puede crecer. segmento de datos que pueden crecer.

Espacio para crecer


Pila de B

Espacio para crecer,


puede usarlo la pila o
Datos de B los datos segn se
Realmente en uso
requiera.
Programa de B
Al agotarse se transfiere
a otro lugar con
suficiente espacio .
Pila de A
Espacio para crecer
Espacio para crecer

Datos de A Segmento de datos (Heap):


Realmente en uso para variables que se asignan y
Programa de A
liberan de forma dinmica.
Sistema Sistema Pila: para variables locales
operativo operativo normales y las direcciones de
retorno. 21
2.1. INTERCAMBIO
Fragmentacin
Fragmentacin Externa
Cuando existe suficiente espacio de memoria total para satisfacer un
pedido, pero no es contiguo.
Se puede reducir por compactacin de memoria que consiste en
desplazar todos los bloques de memoria para unir toda la memoria libre
en un solo bloque.
Slo es posible si la reubicacin es dinmica (en tiempo de ejecucin)
Problema de E/S:
hay que retener los procesos en memoria mientras est pendiente de E/S

22
Solucin a la Fragmentacin
Compactacin de memoria

23
2.1. INTERCAMBIO
Fragmentacin
Fragmentacin
Interna

Cuando la memoria
asignada en una
particin es un
poco mayor que la
requerida por un
proceso.

24
2.1. Intercambio
Formas de llevar el control de uso
de la RAM
El SO debe administrar la asignacin de memoria
dinmicamente.
Formas de llevar el control del uso de la memoria:
1. Mapas de bits
2. Listas de bloques libres

25
Gestin de Memoria con
Mapas de bits o Listas de bloques libres

Hueco Comienza Longitud Proceso


en 18

(a) Una parte de la memoria con cinco procesos y tres huecos. Las marcas
pequeas corresponden a las unidades de asignacin de memoria. Las regiones
sombreadas (0 en el mapa de bits) estn desocupadas.
(b) El mapa de bits correspondiente.
(c) La misma informacin en forma de lista (lista de bloques libres). 26
Gestin de Memoria con Mapas de Bits

DESVENTAJA:
Una vez que se ha decidido traer a la memoria un proceso de k unidades, el gestor de
memoria debe examinar el mapa de bits en busca de una secuencia de k bits a 0
consecutivos.
27
Buscar en el mapa una secuencia de cierta longitud es una operacin lenta.
Gestin de Memoria con Listas Enlazadas
Anlisis de la lista enlazada ANTES y DESPUES de que el proceso X termine:

Antes de que X termine Despus de que X termine

Cuatro combinaciones de vecinos para el proceso X que termina

28
Ejercicio propuesto
ADMINISTRACION DE MEMORIA POR INTERCAMBIO

Simulacin de actualizacin de la lista de bloques libres en base a la sgte. Memoria:


RAM
A B C D H = BLOQUES LIBRES
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
P = BLOQUE OCUPADO POR PROCESO

Lista de bloques libres


H 0 1 P 1 2 H 3 2 P 5 4 H 9 3 P 12 2 P 14 1 H 15 1

Ejercicios de simulacion:
1. Si se elimina el proceso C, como queda la lista enlazada?
2. Si se elimina el proceso B, como queda la lista enlazada?
3. Si se inserta el proceso E de longitud 4 a partir de la posicion 3, como queda la lista enlazada?

29
Solucin
Simulacin de actualizacin de la lista de bloques libres en base a la sgte. Memoria:
RAM
A B C D H = BLOQUES LIBRES
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
P = BLOQUE OCUPADO POR PROCESO
Estructura del nodo P/H INICIO LONGITUD

Lista de bloques libres


H 0 1 P 1 2 H 3 2 P 5 4 H 9 3 P 12 2 P 14 1 H 15 1

Ejercicios de simulacion:
1. Si se elimina el proceso C, como queda la lista enlazada?
Lista de bloques libres
H 0 1 P 1 2 H 3 2 P 5 4 H 9 5 P 14 1 H 15 1
2. Si se elimina el proceso B, como queda la lista enlazada?
Lista de bloques libres
H 0 1 P 1 2 H 3 11 P 14 1 H 15 1
3. Si se inserta el proceso E de longitud 4 a partir de la posicion 3, como queda la lista enlazada?
RAM
A E D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Lista de bloques libres


H 0 1 P 1 2 H 7 7 P 14 1 H 15 1

P 3 4

30
Gestin de Memoria con Listas Enlazadas
Algoritmos del gestor de memoria para asignar un espacio a un proceso:
1) Primer ajuste: Explorar la lista de segmentos hasta encontrar un hueco lo
suficientemente grande.

2) Siguiente ajuste: El algoritmo realiza la bsqueda a partir de donde se


quedo la ltima vez.

3) Mejor ajuste: Recorrer toda la lista para encontrar el hueco ms pequeo


capaz de contener al proceso.

4) Peor ajuste: Escoger siempre el hueco ms grande disponible, de modo


que el hueco resultante sea lo suficientemente grande como para ser til.

5) Ajuste rpido: Utilizar listas enlazadas que apunten a huecos de


diferentes tamaos Ej. 4KB, 8KB, 16KB, 20KB, etc.

31
Ejercicio
Se tiene una memoria con cinco procesos y se requiere asignar dos
procesos ms: F(1) y G(2), con sus respectivos tamaos.

Determinar cmo ser la asignacin utilizando los algoritmos:

1. Primer ajuste
2. Siguiente ajuste
3. Mejor ajuste
4. Peor ajuste

32
a) Solucin al Ejercicio 1
Se tiene una memoria con cinco procesos y se requiere asignar dos
procesos ms: F(1) y G(2), con sus respectivos tamaos.

Asignacin utilizando el algoritmo:


1) Primer ajuste:
Explora la lista de segmentos hasta encontrar un hueco lo
suficientemente grande.

F G

33
b) Solucin al Ejercicio 1
Se tiene una memoria con cinco procesos y se requiere asignar dos
procesos ms: F(1) y G(2), con sus respectivos tamaos.

Asignacin utilizando el algoritmo:


2) Siguiente ajuste: El algoritmo realiza la bsqueda a partir de
donde se quedo la ltima vez.

F G

34
c) Solucin al Ejercicio 1
Se tiene una memoria con cinco procesos y se requiere asignar dos
procesos ms: F(1) y G(2), con sus respectivos tamaos.

Asignacin utilizando el algoritmo:


3) Mejor ajuste: Recorrer toda la lista para encontrar el hueco
ms pequeo capaz de contener al proceso.

G F

35
d) Solucin al Ejercicio 1
Se tiene una memoria con cinco procesos y se requiere asignar dos
procesos ms: F(1) y G(2), con sus respectivos tamaos.

Asignacin utilizando el algoritmo:


4) Peor ajuste: Escoger siempre el hueco ms grande
disponible, de modo que el hueco resultante sea lo
suficientemente grande como para ser til

F G

36
Ejercicio propuesto

RAM
A B C D OCUPADO
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
LIBRE

Asignar los siguientes procesos a la RAM: F(1), G(3), H(2)


Utilizando los algoritmos sgtes.:
1) primer ajuste Algoritmos del gestor de memoria para asignar un espacio a
2) siguiente ajuste un proceso:
1) Primer ajuste: Explorar la lista de segmentos hasta encontrar
3) Mejor ajuste un hueco lo suficientemente grande.
4) Peor ajuste
2) Siguiente ajuste: El algoritmo realiza la bsqueda a partir de
5) Ajuste rpido donde se quedo la ltima vez.

3) Mejor ajuste: Recorrer toda la lista para encontrar el hueco


ms pequeo capaz de contener al proceso.

4) Peor ajuste: Escoger siempre el hueco ms grande


disponible, de modo que el hueco resultante sea lo suficientemente
grande como para ser til.

5) Ajuste rpido: Utilizar listas enlazadas que apunten a


huecos de diferentes tamaos Ej. 4KB, 8KB, 16KB, 20KB, etc.

37
Solucin al ejercicio
propuesto
SOLUCIN:
1) Utilizando el algoritmo Primer ajuste, asignar los siguientes procesos a la RAM: F(1), G(3), H(2)
RAM A F H B G C D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

2) Utilizando el algoritmo Siguiente ajuste, asignar los siguientes procesos a la RAM: F(1), G(3), H(2)
RAM A F B G C D H
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

3) Utilizando el algoritmo Mejor ajuste, asignar los siguientes procesos a la RAM: F(1), G(3), H(2)
RAM A G B C F D H
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

4) Utilizando el algoritmo Peor ajuste, asignar los siguientes procesos a la RAM: F(1), G(3), H(2)
RAM A G B F H C D
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

38
Solucin utilizando el
algoritmo Ajuste rpido
5) Sea la siguiente RAM, con los 7 procesos
RAM A B C D E F G
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Asignar los sgtes. Nuevos procesos: P(1), Q(3), R(2), S(2)


RAM A Q B C P D R E F S G
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Listas iniciale s
Lista 1: 12, 18 Lista d e e sp acio libre de longitud 1
Lista 2: 15 Lista d e e sp acio libre de longitud 2
Lista 3: 2, 20 Lista d e e sp acio libre d e longitud 3
Lista 4: 6 Lista d e e sp acio libre de longitud 4
Listas actualizadas de spu s de inse rtar los proce sos
Lista 1: 12 , 18
Lista 2: 15
Lista 3: 2, 20
Lista 4: 6
Listas actualizadas de spu s de inse rtar los proce sos
Lista 1: 18, 22
Lista 2:
Lista 3:
Lista 4: 6

39
2.2. Memoria Virtual

La memoria virtual
combina la RAM del
equipo con espacio
temporal en el disco
duro.
Cuando queda poca
RAM, la memoria
virtual mueve datos
de la RAM a un
espacio llamado
archivo de paginacin.
Al mover datos al
archivo de paginacin
y desde l, se libera
RAM para completar la
tarea.
40
2.2. Memoria Virtual
if (programa+datos+pila>cantidadDeRAMdisponible) then
aplicar MEMORIA VIRTUAL.

Memoria virtual:
Se mantiene en la RAM solo aquellas partes del programa
que estn en uso, almacenando el resto de las partes del
programa en el disco.

Puede funcionar en un sistema multiprogramado


Con diversos fragmentos de muchos programas en
memoria a la vez.
Ejem. Mientras un programa espera a que se traiga
del disco una parte de si mismo (esperando por E/S),
la CPU es asignada a otro proceso.

Utiliza una tcnica llamada paginacin.

41
2.2. Memoria Virtual

Ventajas:

Un programa ya no est restringido a la capacidad de la


memoria fsica.

Hay un mayor grado de multiprogramacin sin incrementar


los tiempos de respuesta o retorno.

Menor empleo de E/S y mayor velocidad de ejecucin.

42
2.2. Memoria Virtual

Paginacin por demanda:

Tcnica similar al swapping, con la diferencia en que el


lugar de intercambiar todo el proceso se intercambia una
pgina demandada, a travs de un intercambiador llamado
perezoso (paginador).

43
Cambiar el tamao de la
memoria virtual
Si recibe advertencias porque la memoria virtual del equipo
se est agotando, tendr que aumentar el tamao mnimo
del archivo de paginacin.

Windows establece:
Tamao mnimo inicial del archivo de paginacin =
Cantidad de RAM + 300 Mbytes
Tamao mximo = 3 * Cantidad de RAM instalada.

Si aparecen advertencias con estos niveles recomendados,


aumente los tamaos mximo y mnimo.

44
Cambiar el tamao de la
memoria virtual

45
46
47
48
Cambiar el tamao de la
memoria virtual

49
2.2.Memoria Virtual:
Paginacin (I)
Caractersticas:
1. Cada programa genera un conjunto de direcciones virtuales.
2. Las direcciones virtuales se envan a una unidad de
administracin de memoria (MMU o Memory Management Unit)
3. La MMU establece una correspondencia entre las direcciones
virtuales y las direcciones fsicas en la memoria RAM.

Programa X Direcciones Direcciones fsicas


--------------- virtuales en la RAM
--------------- P1 F1
--------------- P2 MMU F2
--------------- P3 F3
P4 F4

50
2.2. MEMORIA VIRTUAL:
Paginacin (II)
1. La CPU enva direcciones
virtuales a la MMU
Paquete de
la CPU

Controlador
MMU RAM de disco
4

Bus de memoria

2. La MMU enva direcciones


fsicas a la memoria.

La MMU forma parte del chip de la CPU actualmente. En el pasado era un chip
aparte.
51
2.2. Memoria Virtual:
Paginacin (III)
Paginacin
Tcnica de gestin de memoria.
Permite asignar la memoria en forma discontinua.
Realiza dos operaciones:
1. Divide la memoria en bloques de tamao fijo (potencia
de 2, entre 512 y 8.192 bytes) llamados marcos de
pgina.
2. Divide un proceso en bloques del mismo tamao
llamados pginas virtuales.

52
Ejercicio

1. Un S.O. est trabajando con una memoria de 1GB y


utiliza marcos de pgina de 8192 Bytes. Calcular en
cuantos marcos de pgina dividir la RAM.
2. En esta memoria se estn ejecutando dos proceso A y B,
cada uno con un tamao de 35840 Bytes y 60132 Bytes
respectivamente. En cuantas pginas virtuales se divide
cada uno, considerando que el tamao de pagina es igual al
tamao de marco.

53
Ejercicio

1. Un S.O. est trabajando con una memoria de 1GB y


utiliza marcos de pgina de 8192 Bytes. Calcular en
cuantos marcos de pgina dividir la RAM.

Nro. De marcos = capac. De RAM/Tam. De marco =131072

2. En esta memoria se estn ejecutando dos proceso A y B,


cada uno con un tamao de 35840 Bytes y 60132 Bytes
respectivamente. En cuantas pginas virtuales se divide
cada uno, considerando que el tamao de pagina es igual al
tamao de marco.

Cantidad de pginas de A = tam. Del proceso/tam. De pagina = 4,375 -> 5 paginas


Cantidad de pginas de B = tam. Del proceso/tam. De pagina 7,43 -> 8 paginas

54
2.2. Memoria Virtual:
Tablas de pginas
Tabla de pginas, almacena la direccin del marco de pgina
en la memoria fsica (RAM).
RAM

Marco
de
pgina

Direccin de marcos 55
de pgina
56
Esquema de Traduccin de
direcciones de la MMU
Una direccin virtual generada por la CPU se divide en:

Nmero de pgina Desplazamiento

p d
m-n n

Nmero de pgina (p):


Se usa como ndice a una tabla de pginas que contiene
la direccin de un marco de pgina (donde se almacena la
pgina) en la memoria fsica.

Desplazamiento(d):
Se combina con la direccin bsica para definir la direccin
de memoria que se enva a la unidad de memoria

57
Memoria Virtual: Hardware de Paginacin

Direccin Direccin
virtual fsica

Memoria fsica (RAM)


Tabla de pginas
58
Direccin fsica
saliente (24580) Funcionamiento
interno de la MMU
con 16 pginas de
4 KB.

Se presentan los
siguientes problemas:
Desplazamient
1. La tabla de pginas
Tabla de o de 12 bits
pginas copiado en puede ser
forma directa extremadamente
de la entrada a grande.
la salida
2. La traduccin de
direcciones debe
Bit realizarse muy
presente/ rpidamente.
ausente
Pgina virtual = 2; se usa
como ndice para consultar
la tabla de pginas Direccin virtual
entrante (8196) 59
Ejercicio: La CPU genera la direccin virtual entrante
16500 del proceeso Q; obtener la direccin fisica
saliente equivalente.

Tabla de paginas del Proceso Q

Direccin virtual Direccin fsica


Entrante = 16500(10) saliente ?

Datos:
La direccion virtual utiliza
16 bits (4 como indice a
la entrada de paginas y
12 como desplazamiento)

60
Direccin fsica
saliente (24580) Funcionamiento
interno de la MMU
con 16 pginas de
4 KB.

Se presentan los
siguientes problemas:
Desplazamient
1. La tabla de pginas
Tabla de o de 12 bits
pginas copiado en puede ser
forma directa extremadamente
de la entrada a grande.
la salida
2. La traduccin de
direcciones debe
Bit realizarse muy
presente/ rpidamente.
ausente
Pgina virtual = 2; se usa
como ndice para consultar
la tabla de pginas Direccin virtual
Desplazamiento de bits copiado en entrante (16500) 61
forma directa de la entrada a la salida
Modelo de Paginacin
de Memoria Lgica y Fsica
Nmero
de marco

Tabla de
pginas
Memoria
lgica

Memoria
fsica 62
Ejemplo de Paginacin Direccin Nro. de marco
de pagina
0

Tabla de
pginas 3

Memoria lgica 4

Sea una memoria de 32-bytes 5

y pginas de 4-bytes
6

7
63
Memoria fsica
Ilustracin de la asignacin
de marcos libres a un proceso
Lista de marcos libres Lista de marcos libres

Nuevo
proceso

Nuevo proceso

Tabla de pginas
Memoria fsica Memoria fsica

Antes de la asignacin Despus de la asignacin


64
Traduccin de las direcciones
lgicas a direcciones de MEM fsica

Se puede dar en tres momentos:


1. Compilacin:
Si se modifica el programa, hay que recompilar.

2. Carga:
Si no se conoce la ubicacin en el momento de
compilacin se tiene que generar cdigo reubicable.

3. Ejecucin:
Puede ser reubicado de un segmento de memoria a otro.
Se requiere soporte de hardware para la proyeccin de
direcciones (p.ej., registros lmite y base)

65
Reemplazo de pginas
Actan cuando se produce un fallo de pgina.
El S.O. toma el control, para llevar a memoria la
pgina en cuestin colocndola en el lugar que
ocupaba otra.
Si la pgina fue modificada durante su estada
en memoria, se tiene que sobre escribir en
disco.

66
Reemplazo de pginas

67
Algoritmos de reemplazo de
pginas

No de marcos

A ms marcos de pginas menos faltas de pginas.

68
Algoritmos de reemplazo
de pginas
Cuando se necesite sustituir una pgina, se utiliza un
algoritmo de reemplazo de pginas:

1. FIFO (First In, First out)


Primero en llegar, Primero en salir
2. LRU (Least Recently Used)
Menos recientemente usado
3. Optimo (Menos usado en el futuro cercano)

69
Algoritmos de reemplazo de
pginas
FIFO (First In, First out) Primero en llegar, Primero en salir)
Utiliza una cola pginas por hora de llegada a memoria.
La primera de la cola ser la primera en ser sustituida.
Es inadecuado para sistemas en tiempo compartido pero til en
entornos batch (lotes).
Suponiendo un total de tres marcos, aplicamos este algoritmo con
el resultado de 15 fallos de pgina.

70
Ejercicio 1: Reemplazo de
pginas
Dada la siguientes peticiones de pginas para el
Proceso X. Los nmeros de pginas requeridas
son: 2,4,6,2,5,3,8,6,2; teniendo tres marcos
libres.

Determinar la cantidad de fallas de pginas


generadas si se aplica el algoritmo:
a) FIFO

71
SOLUCIN: Ej. de reemplazo de pginas

Nmeros de pginas requeridas: 2,4,6,2,5,3,8,6,2


a) FIFO (First In, First out) Primero en llegar,
Primero en salir)

2 4 6 2 5 3 8 6 2
2 2 2 5 5 5 6 6
4 4 4 3 3 3 2
6 6 6 8 8 8
Numero de fallos realizados = 8

72
Ejercicio 2: Reemplazo de
pginas
Dada la siguientes peticiones de pginas para el
Proceso X. Los nmeros de pginas requeridas
son: 0,3,5,1,2,3,2,3,2,7,0,4,7,6,4; teniendo tres
marcos libres.

Determinar la cantidad de fallas de pginas


generadas si se aplica el algoritmo:
a) FIFO

73
0 3 5 1 2 3 2 3 2 7 0 4 7 6 4
0 0 0 1 1 1 7 7 7 6
3 3 3 2 2 2 0 0 0
5 5 5 3 3 3 4 4

Fallos de pgina=10

74
Algoritmo LRU

LRU ( Least Recently Used) La menos recientemente usada)


Aproximacin a una solucin optima.
Se debe realizar un control del tiempo de uso de cada
pgina.
Contadores de hardware
Aadir un campo (contador) en las entradas de la tabla de pgina.
El contador con menor valor ser intercambiado.
Pilas
Donde las pginas recientemente usadas se ponen encima; por
tanto la pgina poco usada estar en el fondo.
Desventaja: Exige disponer de hardware especial por lo que
solo las computadoras que lo tienen podrn usarlo.

75
Algoritmo LRU

76
Ejercicio de reemplazo de
pginas
Dada la siguientes peticiones de pginas para el
Proceso A. Los nmeros de pginas requeridas
son: 2,4,6,2,5,3,8,6,2,5,2,5,8,3,1,4; teniendo
tres marcos libres; determinar la cantidad de
fallas de pginas generadas si se aplica el
algoritmo: LRU

77
SOLUCIN: Ej. de reemplazo de pginas

Nmeros de pginas requeridas:


2,4,6,2,5,3,8,6,2
b) LRU (Menos usado recientemente)
2 4 6 2 5 3 8 6 2
2 2 2 2 2 8 8 8
4 4 5 5 5 6 6
6 6 3 3 3 2
Numero de fallos realizados = 8

78
Algoritmo optimo

Intercambia con la pgina que ser menos usada en el


futuro cercano.
Se lo implementa en base al uso histrico de cada pgina.
Es el mejor algoritmo, pero est basado en datos
estadsticos, por lo que puede darse un porcentaje de error.

79
Ejercicio de reemplazo de
pginas
Dada la siguientes peticiones de pginas para el
Proceso X. Los nmeros de pginas requeridas
son: 2,4,6,2,5,3,8,6,2; teniendo tres marcos
libres.

Determinar la cantidad de fallas de pginas


generadas si se aplica el algoritmo: optimo

80
SOLUCIN: Ej. de reemplazo de pginas

Nmeros de pginas requeridas: 2,4,6,2,5,3,8,6,2


c) Optimo (menos usado en el futuro cercano)

2 4 6 2 5 3 8 6 2
2 2 2 2 2 2
4 4 5 3 8
6 6 6 6

Numero de fallos realizados = 6

81
Ejercicio 3. Alg. Optimo

2,4,6,2,5,3,8,6,2,5,2,5,8,3,1,4
Con 4 marcos de pgina.
Fallos de paginas:

82
Ejercicio 3. Alg. Optimo

2,4,6,2,5,3,8,6,2,5,2,5,8,3,1,4
Con 4 marcos de pgina.
Fallos de paginas: 9

2 4 6 2 5 3 8 6 2 5 2 5 8 3 1 4
2 2 2 2 2 2 3 1 4
4 4 4 3 8 8 8 8
6 6 6 6 6 6 6
5 5 5 5 5 5

83
Otros algoritmos

Bit de referencia
Asociado a cada entrada de la tabla de pginas.

Menos frecuentemente usado LFU (Least


Frecuently Used)
Contador en cada pgina

Bit de modificacin
Por cada pgina. Indica si el contenido de la misma a
variado desde que se carg.
Se deben preferentemente sustituir aquellas que no se
modificaron. As se evita el guardar en almacenamiento
secundario.

84
HIPERPAGINACIN O TRASHING

Se presenta cuando la cantidad de marcos


asignados a un proceso es menor al
realmente requerido.
Provoca que:
Se consuma ms tiempo paginando que
procesando.
Mtodo para evitar el trashing:
Localidad de referencias de los procesos
(Proceso dividido en partes o subrutinas, las
cuales se ejecutan por fases)

85
Segmentacin
Desocupado
Pila de llamadas Objetivo de la
segmentacin:
Desocupado
Resolver el problema
rbol de anlisis de que el espacio
sintctico reservado para una
parte de un programa
Desocupado pueda llegar a
Tabla de Espacio ocupado faltar/sobrar,
desaprovechando
constantes actualmente por espacio en memoria.
las constantes
Desocupado
Espacio de direcciones
Texto fuente unidimensional con tablas que
Tabla de smbolos La tabla de smbolos crecen, una tabla podra
toparse con otra.
se ha topado con la
de texto fuente

86
Segmentacin
Consiste en proporcionar a la mquina varios espacios de
direcciones independientes por completo llamados
segmentos.
Cada segmento consta de una sucesin lineal de
direcciones desde 0 hasta algn mximo.
Los segmentos pueden tener longitudes distintas.
Las longitudes de segmento pueden variar durante la
ejecucin sin afectarse unos a otros.
Una direccin en esta memoria segmentada tiene dos
partes:

nmero de segmento desplazamiento dentro del segmento


(s) (d)

87
Segmentacin: Una memoria segmentada
permite que cualquier tabla crezca o decrezca
con independencia de las dems

20 k

16K 16k
Tabla de rbol de
smbolos Texto anlisis 12k
fuente sintc-
tivo Pila
Cons- de
llama
0k 0K 10k tantes 0k 0k das

Segmento Segmento Segmento Segmento Segmento


0 1 2 3 4
88
Hardware de segmentacin

Lmite Marco

d<=Lim
d

89
Segmentacin

Desventaja:

Tambin conduce a una fragmentacin externa.

90
Sistemas combinados:
Segmentacin paginada
Objetivo: Evitar la fragmentacin externa.

Se combina la segmentacin con la paginacin.

La tabla de segmentos apunta a una tabla de pginas


del segmento indicando su longitud.
De esta forma se evita la fragmentacin externa propia
de la segmentacin, pues cualquier hueco ser de una
pgina como mnimo, y por tanto utilizable para
cualquier segmento que lo necesite.

91
Sistemas combinados: Segmentacin paginada

s+reg. base=ndice a la tabla de segmentos. base TP + p= ndice a la tabla de pginas.


base TP=registro base de la tabla de pginas. f = nro. De marco
p=ndice en la tabla de pg. d = desplazamiento en el marco.

92

Potrebbero piacerti anche