Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Gestin de Memoria
2
Contenido de la Unidad
3
1. Administracin de memoria
Jerarqua de memoria administrado por el Gestor de memoria
RAM Cach Disco duro
(Random Access Memory)
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
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)
8
ADMINISTRACIN DE MEMORIA
1.1. Monoprogramacin, sin Intercambio ni Paginacin (2/2)
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)
10
1.2. Multiprogramacin
Mltiples colas con Particiones Fijas
de entrada
Particin 4 Particin 4
Particin 2 Particin 2
Particin 1 Particin 1
Sistema Sistema
operativo operativo
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
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
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.
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
(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:
28
Ejercicio propuesto
ADMINISTRACION DE MEMORIA POR INTERCAMBIO
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
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
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.
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.
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.
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.
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.
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.
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
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
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.
41
2.2. Memoria Virtual
Ventajas:
42
2.2. Memoria Virtual
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.
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.
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
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
53
Ejercicio
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:
p d
m-n n
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
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.
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
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
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
68
Algoritmos de reemplazo
de pginas
Cuando se necesite sustituir una pgina, se utiliza un
algoritmo de reemplazo de pginas:
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.
71
SOLUCIN: Ej. de reemplazo de pginas
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.
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
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
78
Algoritmo optimo
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.
80
SOLUCIN: Ej. de reemplazo de pginas
2 4 6 2 5 3 8 6 2
2 2 2 2 2 2
4 4 5 3 8
6 6 6 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.
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
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:
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
Lmite Marco
d<=Lim
d
89
Segmentacin
Desventaja:
90
Sistemas combinados:
Segmentacin paginada
Objetivo: Evitar la fragmentacin externa.
91
Sistemas combinados: Segmentacin paginada
92