Professional Documents
Culture Documents
Tema 5
1. Gestor de memoria.
Proceso gestor de memoria.
Proceso encargado de la gestin de la memoria:
Acceso a la memoria por varios procesos.
Uso compartido de MEM: Proteccin: Evitar accesos a las zonas de otros
procesos.
Comparticin: Acceso simultneo de varios procesos a una zona de
memoria.
Se persigue:
Poco uso de la memoria, en su forma y en su ejecucin.
Rpido: En la asignacin de la memoria.
2. Conceptos de Memoria
Sistemas tradicionales:
1 Proceso => memoria principal divida en:
Sistema operativo (monitor residente, ncleo).
Programa que se ejecuta.
Sistemas multiproceso:
Sistema operativo (monitor residente, ncleo).
Parte de usuario: subdividida para varios procesos.
Se necesita:
Subdivisin dinmica (sistema operativo) => gestin de memoria.
Reparto eficientemente la memoria. Mximo nmero de procesos.
La memoria y la CPU han de compartirse. Mximo nmero de procesos, CPU al 100%.
3. Requisitos
Requisitos:
Organizacin lgica.
Organizacin fsica.
Reubicacin.
Proteccin.
Comparticin.
3. Requisitos
Organizacin Lgica.
La memoria de un sistema informtico se organiza como un espacio de direcciones
lineal o unidimensional (secuencia de bytes).
Mdulos:
1. Cada mdulo puede escribirse y compilarse independientemente. El sistema
resuelve durante la ejecucin todas las referencias de un mdulo a otro.
2. Distintos grados de proteccin (slo lectura, slo ejecucin) a los distintos
mdulos.
3. Mecanismos para compartir mdulos. La ventaja de la comparticin a nivel de
mdulo.
4. Reubicacin por mdulos.
3. Requisitos
Organizacin Fsica.
La memoria del computador se organiza en dos niveles: memoria principal y
memoria secundaria. En otros se aade la cache.
La memoria principal:
Acceso rpido con un coste relativamente alto.
Voltil, no almacenamiento permanente.
La memoria secundaria:
Lenta y barata.
No es voltil. Almacenamiento a largo plazo de programas y datos.
36M
Proceso 3 18M
22M
4M
Proceso 2 14M
Proceso 1 20M Proceso 1 20M 20M
6M
4M 4M 4M 4M
Reubicacin dinmica:
Las direcciones se convierten dinmicamente para cada acceso.
Las direcciones generadas son traducidas a fsicas en tiempo real.
Los procesos pueden cambiarse de sitio una vez comenzada su ejecucin.
Direccin relativa
Bloque de control
de proceso
Registro base
Sumador Programa
Direccin
absoluta
Registro lmite Comparador
Datos
Interrupcin al
sistema operativo
Pila
Imagen de un proceso
en la memoria principal
Fragmentacin Externa:
Por la mala gestin del espacio libre entre
procesos: Espacios entre procesos. S.O.
Provocada por el espacio muerto entre
particiones.
Proceso
Ej.: Cuatro procesos dejando espacios entre si de
2, 5 y 7 k. La llegada de un proceso requiriendo
14k no atendida aun teniendo ese espacio libre
en MEM. Proceso
4. Particiones de Memoria: Tipos
Carga de programas: Tipos.
Contigua simple.
Particiones estticas.
Particiones estticas: varios tamaos.
Particiones dinmicas.
Segmentacin.
Paginacin.
4. Particiones de Memoria
4.1 Carga de programas : Contigua simple.
Un solo proceso en MEM.
No se permite la multiprogramacin.
Divisin en: S.O., rea de programa y rea sin uso.
Proteccin: limitado el acceso a la zona del sistema operativo (posicin fija).
S.O.
Proceso
Sin uso
4. Particiones de Memoria
4.2 Carga de programas: Particiones estticas (IBM OS/360).
Particiones de igual tamao.
Cada particin contiene el espacio de direcciones de un programa.
Los proceso de tamao menor o igual al de la particin pueden ser ejecutados.
til si son conocidas las necesidades de MEM de los procesos.
Problemas
Programas muy grandes:
No particin suficiente.
Diseo mediante overlays.
Uso ineficiente de MEM:
Programas muy pequeos ocuparn una particin completa.
Problemas si el proceso crece.
4. Particiones de Memoria
4.2.1 Carga de programas: Particiones estticas de varios tamaos.
Las particiones pueden tener distinto tamao.
Depende de las caractersticas del sistema. Distribucin de las necesidades de
los procesos.
Ej.: Particiones de 8, 32, 32, 120, 520K
procesos con necesidades de 5, 9, 9, 35 y 120.
=> utilizacin del 25.7%
Los procesos pueden ser clasificados segn su uso de MEM para acceder a un
tamao de particin.
=> no ptimo.
Asignaciones
Los procesos entran en la cola de entrada.
El sistema los asigna en funcin de la MEM disponible y necesitada.
La cola se ordena segn el algoritmo de asignacin.
4. Particiones de Memoria
4.3 Carga de programas: Particiones Dinmicas.
Las particiones se crean durante la ejecucin del programa.
El tamao de las particiones se ajusta a los procesos.
La gestin de las particiones se realiza mediante tablas:
Zonas de MEM asignada.
Zonas de MEM libre.
Ventajas:
No tiene fragmentacin interna.
La memoria asignada puede crecer dinmicamente (reg. lmite).
Uso compartido de segmentos.
Proteccin:
Registros base y lmite.
Permisos distintos a cada segmento.
Inconvenientes:
Necesidad de compactacin.
Tamao fijo de un segmento (segn los sistemas, 64k)
Acceso lento a MEM si el hardware no lo soporta.
4. Particiones de Memoria
4.4.1 Carga de programas: Segmentacin.
Proceso crece:
1. Se usa memoria contigua.
2. Se desplaza a un hueco suficiente.
3. Swapping de procesos para liberar espacio.
4. En caso contrario: Espera o muerte.
Proceso1 Proceso2
Tabla pginas.
Proc1
Tabla pginas.
Proc2
4. Particiones de Memoria
4.6 Gestin de las Asignaciones: Mtodos.
Mapas de bits.
Listas enlazadas.
Tablas de particiones.
4. Particiones de Memoria
4.6 Asignaciones: Mtodos.
A B C D
Lista enlazada.
Mapa de Bits P, 0, 5 ,0
11111000 H, 5, 3 ,0
11111111 P, 8, 6 , 0
11001111 P, 14, 4, 0 P/H Inic tamao Puntero
H, 18, 2, 0
11111000 P, 20, 6, 0
P, 26,3,0
H, 29, 3, 0
4. Particiones de Memoria
4.6 Asignaciones: Mtodos.
Mapas de bits.
Cada zona de MEM est representada por un bit:
1 => ocupada.
0 => libre.
B.M. Grande =>
Consumo.
Particiones pequeas => poca fragmentacin.
B.M. pequeo =>
Poco consumo.
Particiones grandes => gran fragmentacin.
4. Particiones de Memoria
4.6 Asignaciones: Mtodos.
Listas enlazadas.
La MEM se presenta como una lista enlazada de segmentos.
Se indica si es hueco (h) o proceso (p), direccin de inicio, longitud, puntero
al siguiente elemento.
P1-70k
4. Particiones de Memoria
4.7 Asignaciones: Mtodos.
Sistema de colegas (Buddy system)
The buddy system.
Llega P2 de 35k => 26 = 64k.
128k 256k 512k 1MB
P1-70k P2-35k
P2-35k P3-80k
P4-60k
4. Particiones de Memoria
4.7 Asignaciones: Mtodos.
Sistema de colegas (Buddy system)
The Buddy system.
Se consolidan particiones potencia de 2.
Sale P2.
256k
128k 512k 1MB
P3-80k
Solicitud de 100K
Solicitud de 240K
Solicitud de 64K
Solicitud de 256K
Liberacin de B
Liberacin de A
Solicitud de 75K
Liberacin de C
Liberacin de E
Liberacin de D
N procesos = 2 * N huecos.
Asimetria por fundir huecos adyacentes.
F: % mem en huecos
S : tamao medio de los procesos.
kS : tamao medio de los huecos.
M: mem total.
N huecos => n/2
Mem en h => (n/2)ks=m-ns
Fraccin: f = (MEM Proc/ m) = (nks/2m)
F = k/(k+2). (k cercano a => 20% de uso).
5. Algoritmos de Asignaciones
5.1 Algoritmos de Asignaciones.
First fit.
Se busca cualquier hueco en el que quepa el proceso.
Por cada asignacin se crea una entrada de proceso y otra de hueco.
Rpido.
Next fit.
Si el flujo de llegada de procesos es uniforme todos con las mismas
necesidades de MEM.
Comienza donde se realiz la ltima asignacin.
Best fit.
Busca en toda la lista el hueco que mejor se adapta a las necesidades (ms
pequeo de los posibles).
Lento (busca siempre toda la lista).
Desaprovecha MEM por dejar huecos muy pequeos.
Worst fit.
Busca el espacio vaco ms grande.
El hueco sobrante es grande: utilizable.
8M 8M
12M 12M
Primer ajuste
22M
6M
Mejor ajuste
8M 8M
6M 6M
Bloque asignado
Siguiente ajuste
36M
20M
Listas separadas:
Los algoritmos pueden ser acelerados mediante listas separadas de
huecos y procesos.
Los alg. Slo buscan en la lista de huecos.
Actualizaciones de las listas son complejas.
Ordenacin segn el tamao.
Mejora en el Best fit.
Quick fit:
Listas separadas para los tamaos ms usados.
Las bsquedas son rpidas.
Actualizaciones lentas.
Memoria Virtual
Tema 6
6. Memoria Virtual: Definicin y conceptos
Fotheringham, 1961: El programa (pila, datos, programa) puede ser mayor que
la MEM. El S.O. mantiene las partes en uso del programa en MEM y el resto en
el HD. Se tiene una memoria virtual.
Memoria virtual:
Espacio de direcciones >> MEM.
El espacio virtual dividido en pginas (512 B< pgina < 8 KB).
Cada pgina se corresponde con un marco de pgina.
Tamao marco = tamao pgina.
Lista de
Tabla de
Tabla de Tabla de marcos
pginas del
pginas del proceso B pginas del Tabla de libres
proceso A proceso C pginas del
proceso D
Registro
Puntero a tabla
de pginas
Tabla de pginas
N. pgina
Marco
de
Despla- pgina
zamiento
N. marco
Tablas de pginas.
Dependiendo del tamao de la tabla de pginas la gestin se
realiza:
TP en registros.
TP en memoria.
TP multinivel.
MEM asociativa.
9. Tablas de pginas: Implementacin
Tablas de pginas.
9.1 TP en registros.
Cada proceso tiene asociado un nmero de registros.
Cada registro tiene asociado un marco de pgina.
La carga de un proceso => carga en los registros.
Durante la ejecucin del proceso no se realizan accesos a MEM
para traducir direcciones.
9. Tablas de pginas: Implementacin
Tablas de pginas.
9.2 TP en memoria.
Un registro apunta al comienzo de la TP.
Cambio de contexto => cambio de direccin del registro.
Varias referencias a MEM para traducir los accesos a MEM.
9. Tablas de pginas: Implementacin
PT1 4MB
1024
Direccin
PT2 1024
4 Kbytes para la
raz de la tabla
de pginas
4 Mbytes para la
tabla de pginas
de usuario
4 Gbytes para el
espacio de direc-
ciones de usuario
Direccin virtual
Est la entrada S
de la tabla de pgina
en la TLB?
No
Acceder a la tabla
Rutina de gestin de pginas
de fallo de pgina
El SO ordena No
a la CPU leer Est la pgina en
la pgina del disco memoria principal?
S
La CPU activa
el hardware de E/S Actualizar TLB
La pgina se
transfiere del disco
a memoria principal La CPU genera
la direccin fsica
Memoria
S
llena?
No Actualizar las tablas
de pginas
Buffer de
traduccin adelantada
Acierto de TLB
Despla-
zamiento
Cargar
pgina
Tabla de pginas
Fallo de TLB
Despla-
N. marco zamiento
Direccin real
Fallo de pgina
Aproximaciones a LRU:
Bit de referencia: Bit en ON por cada acceso.
Bits de ref. adicionales: Histrico de los accesos con cadenas de bits. Se
ponderan los accesos.
Segunda oportunidad: FIFO + bit de referencia.
Puntero que barre los marcos.
Bit = 0 => reemplazo.
Bit = 1 => bit = 0: avance de posicin.
Least frequetly used (LFU)
Bits de ref. adicionales.
Contador de accesos.
Problema: Fijar el origen de tiempos no es bueno por la localidad.
Reloj:
Requiere asociar un bit adicional a cada marco, denominado bit de uso.
Cuando se carga una pgina por primera vez en un marco de memoria, el bit de uso de
dicho marco se pone a cero.
Cuando se hace referencia a la pgina posteriormente, el bit de uso se pone a 1.
Cuando llega el momento de reemplazar una pgina, el primer marco encontrado con el
bit de uso a 0 es reemplazado.
Durante la bsqueda para realizar reemplazos cada bit de uso a 1 se cambia a 0.
Primer marco en el buffer
circular de marcos que son
candidatos para el reemplazo
Pgina 9 Pgina 19
uso = 1 uso = 1
Pgina 1
uso = 1
Puntero al
siguiente
Pgina 45
marco uso = 1
Pgina 67 Pgina 13
uso = 1 uso = 0
Pgina 1
uso = 0
Pgina 45
uso = 0
Pgina 727
Pgina 33
uso = 1
uso = 1
Pgina 67 Pgina 13
uso = 1 uso = 0
(b) Estado del buffer justo despus del siguiente reemplazo de pgina
Hiperpaginacin.
El nmero de pginas de cada programa (working set) es inferior al necesario
apra el prinipio de proximidad.
El sistema operativo expulsa un fragmento de un proceso justo antes de ser
usado.
El procesador consume ms tiempo intercambiando fragmentos que ejecutando
instrucciones de usuario.
11. Tamao de pgina
Tamao de pgina.
Mltiples tamaos de pgina proporcionan la flexibilidad necesaria para
usar una TLB eficazmente.
Las pginas grandes se pueden utilizar para traducir instrucciones de
programa.
Las pginas de pequeo tamao se pueden emplear para las pilas de los
hilos.
La mayora de los sistemas operativos favorecen el uso de un solo tipo
de pgina.
Ejemplos de tamaos de pginas
Direccin virtual
Nmero de segmento Desplazamiento
Direccin virtual
N. segmento Despla-
Nmero de segmento Nmero de pgina
zamiento