You are on page 1of 85

Memoria

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

Gestiona el uso compartido de la MEM.


Proteccin: Acceso de un proceso a la zona de otro.
Comparticin: Acceso compartido a una zona de memoria.
Directrices:
Ocupar poca memoria (en su tamao y su gestin).
No fragmentar memoria.
Rpido: en asignaciones.
Los procesos para ejecutarse necesitan estar en memoria.
1. Los procesos se asignan a particiones.
2. Las particiones pueden existir (G. Esttica) o crearse para ellos
(G. Dinmica).
3. Durante la vida del proceso su posicin puede variar.
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).

La mayora de los programas se organizan en mdulos: no son modificables


(lectura, ejecucin) y modificables.

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.

El sistema ha de gestionar el flujo de procesos entre ellas (S.O.).


Su gestin puede ser realizada por el programador: Overlaying: Un programa y los
datos se organizan con varios mdulos asignados a la misma regin de memoria. Un
mdulo principal es el responsable del intercambio de los mdulos.

En entornos multiproceso el programador no conoce durante la codificacin


cunto espacio habr disponible o dnde estar este espacio (Reubicacin).
3. Requisitos
Proteccin.
El espacio de cada proceso ha de ser protegido de las acciones de otros procesos.
Un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin permiso.
La reubicacin dificulta la proteccin: Es imposible comprobar las direcciones absolutas para
asegurar la proteccin.
Las referencias a memoria deben comprobarse durante la ejecucin.
Los mecanismos que respaldan la reubicacin permiten la gestin de la proteccin.
Mtodos:
Registros lmite y base:
Se almacenan el PCB y marcan las zonas del proceso.
Bits de proteccin:
Cada bloque de MEM tiene asignados unos bits que marcan que proceso puede acceder.
Segmentacin:
Derechos especficos en la tabla de pginas o segmentos.
Segmentos:
Las direcciones virtuales son vlidas si estn entre la base y el lmite (comprobacin va
hardware).
Descriptores del segmento: distintos derechos de acceso a cada bloque o segmento.
Comparticin de bloques o segmentos.
Pginas:
Bits de acceso a cada pgina.
3. Requisitos
Comparticin.
Se ha de permitir el acceso de varios procesos a una misma zona de memoria.
Una serie de procesos ejecutando una misma zona de programa.
Acceso compartido a la misma estructura de datos (paso de info.).
El sistema de gestin de memoria ha de permitir accesos controlados a las reas
compartidas de la memoria, sin comprometer la proteccin.
Fragmentacin 1.

Sistema Sistema Sistema Sistema


operativo
8M
operativo operativo operativo

Proceso 1 20M Proceso 1 20M Proceso 1 20M

56M Proceso 2 14M Proceso 2 14M

36M
Proceso 3 18M
22M

4M

(a) (b) (c) (d)

Efectos de la particin dinmica.


Fragmentacin 2.

Sistema Sistema Sistema Sistema


operativo operativo operativo operativo

Proceso 2 14M
Proceso 1 20M Proceso 1 20M 20M
6M

Proceso 4 8M Proceso 4 8M Proceso 4 8M


14M
6M 6M 6M

Proceso 3 18M Proceso 3 18M Proceso 3 18M Proceso 3 18M

4M 4M 4M 4M

(e) (f) (g) (h)

Efectos de la particin dinmica.


3. Requisitos
Reubicacin 1.
El Sistema es compartido por varios procesos.
Durante la programacin no se conoce el nmero de programas que residirn
en memoria en el momento de la ejecucin.
Se realiza la multiprogramacin entre los procesos con sitio en MEM.
Se cargan y descargan de la memoria principal los procesos activos para maximizar el
uso del procesador.
Se mantiene una reserva de procesos listos.
El programa puede moverse en memoria por un swap.

El programa no puede ser escrito en direcciones absolutas.


Cambio en el direccionamiento.
El Sistema ha de conocer la ubicacin de la informacin:
Control del proceso.
Pila de ejecucin.
Punto de partida de la ejecucin del programa.
3. Requisitos
Reubicacin: Conceptos.
Direccin lgica:
Es una referencia a una posicin de memoria independiente de la asignacin actual de datos a
la memoria.
Se debe hacer una traduccin a una direccin fsica.
Direccin relativa:
La direccin se expresa como una posicin relativa a algn punto conocido.
Direccin fsica:
La direccin absoluta o la posicin real en la memoria principal.
Reubicacin: Tipos.
Reubicacin esttica:
Durante la carga del programa en MEM se calculan todas las direcciones relativas a
direcciones absolutas en MEM (segn el punto de carga).
El programa no puede ser trasladado. Particin fija.
Una vez que un programa haya sido descargado al disco, se limitar a declarar que,
cuando vuelva a ser cargado, debe situarse en la misma regin de memoria principal
que antes.

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

Soporte de hardware para la reubicacin.


Gestin de Memoria.
Fragmentacin 3.
S.O.
Fragmentacin Interna:
Generada por la diferencia entre el tamao Proceso
de una particin de MEM. y el mdulo de
programa situado en ella.
Provocada al no llenar la particin. Particin
Ej: MEM de 10k dividida en regiones de 2k. vaca
Un mdulo de 1.5 k desperdicia 0.5 k.

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.

El nmero de tareas a multiprogramar es fijo (n de particiones).


Proteccin:
Registro base => no es posible la reubicacin
Registro base y lmite => si es posible la reubicacin
La informacin de las particiones est contenida en la PDT (tabla de descripcin
de particiones).
4.2.1 Carga de programas: Particiones estticas .
Gestin de Memoria.
4.2.1 Carga de programas: Particiones estticas de varios tamaos.
Colas independientes:
Una cola para cada particin o tipo.
Los trabajos se asignan a las colas en la ejecucin.
Se reduce la fragmentacin interna.
No ptimo en espacio.
Cola nica:
Mayor fragmentacin.
Todas las particiones en uso.
Necesario un algoritmo de asignacin a la particin.

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.

No existe fragmentacin interna (o es pequea).


Necesaria compactacin de MEM: Agrupacin de la MEM libre.
4. Particiones de Memoria
Sistema con tres procesos de 8k, 32 k y 120k. 1
N Tamao Direcc. Situacin N Tamao Direcc. Situacin
1 8k 312 Asign. 1 32k 352 Utilizable
2 32k 320 Asign. 2 520k 504 Utilizable.
3 --- ---- Vaca. 3 ---- ---- Vaca.
4 120k 384 Asign. 4 ---- ---- Vaca.
Terminan los procesos P2 y P3. 0 0
Llegan P4 (24k), P5 (128k) y P6 (256k). S.O. S.O.
312 312
P1 8K P1 8K
320 320
P2 32K P2 32K
352 352
P4 24K
384 384
P3 120 K P3 120 K
504 504
P5 128K
632
P6 256 K
888
N TamaoDirecc. Situacin
N Tamao Direcc. Situacin 2
1 8k 312 Asign.
1. 32k 320 Usable.
2 32k 320 Vaca.
2. 128k 376 Usable.
3 24k 352 Asign.
3. 136k 888 Vaca.
4 8k 376 Vaca.
5 120k 384 Vaca.
0 0
6 128k 504 Asign.
7 256k 632 Asign. S.O. S.O.
8 136k 888 Vaca.
312 312
P1 8K P1 8K
320 320
P2 32K 32 K
352 352
P4 24K P4 24K
384 384
P3 120 K 128K
504 504
P5 128K P5 128K
632 632
P6 256 K P6 256 K
888 888
4. Particiones de Memoria
4.3.2 Swapping
Los procesos para ejecutarse han de estar en MEM.
Multiprogramacin: Una planificacin rpida necesita varios procesos en MEM.
Los procesos figuran en una cola. El proceso planificado es cargado en MEM. Si es
necesario se descarga otro proceso (inactivo, sin I/O pendientes).
Necesidades de MEMs mayores que las MEMs existente.
Los procesos que tardarn en ser usados se guardan en el HD.
El espacio de memoria del proceso se vuelca al HD.
Organizacin en particiones.
La posicin de regreso depende de la capacidad de reubicacin del sistema.
En algunos sistemas se asigna un rea de swapping durante la creacin del proceso.
El tiempo de intercambio es prcticamente el de transferencia, que es proporcional a la
MEM intercambiada.
El swapping es muy costoso.
En sistemas UNIX se activa para un umbral de carga.
4. Particiones de Memoria
4.4 Carga de programas: Segmentacin
Generalizacin de la asignacin de particiones variables.
Los bloques de un proceso pueden estar en reas distintas y no contiguas (segmentos).
Se permite la reubicacin dinmica.
Fcil proteccin y uso compartido.
Direccionamiento: segmento:desplazamiento.

Uso compartido de segmentos.

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.

Se puede reservar una zona de MEM para el posible crecimiento.


4. Particiones de Memoria
4.5 Carga de programas: Paginacin.
Divisin de la MEM en particiones fijas.
Cada proceso se distribuye en varias de estas particiones.
Tamao de las particiones es pequeo en relacin con el tamao de los procesos.
Los trozos del proceso se denominan pginas y los trozos libres de memoria se
denominan marcos.
El sistema operativo mantiene una tabla de pginas para cada proceso:Muestra la
posicin del marco de cada pgina del proceso.
La direccin de la memoria consta de un nmero de pgina y de un desplazamiento dentro de la
pgina.

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.

P/H Inic tamao Puntero


4. Particiones de Memoria
4.6.1 Asignaciones: Aceleracin

Mejora en prestaciones si se mantienen listas de huecos y de


procesos por separado.
Bsquedas rpidas.
Actualizaciones lentas.
Mayores optimizaciones se obtienen mediante la ordenacin de
las listas de huecos por tamao.
4. Particiones de Memoria
4.7 Asignaciones: Mtodos
Sistema de colegas (Buddy system)
El espacio entero disponible para la asignacin se trata como un solo
bloque de tamao 2U.
Si se hace una solicitud de tamao s tal que 2U-1 < s <= 2U, entonces el
bloque entero se asigna:
En otro caso, el bloque se divide en dos colegas de igual tamao.
Este proceso contina hasta que el bloque ms pequeo sea mayor o igual
que s generndose.
The buddy system
Ventaja:
Al liberar MEM solo se ha de buscar en la lista correspondiente para
consolidaciones.
Inconveniente:
Fragmentacin interna. Redondeo a 2n.
4. Particiones de Memoria
4.7 Asignaciones: Mtodos.
Sistema de colegas (Buddy system)
4. Particiones de Memoria
4.7 Asignaciones: Mtodos.
Sistema de colegas (Buddy system)
The buddy system:
Gestin de las zonas de MEM y huecos en potencias de 2.
Listas separadas segn tamao: 1,2, 4, 8, 186, 32, 64 , etc. (1MB => 21 listas).
Inicio: todas las listas vacas (excepto la total).
Ej. Sistema con 1MB.
Entrada de un proceso 70k => 27 = 128k
Se ha de crear una particin del tamao.

128k 256k 512k 1MB

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

Llega P3 de 80k => 27 = 128k

128k 512k 1MB


256k

P1-70k P2-35k P3-80k


4. Particiones de Memoria
4.7 Asignaciones: Mtodos.
Sistema de colegas (Buddy system)

The Buddy system.


Se consolidad particiones potencia de 2.
P1 sale: Libera todo el bloque de 128k. (lista de bloques de 128k).
P4 de 60k llega. => 26=64k.

128k 512k 1MB


256k

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

P4-60k P3-80k P4-60k


1 bloque de
1 megabyte

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

Figura 7.6. Ejemplo del sistema de colegas.


4. Particiones de Memoria
4.7 Asignaciones: Mtodos.
Sistema de colegas (Buddy system)
4. Particiones de Memoria
4.8 Anlisis de la gestin.

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

ltimo bloque 18M


asignado (14K) 2M

8M 8M

6M 6M

Bloque asignado

14M Bloque libre 14M

Siguiente ajuste

36M
20M

(a) Antes (b) Despus

Figura 7.5. Ejemplo de una configuracin de memoria antes y despus de asignar


un bloque de 16 Mbytes.
5. Algoritmos de Asignaciones
5.2 Algoritmos de Asignaciones: Aceleracin.

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

Conceptos de MV [Fotheringhan 1961]


Principio de Cercana.
Working-Set
Fallo de pgina
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.

Posible gracias al Principio de Cercana: Las referencias a los datos y al


programa dentro de un proceso tienden a agruparse.

Se pueden mantener ms procesos en la memoria principal:


Se cargan slo algunos fragmentos de un proceso particular.
Con tantos procesos en la memoria principal es muy probable que uno de los
procesos est en estado Listo en un instante determinado.
Es posible que un proceso sea ms grande que toda la memoria principal.

El sistema operativo comienza trayendo slo unos pocos fragmentos del


programa.
Working set: El conjunto residente es la parte de un proceso que est
realmente en la memoria principal.
6. Memoria Virtual: Definicin y conceptos

Si el procesador encuentra una direccin lgica que no est en la


memoria principal:
1. Genera una interrupcin que indica un fallo de acceso a la memoria.
2. El sistema operativo pone al proceso interrumpido en estado Bloqueado.
La solucin tradicional para programas mayores que la MEM fsica.
Overlays:
Distribucin del programa en mdulos cargados sgn necesidades.
Control: El programador.

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.

El programa se ejecuta hasta llegar a zona de programa no presente en MEM.


Fallo de pgina para cargar la pgina.
La CPU ha de poder retomar la ejecucin:
Transacciones.
Anticipo de fallos.
7. Memoria Virtual: Soporte

Soportes de la memoria virtual.

Tiene que existir un soporte de hardware para la paginacin y la


segmentacin.
El sistema operativo debe incluir un software para gestionar el movimiento
de pginas o segmentos entre memoria secundaria y memoria principal.

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.

Transferencias MEM disco son del tamao de la pgina.


8. Tablas de
pginas
8. Tablas de pginas
Tablas de pginas.

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

Estructuras de datos para el ejemplo anterior en el instante de tiempo (f).


8. Tablas de pginas: Traduccin
Sistema con VM de 64k
MEM de 32k.
Espacio del proceso
Espacio de memoria fsica 0 010 1
0, 4k 1 001 1
0, 4k
4, 8k 4, 8k
2 110 1
8, 12k 8, 12k 3 000 1
12, 16k 12, 16k 4 100 1
16, 20k 16, 20k
20, 24k
5 011 1
20, 24k
24, 28k 6 000 0
24, 28k
28, 32k 28, 32k 7 000 0
32, 36k 8 000 0
36, 40k
9 101 1
40, 44k
44, 48k
La pgina no presente => bit de ausencia. 10 000 0
48, 52k Su acceso genera un fallo de pgina. 11 111 1
52, 56k 1. Detiene ejecucin. 12 000 0
56, 60k 2. Salva el contenido de un marco en el HD. 13 000 0
60, 64k 3. Se carga la pgina llamada. 14 000 0
4. Retorna la ejecucin del programa en la 15 000 0
direccin que gener el fallo.
Direccin virtual
Despla- Despla-
N. pg. zamiento N. marco zamiento

Registro

Puntero a tabla
de pginas

Tabla de pginas

N. pgina
Marco
de
Despla- pgina
zamiento

N. marco

Programa Mecanismo de paginacin Memoria principal

Traduccin de direcciones en un sistema de paginacin.


8. Memoria Virtual: Traduccin
Tabla de pginas.
El sistema mapea la M.V. en la MEM mediante la MMU (chip o coleccin
de ellos).
Del ejemplo:
64k => 16 bits
D 0 => Marco 2 => 8192
D 20500 (pgina 5) => marco 4 => 12288+20 = 12308
0101000000010100 => 100000000010100
9. Tablas de pginas: Implementacin

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

9.3 TP multinivel TP1 10bits TP2 10bits Offset 12 bits


TP muy grandes (32 bits => 4GB).
TP por partes.

PT1 4MB
1024
Direccin
PT2 1024

4206896 = 4MB + 12292


00000000010000000011000000000100
PT1 = 1 => entre 4M y 8 M
PT2 = 3 => entre 12288 y 16383 (encima de 4M)
Offset = 4
Esquema de dos niveles para direcciones de 32 bits

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

Figura 8.4. Tabla de pginas jerrquica de dos niveles [JACO98a].


9. Tablas de pginas: Implementacin

9.4 MEM asociativa.


Por la lentitud en las traducciones.
TP grandes => en MEM, no en registros.
Localidad en las referencias a memoria.
Solucin:
Componente del MMU con 8-32 entradas.
Cada entrada:
1. n pgina virtual.
2. Bit de modificado.
3. Proteccin (rwx).
4. Marco de pgina (real).
5. Validez.
El cambio de contexto borra la MEM asoc.
Comienza limpia para cada proceso.
Solucin: un juego de MEM asoc. Por proceso.
9. Tablas de pginas: Implementacin

9.5 Tabla de pginas: Proteccin.


Gestin mediante bits.
Bits en la TP por cada pgina.

Entrada en la tabla de pginas:


1. N marco
2. Presencia/ausencia 1/0
3. Proteccin 1 -> R // 0 -> WR
4. Modificado Necesario actualizar la pag al HD.
5. Referenciado Pgina en uso.
6. Cache Pgina en cache (pag. Sobre registros).
9. Tablas de pginas: Implementacin

9.6 Entradas de la tabla de pginas

Direccin virtual

Nmero de pgina Desplazamiento

Entrada de la tabla de pginas

P M Otros bits de control Nmero de marco

(a) Slo paginacin

Formatos tpicos de gestin de memoria.


9. Tablas de pginas: Implementacin
9.7 Buffer de traduccin adelantada.

Cada referencia a la memoria virtual puede generar dos accesos a la memoria:


Uno para obtener la entrada de la tabla de pginas correspondiente.
Otro para obtener el dato deseado.
Para solucionar este problema, los esquemas de memoria virtual hacen uso de
un cache especial para las entradas de la tabla de pginas:
Se trata de la buffer de traduccin adelantada (TLB, Translation Lookaside Buffer).
Contiene aquellas entradas de la tabla de pginas usadas hace menos tiempo.
Funciona del mismo modo que una memoria cache.

Dada una direccin virtual,


1. El procesador examinar primero la TLB.
A. Si la entrada de la tabla de pginas buscada est presente (un acierto en la TLB), se obtiene el
nmero de marco y se forma la direccin real.
B. Si la entrada de la tabla de pginas no se encuentra (un fallo en la TLB), el procesador emplea
el nmero de pgina como ndice para buscar en la tabla de pginas del proceso y examinar la
entrada correspondiente de la tabla de pginas.
Comienzo

Volver a la La CPU comprueba


instruccin que fall la TLB

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

Actualizar las tablas


de pginas

Figura 8.8. Funcionamiento de la paginacin con buffer de traduccin


adelantada (TLB) [FUTH87].
Memoria
Direccin virtual Memoria principal secundaria
Despla-
Despla-
N.
N.pg.
Pg. zamiento
zamiento

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

Figura 8.7. Uso de un Buffer de Traduccin Adelantada.


10. Algoritmos de reemplazo
Algoritmos de reemplazo.

Rigen el criterio de sustitucin de los marcos tras el fallo.


Mximas:
Baja sobrecarga del sistema: Velocidad en la determinacin de la vctima.
No ajustes: Algoritmos independientes de la mquina (problemas por el bajo
nivel).
Eleccin ptima: Eleccin de la vctima cercana a la ptima.
Evaluacin respecto de cadena de referencia (aleatoria o real) y un
nmero de marcos.
10. Algoritmos de reemplazo
FIFO:
Primera pgina en entrar es la primera en salir.
Trata los marcos asignados a un proceso como un buffer circular.
Las pginas se suprimen de la memoria segn la tcnica de turno rotatorio (round-
robin).
Es una de las polticas de reemplazo ms sencillas de implementar.
Se reemplaza la pgina que ha estado ms tiempo en la memoria.
Problema: Estas pginas pueden necesitarse de nuevo y en un plazo de tiempo corto.
ptimo:
Vctima ser la pgina que ms tardar en ser usada.
Tiene la menor tasa de fallos.
No es implementable: Conocer los accesos futuros.
Se usa como patrn de evaluacin.
Menos recientemente usada (LRU).
Se predice el futuro en funcin del pasado.
Victima: pag. menos usada en el pasado.
Cada pg. asociada con el instante del acceso.
Necesarias estructura de informacin para gestionar la historia:
Contador de tiempo / pag.
Cola de accesos/pgina.
Pila: con los accesos. Al principio siempre el ltimo acceso.
10. Algoritmos de reemplazo

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 222 Pgina 191


uso = 0 uso = 1

Pgina 33 Pgina 556


uso = 1 uso = 0

Pgina 67 Pgina 13
uso = 1 uso = 0

(a) Estado del buffer justo antes del reemplazo de pgina

Figura 8.16. Ejemplo de funcionamiento de la poltica del reloj.


Pgina 9 Pgina 19
uso = 1 uso = 1

Pgina 1
uso = 0

Pgina 45
uso = 0

Pgina 222 Pgina 191


uso = 0 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

Figura 8.16. Ejemplo de funcionamiento de la poltica del reloj.


10. Algoritmos de reemplazo
10.1 CACHE de pginas.
Almacenamiento intermedio de pginas:
La pista de la pgina reemplazada se asigna a una de las dos listas
siguientes:
La lista de pginas libres, si la pgina no ha sido modificada.
La lista de pginas modificadas, si lo ha sido.
11. Tamao de pgina.
Cuanto menor sea el tamao de pgina,
Menor ser la cantidad de fragmentacin interna.
Mayor ser el nmero de pginas que se necesitan por proceso.
Tabla de pginas grandes o mayor nmero de registros en la MMU.
Un nmero mayor de pginas por proceso significa que las tablas de pginas sern mayores.
Una gran parte de las tablas de pginas de los procesos activos deben estar en la memoria virtual.
La memoria secundaria est diseada para transferir eficazmente los bloques de datos de
mayor tamao, de manera que es propicia para tamaos de pgina mayores.

Si el tamao de pgina es muy pequeo, estarn disponibles en la memoria


principal un gran nmero de pginas para cada proceso.
Despus de un tiempo, todas las pginas de la memoria contendrn parte de las
referencias ms recientes del proceso. La tasa de fallos de pgina ser menor.
Cuando se incrementa el tamao de la pgina, cada pgina individual
contendrn posiciones cada vez ms distantes de cualquier referencia reciente.
La tasa de fallos ser mayor.
11. Tamao de pgina: Hiperpaginacin

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

Ejemplos de tamaos de pginas.

Computadora Tamao de pgina


Atlas 512 palabras de 48 bits
Honeywell-Multics 1.024 palabras de 36 bits
IBM 370/XA y 370/ESA 4 Kbytes
Familia VAX 512 bytes
IBM AS/400 512 bytes
DEC Alpha 8 Kbytes
MIPS de 4 Kbytes a 16 Mbytes
UltraSPARC de 8 Kbytes a 4 Mbytes
Pentium de 4 Kbytes a 4 Mbytes
Power Pc 4 Kbytes
11. Tamao de pgina: Working set
Asignacin fija:
Otorga a cada proceso un nmero fijo de pginas en las que ejecutar.
Cada vez que se produce un fallo de pgina en la ejecucin de un proceso, se debe
reemplazar una de las pginas de dicho proceso.
Asignacin variable:
Permite que el nmero de marcos asignados a un proceso cambie a lo largo de su vida.
Sencilla de implementar.
Usada por un buen nmero de sistemas operativos.
Cuando se produce un fallo de pgina, se aade un marco libre al conjunto residente del
proceso.
Cuando no hay marcos libres, el sistema operativo debe elegir una pgina que est en la
memoria para reemplazar. Cuando se carga un nuevo proceso en la memoria, se le
asigna cierto nmero de marcos en funcin del tipo de aplicacin, las necesidades del
programa u otros criterios.

Cuando se produce un fallo de pgina, se selecciona la pgina a reemplazar de entre las


del conjunto residente del proceso que sufre el fallo.
La asignacin se evalua periodicamente.
11. Tamao 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.
Working Set en WNT
Ej.: Working Set en WNT
Dependencia del Working Set con la memoria.
En situaciones de hiperpaginacin se revisa el nmero de marcos disponibles.

Para minimizar los fallos se anticipan las lecturas en un radio:


12. Poltica de carga
Polticas de lectura.
Poltica de lectura:
Est relacionada con la decisin de cundo se debe cargar una pgina en la
memoria principal.
Con la paginacin por demanda, se trae una pgina a la memoria principal slo
cuando se hace referencia a una posicin en dicha pgina:
Cuando un proceso se ejecute por primera vez, se producirn muchos fallos de
pgina.
Con la paginacin previa, se cargan ms pginas de las necesarias:
Es ms eficiente traer a la memoria un nmero de pginas contiguas.
12. Poltica de carga
Control de carga.
Determina el nmero de procesos que pueden estar en la memoria principal.
Cuando hay pocos procesos residentes en la memoria, habr muchas ocasiones en las
que todos los procesos estn bloqueados y se gastar mucho tiempo en el intercambio.
Si hay demasiados procesos residentes, el resultado ser la hiperpaginacin.

Suspensin de procesos: Seleccin del proceso suspendido.


1. Procesos con la prioridad ms baja.
2. Procesos con fallos de pgina:
Este proceso no tiene su conjunto de trabajo en la memoria principal, por lo que quedar
bloqueado de todas formas.
3. ltimo proceso activado:
Este es el proceso con menos posibilidades de tener su conjunto de trabajo residente.
4. Proceso con el conjunto residente ms pequeo:
Proceso que necesita el menor esfuerzo futuro para volver a cargar el conjunto residente.
5. El proceso de mayor tamao:
Esta alternativa obtiene la mayor cantidad de marcos libres.
6. Procesos con la mayor ventana de ejecucin restante.
13. Memoria Virtual: Segmentacin
Segmentacin.
Los segmentos pueden ser de distintos tamaos, incluso variando de forma dinmica.
Simplifica la gestin de estructuras de datos crecientes.
Permite modificar y recopilar los programas independientemente.
Mejoras en la comparticin entre procesos.
Mejoras en la proteccin.

Entrada en la tabla de segmentos.


Cada entrada de la tabla de segmentos contiene la longitud del segmento.
Se necesita un bit para indicar si el segmento correspondiente est presente en la
memoria principal.
Otro bit de control necesario es un bit de modificacin que indique si el contenido
del segmento correspondiente ha sido modificado desde que se carg por ltima
vez en la memoria principal.
Entradas de las tablas de segmentos

Direccin virtual
Nmero de segmento Desplazamiento

Entrada del segmento de tabla


P M Otros bits de control Longitud Base de segmento

(b) Slo segmentacin

Formatos tpicos de gestin de memoria.


14. Paginacin y segmentacin combinadas
Paginacin y segmentacin combinadas
La paginacin es transparente al programador.
La paginacin elimina la fragmentacin externa.
La segmentacin es visible para el programador.
La segmentacin permite gestionar estructuras de datos que pueden crecer, la modularidad
y el soporte de la comparticin y la proteccin.

Cada segmento se divide en varias pginas de tamao fijo.


14. Paginacin y segmentacin combinadas

Direccin virtual
N. segmento Despla-
Nmero de segmento Nmero de pgina
zamiento

Entrada de la tabla de segmentos


Otros bits
Longitud Base de segmento
de control
Entrada de la tabla de pginas
Otros bits P = Bit de presencia
P M Nmero de marco M = Bit de modificacin
de control

(c) Segmentacin y paginacin combinadas

Formatos tpicos de gestin de memoria.

You might also like