Está en la página 1de 128

Tema 4

Administracin de la memoria

Pilar Gonzalez
Ferez

de la memoria p.1/128
Tema 4 Administracion

ndice
Introduccin (Carretero [C4.1, C4.2], Stallings [C7.1])
Particin de memoria (Stallings [C7.2], Tanenbaum [C4.2.1 y C.4.2.2])
Memoria virtual con paginacin (Tanenbaum [C4.3, C4.4, C4.6])
Memoria virtual con segmentacin (Tanenbaum [C4.8])
Gestin de la memoria en Linux
Gestin de la memoria en Windows 2000

de la memoria p.2/128
Tema 4 Administracion

ndice
1. Introduccin
1.1. Objetivos del sistema de gestin de memoria (Carretero
[C4.1], Stallings [C7.1])

1.2. Modelo de memoria de un proceso (Carretero [C4.2])

de la memoria p.3/128
Tema 4 Administracion

1. Introduccin
Memoria principal: Recurso a repartir entre el S.O. y los procesos
Sistema con monoprogramacin memoria principal
divida entre el S.O. y el proceso en ejecucin
Sistema con multiprogramacin memoria principal
dividida en dos partes:
Una parte para el sistema operativo
El resto repartida entre los procesos en ejecucin
S.O. reparto de memoria eficiente, transparente y
seguro, proporcionando un espacio independiente a cada
proceso y evitando interferencias entre ellos

Sistema de gestin o administracin de memoria


la parte del S.O. que lleva a cabo, dinmicamente, las
tareas de reparto y control de la memoria
de la memoria p.4/128
Tema 4 Administracion

1.1 Objetivos del sistema de gestin de memoria


Sistemas con multiprogramacin
Requisitos deseables a cumplir por cualquier poltica de
administracin de memoria:
Reubicacin
Proteccin
Comparticin
Organizacin lgica de los programas
Organizacin fsica
Maximizar el rendimiento
Mapas de memoria de los procesos

de la memoria p.5/128
Tema 4 Administracion

Reubicacin
A priori no se puede conocer la posicin de memoria en
la que se va a cargar un programa al ejecutarse
Adems, al reanudar un proceso nueva posicin de
memoria (es muy poco probable que pudiese ocupar la misma posicin que tena
antes de ser suspendido)

El proceso se ha de reubicar en un rea de memoria:


Traducir las direcciones de memoria a las que hace referencia,
direcciones lgicas, en las direcciones de la memoria principal
asignadas al mismo, direcciones fsicas
La MMU (unidad de administracin de memoria) realizar la
traduccin de las direcciones
Se crea un espacio lgico (o mapa) independiente para cada
proceso proyectndolo sobre la parte correspondiente de la
memoria principal de acuerdo con la funcin de traduccin
de la memoria p.6/128
Tema 4 Administracion

Proteccin
Un proceso no puede acceder a la zona de memoria
asignada a otros procesos, ni a la del S.O.
Es necesario un mecanismo para proteger al S.O. y a
los procesos entre s espacios lgicos disjuntos
La reubicacin complica la proteccin
Todas las referencias a memoria de un proceso deben
comprobarse durante su ejecucin slo accedan a
su espacio de memoria
La proteccin de memoria se tiene que satisfacer a
nivel hardware, y no software (El S.O. tendra que tomar el
control en cada referencia a memoria, para realizar la comprobacin)

El mecanismo de proteccin suele estar integrado en


la funcin de traduccin
de la memoria p.7/128
Tema 4 Administracion

Comparticin
Debe haber flexibilidad para permitir que varios
procesos accedan a un misma zona de memoria:
Dos procesos ejecutando el mismo programa mismo cdigo
Varios procesos pueden utilizar una misma estructura de datos

Permitir que direcciones lgicas de dos o ms


procesos, posiblemente distintas entre s, se
correspondan con la misma direccin fsica
compartir memoria
La comparticin de memoria no debe comprometer la
proteccin bsica
El mecanismo empleado para la reubicacin es la
base para las capacidades de comparticin
de la memoria p.8/128
Tema 4 Administracion

Organizacin lgica de los programas


Programas organizados en mdulos, cada uno con
sus caractersticas (algunos son modificables y otros no)
Si el S.O. y el HW pueden tratar de forma efectiva los
programas de usuario y los datos en forma de mdulos,
se tienen una serie de ventajas:
Se pueden escribir y compilar independientemente, y el sistema
resuelve en ejecucin todas las referencias de un mdulo a otro
Distintos grados de proteccin: slo lectura, slo ejecucin
Posibilidad de compartir mdulos (ms fcil para el usuario)

Segmentacin herramienta que ms fcilmente


satisface estas necesidades

de la memoria p.9/128
Tema 4 Administracion

Organizacin fsica
La memoria est organizada, al menos, en dos niveles:
Principal acceso ms rpido, coste ms alto y voltil
Secundaria ms lenta y barata, y no voltil

Secundaria almacenar, a largo plazo, programas y


datos
Principal mantener los programas y datos de uso
actual
La organizacin del flujo de informacin entre la
memoria principal y la secundaria es responsabilidad
del S.O. Esencia de la gestin de memoria

de la memoria p.10/128
Tema 4 Administracion

Maximizar el rendimiento
El gestor de memoria debe maximizar el nmero de
procesos en memoria, y minimizar el desperdicio
inherente al reparto
Poltica de asignacin decidir qu direcciones de
memoria se asignan para satisfacer una peticin
La propia gestin de memoria supone un gasto de
memoria
ptimo: cualquier direccin lgica traducida por
cualquier direccin fsica (Irrealizable!)
Hay zonas de memoria que no se pueden asignar a
procesos (DMA, S.O., disp. mapeados a memoria)
Para un mejor aprovechamiento de la memoria casi
todos los S.O. usan paginacin
Para optimizar el rendimiento memoria virtual
de la memoria p.11/128
Tema 4 Administracion

Mapas de memoria de los procesos


Problema: los mapas de memoria de los procesos son muy grandes
y no caben en memoria
Inicialmente la memoria era muy cara los procesos se vean
limitados por su tamao. Una solucin fue:
Overlays dividir el programa en una serie de fases que se
ejecutan sucesivamente, pero estando residente en memoria
slo una fase. Cada fase, al terminar, carga la siguiente fase, y le
cede el control.
Memoria virtual permite proporcionar a un proceso,
transparentemente, un mapa de memoria mayor que la memoria
principal
La disponibilidad de memorias mayores permite a los programadores
crear aplicaciones con mayores necesidades de memoria sigue
siendo necesario el uso de la memoria virtual
de la memoria p.12/128
Tema 4 Administracion

1.2 Modelo de memoria de un proceso


Fases en la generacin de un ejecutable
Aplicacin conjunto de mdulos de cdigo que han
de ser procesados para obtener el ejecutable:
Compilacin genera el cdigo mquina de cada mdulo
fuente, asignando direcciones a los smbolos definidos en el
mdulo, y resolviendo las referencias a los mismos
Montaje o enlace genera un ejecutable agrupando todos los
archivos objeto y resolviendo las referencias entre mdulos y a
smbolos de bibliotecas

Bibliotecas de objetos
Coleccin de objetos relacionados, normalmente, entre s
Hay un conjunto de bibliotecas predefinidas que proporcionan
servicios a las aplicaciones, como los correspondientes al S.O.

de la memoria p.13/128
Tema 4 Administracion

1.2.1 Fases de la generacin de un ejecutable


Bibliotecas estticas las referencias a sus
smbolos se resuelven en la fase de montaje o enlace
Desventajas del enlace esttico de las bibliotecas:
El archivo ejecutable puede tener un tamao considerable (cdigo
aplicacin + cdigo de las funciones externas)

Todos los programas que usen una determinada funcin de


biblioteca, tendrn una copia del cdigo (p.e. la funcin printf )
Gran desperdicio de memoria en ejecuciones simultneas de
programas que usan las mismas funciones de biblioteca, habr
mltiples copias de las mismas en memoria
Actualizar una biblioteca supone tener que volver a enlazar todos
los programas que usan esa biblioteca (si queremos que usen
las nuevas funciones)

de la memoria p.14/128
Tema 4 Administracion

1.2.1 Fases de la generacin de un ejecutable


Bibliotecas dinmicas o enlazadas dinmicamente
El proceso de enlace se aplaza y se realiza en tiempo de
ejecucin del programa enlace dinmico implcito
Fase del montaje se anota el nombre de la biblioteca para
cargarla y enlazarla al ejecutarse
Se incluye un mdulo de montaje dinmico realizar la
carga y montaje de la biblioteca en la primera referencia a ella en
tiempo de ejecucin
En el ejecutable:
Las referencias a smbolos de la biblioteca se corresponden con smbolos en
el mdulo de montaje dinmico
1a referencia a uno de esos smbolos activacin del mdulo carga y
montaje de la biblioteca
Tambin se resuelve la referencia a ese smbolo, para posteriores usos
Podra suponer modificar durante la ejecucin el cdigo (en principio de slo
lectura)
de la memoria p.15/128
Tema 4 Administracion

Bibliotecas dinmicas
Ventajas:
Tamao de los ejecutables disminuye considerablemente
Rutinas de biblioteca nicamente en un archivo
Varios procesos en ejecucin compartir el cdigo de la
biblioteca
Actualizacin inmediata

Si se producen cambios en la interfaz no podr usar


la biblioteca. Posible solucin:
Mantener nmero de versin asociado a cada biblioteca
En el montaje guardar el nmero de versin en el fichero
ejecutable, para usarlo en el enlace durante la ejecucin
Cambio de interfaz nueva versin de la biblioteca

de la memoria p.16/128
Tema 4 Administracion

Bibliotecas dinmicas (ii)


Cmo compartir el cdigo de una biblioteca dinmica
entre distintos procesos? Tres posibles alternativas:
Establecer un rango de direcciones predeterminado y especfico
para cada biblioteca dinmica. Todos los procesos incluirn ese
rango en su mapa de memoria.
Poco flexible limita el nmero de bibliotecas
Es posible encontrar procesos con mapas de memoria grandes, pero con
zonas sin utilizar

Reubicar las referencias presentes en el cdigo de la biblioteca


durante la carga de la misma, ajustndose a las direcciones que
les han correspondido dentro del mapa de memoria del proceso
La biblioteca se puede cargar en cualquier zona libre del mapa del proceso
Impide poder compartir su cdigo por estar adaptado a esa zona de memoria

de la memoria p.17/128
Tema 4 Administracion

Bibliotecas dinmicas (iii)


Compartiendo las bibliotecas . . .
Cdigo de biblioteca independiente de la posicin (PIC, Position
Independent Code), usando direccionamientos relativos a un
registro, de manera que no se ve afectada mientras se ejecuta:
La biblioteca puede residir en cualquier zona del mapa y adems se comparte
El inconveniente es que es un poco menos eficiente

Al usar las bibliotecas dinmicas, el tiempo de


ejecucin del programa puede aumentar ligeramente
El mecanismo es transparente al usuario
Suele haber versiones estticas y dinmicas de las
bibliotecas:
El montador por defecto selecciona las dinmicas
Se pueden seleccionar las estticas, pidindolo explcitamente
A veces es necesario generar ejecutables autocontenidos
de la memoria p.18/128
Tema 4 Administracion

1.2.1 Fases de la generacin de un ejecutable


Montaje explcito de bibliotecas dinmicas
La aplicacin no conoce durante el montaje qu bibliotecas
necesitar
P.e.: navegador de Internet que maneja ficheros de distintos
formatos, y usa funciones de varias bibliotecas para procesar cada
uno de los formatos. Un nuevo tipo de fichero volver a montarlo
En tiempo de ejecucin se decide qu biblioteca dinmica se
necesita y se solicita su montaje y carga enlace dinmico
explcito
Debe hacer uso de los servicios que ofrece el sistema para realizar
esta solicitud explcita
El mecanismo de carga y montaje de la biblioteca dinmica deja de
ser transparente a la aplicacin
Las bibliotecas tienen normalmente APIs comunes (p. ej. codecs,
plugins, etc.)
de la memoria p.19/128
Tema 4 Administracion

1.2.1 Fases de la generacin de un ejecutable


Formato del ejecutable
Formato tpico de un ejecutable:

de la memoria p.20/128
Tema 4 Administracion

Formato del ejecutable


Cabecera informacin de control para interpretar el
contenido del ejecutable. Entre otras cosas contiene:
Nmero mgico identifica al ejecutable
Direccin del punto de entrada del programa (primer valor del
contador del programa)

Tabla para describir las secciones en el ejecutable

Secciones cada ejecutable tiene un conjunto de


distinto contenido. Las tres ms importantes:
Cdigo (texto) el cdigo del programa
Datos con valor inicial valor inicial de todas las variables
globales inicializadas en el programa
Datos sin valor inicial variables globales no inicializadas.
(Esta seccin aparece descrita, pero en el ejecutable no se almacena, ya que su
contenido es irrelevante. nicamente se indica su tamao.)
de la memoria p.21/128
Tema 4 Administracion

1.2 Modelo de memoria de un proceso


Mapa de memoria de un proceso
Est formado por distintas regiones o segmentos
Objeto de memoria seccin del ejecutable
La asociacin de una regin de un proceso con un
objeto de memoria permite al proceso tener acceso a la
informacin contenida en el objeto
Al ejecutar: se crean varias regiones dentro del mapa
con la informacin del ejecutable:
Cada seccin del ejecutable un objeto de memoria
Regiones iniciales del proceso secciones del ejecutable

Regin zona contigua caracterizada por la direccin


de inicio dentro del mapa de memoria y su tamao
de la memoria p.22/128
Tema 4 Administracion

1.2.2 Mapa de memoria de un proceso


Propiedades y caractersticas de las regiones:
Soporte de una regin objeto de memoria asociado a la regin
Soporte en archivo almacenado en un archivo o en parte del mismo
Sin soporte no tiene contenido inicial, (p.ej. regiones de datos sin
inicializar)

Tipo de uso compartido


Privada slo accesible por el proceso
Compartida puede ser compartido por varios procesos

Proteccin tipo de acceso permitido


Lectura
Ejecucin
Escritura

Tamao fijo o variable


Tamao variable se suele indicar si crece hacia direcciones mayores o
menores

de la memoria p.23/128
Tema 4 Administracion

1.2.2 Mapa de memoria de un proceso


Regiones de un mapa de memoria inicial:
Cdigo (o texto): compartido,
lectura y ejecucin, tamao fijo
Datos con valor inicial:
privado, lectura y escritura,
tamao fijo
Datos sin valor inicial: privado,
lectura y escritura, tamao fijo
Pila: privado, lectura y escritura,
tamao variable (crece cuando
se producen llamadas a funciones y decrece cuando finalizan)
de la memoria p.24/128
Tema 4 Administracion

1.2.2 Mapa de memoria de un proceso


Modelo de memoria dinmico no variable de
regiones que pueden aadirse o eliminarse durante la
ejecucin del proceso.
Se pueden crear nuevas regiones:
Heap soporte para la memoria dinmica,
reservada en tiempo de ejecucin
Archivos proyectados se crea una regin
asociada al fichero
Memoria compartida se crea una regin
asociada a la zona memoria compartida
Pilas para hilos cada hilo necesita su pila,
con las mismas caractersticas que la pila del
proceso
de la memoria p.25/128
Tema 4 Administracion

1.2 Modelo de memoria de un proceso


Operaciones sobre regiones
Durante la vida de un proceso, su mapa de memoria va
evolucionando, y con l las regiones que incluye
Las operaciones que se pueden realizar sobre una
regin dentro del mapa de un proceso:
Crear una regin asocindola a un objeto de memoria
Eliminar una regin, liberando todos los recursos vinculados a
ella
Cambiar de tamao una regin, por peticin explcita del
proceso (Heap) o implcita (pila)
Duplicar una regin, crea una nueva regin, vinculada a un
objeto de memoria, que es copia del anterior (base del fork )

de la memoria p.26/128
Tema 4 Administracion

ndice
2. Particin de la memoria (Stallings [C7.2])
2.1. Particiones estticas
2.2. Particiones dinmicas
2.3. Sistema de colegas
2.4. Relocalizacin y proteccin
2.5. Administracin de memoria (Tanenbaum [C4.2.1 y C.4.2.2])

de la memoria p.27/128
Tema 4 Administracion

2. Particin de la memoria
Particiones estticas
S.O. ocupa una posicin fija de la memoria principal
Resto de la memoria disponible para los procesos
dividida en particiones con lmites fijos
Particiones de igual tamao:
Cualquier proceso, con un tamao menor o igual que el de la
particin, puede cargarse en cualquier particin libre
Los procesos bloqueados, pueden suspenderse, y traer nuevos
procesos a sus particiones
El tamao de las particiones condiciona el tamao mximo de los
programas. Programas ms grandes usando overlays
Fragmentacin interna parte de la memoria de la particin
ser desperdiciada (no se puede asignar a otro proceso). El uso de la
memoria es extremadamente ineficiente
de la memoria p.28/128
Tema 4 Administracion

2.1 Particiones estticas


Particiones de distinto tamao reducen los
problemas
Algoritmo de ubicacin para particiones de distinto
tamao: (Particiones del mismo tamao trivial)
Una cola por particin, y cada proceso asignado a la particin
ms pequea en la que quepa:
Minimiza la fragmentacin interna
No es ptimo desde el punto de vista global particiones sin usar y otras con
grandes colas de espera

Una nica cola para todos los procesos. Al cargar un proceso en


memoria se selecciona la particin ms pequea disponible

Desventajas de las particiones estticas


Nmero de particiones nmero de procesos activos
Trabajos pequeos mucha fragmentacin interna
de la memoria p.29/128
Tema 4 Administracion

2.1 Particiones estticas


Varias colas
de entrada
Particin 4

Particin 4
700K
Una nica
cola de entrada

Particin 3

Particin 3

400K
Particin 2

Particin 2

Particin 1

Particin 1

Sistema
operativo
(a)

100K
0

Sistema
operativo
(b)
de la memoria p.30/128
Tema 4 Administracion

2. Particin de la memoria
Particiones dinmicas
Particiones variables en nmero y longitud
Al cargar un proceso se le asigna exactamente tanta
memoria como necesita

de la memoria p.31/128
Tema 4 Administracion

2.2 Particiones dinmicas


Fragmentacin externa:
Este mtodo produce numerosos huecos (o fragmentos)
pequeos en memoria
Memoria muy fragmentada y decae su rendimiento
Este fenmeno se conoce como fragmentacin externa la
memoria externa a todas las particiones se fragmenta cada vez
ms, limitando el tamao de los procesos que la pueden usar

Compactacin de vez en cuando el S.O. desplaza


los procesos para que estn contiguos la memoria
queda libre en un nico hueco.
Consume mucho tiempo desperdicia tiempo del procesador
Necesita la capacidad de reubicacin dinmica

de la memoria p.32/128
Tema 4 Administracion

2.2 Particiones dinmicas


Algoritmo de ubicacin intentar evitar la
fragmentacin externa (evitando la necesidad de compactacin)
Mejor ajuste (best-fit) Tamao ms prximo al solicitado
Tiene los peores resultados y genera huecos demasiado pequeos
Primer ajuste (first-fit) Primer bloque disponible suficientemente grande
(recorre desde el principio)
El ms sencillo y rpido, y con buenos resultados. Genera pequeas
particiones en las primeras posiciones de la memoria
Siguiente ajuste (next-fit) Siguiente bloque disponible suficientemente grande
(busca desde la ltima posicin)
Peores resultados que el algoritmo del primer ajuste, necesita compactacin
ms frecuentemente
Peor en ajustarse (worst-fit)
Curiosamente, ofrece buenos resultados

Cuando todos los procesos estn bloqueados


Algoritmos de reemplazo decidir cul se suspende
de la memoria p.33/128
Tema 4 Administracion

2. Particiones de memoria
Sistema de colegas
Presenta un equilibrio razonable para superar las
desventajas de los esquemas de particin fija y variable
Los bloques de memoria disponibles son de tamao
2K , con L K U , donde:
2L = tamao de bloque ms pequeo asignable
2U = tamao de bloque ms grande asignable

Inicialmente, la memoria disponible se trata como un


bloque de tamao mximo 2U
Mantiene en todo momento una lista de huecos
(bloques no asignados) para cada tamao 2i

de la memoria p.34/128
Tema 4 Administracion

2.3 Sistema de colegas


Supongamos que se realiza una solicitud de tamao S
Si 2U 1 < S 2U se le asigna el bloque entero 2U
En caso contrario:
Se divide el bloque en dos colegas de igual tamao 2U 1
Si 2U 2 < S 2U 1 se le asigna uno de los colegas 2U 1
En caso contrario, uno de los colegas se divide por la mitad
nuevamente, de tamao 2U 2
El proceso contina hasta que el bloque ms pequeo sea
mayor o igual que S

Cuando una pareja de colegas de la lista i pasa a estar


libre, se les elimina de esa lista y se unen en un slo
bloque de la lista (i + 1)

de la memoria p.35/128
Tema 4 Administracion

2.3 Sistema de colegas

de la memoria p.36/128
Tema 4 Administracion

2.3 Sistema de colegas

de la memoria p.37/128
Tema 4 Administracion

2.3 Sistema de colegas


Dada una solicitud de tamao k, con 2i1 < k 2i , para encontrar
un hueco de tamao 2i :
void conseguir_hueco(int i)
{
if (i == (U+1)) return ERROR;
if (vacia(lista_i))
{ conseguir_hueco(i+1);
dividir_hueco_en_colegas;
poner_colegas_en_lista_i;
}
coger_primer_hueco_de_la_lista_i;
}

Se usa en sistemas paralelos para asignar y liberar programas en


paralelo
UNIX usa una forma modificada del sistema de colegas para la
asignacin de memoria en el ncleo

de la memoria p.38/128
Tema 4 Administracion

2. Particin de memoria
Relocalizacin y proteccin
Un proceso puede ser colocado en distintas particiones
al ser reanudado o desplazado se tiene que utilizar
cdigo relocalizable y realizar el enlace en la ejecucin
Para solventar este problema se distinguen varios tipos
de direcciones:
Direccin lgica referencia a una posicin de memoria
independiente de la asignacin actual de datos a la memoria
Direccin relativa se expresa como una posicin relativa a
algn punto conocido, normalmente el principio del programa
Direccin fsica o absoluta posicin real en la memoria
principal

de la memoria p.39/128
Tema 4 Administracion

2.4 Relocalizacin y proteccin


Proteccin proteger al S.O. de los procesos, y a los
procesos entre s
Solucin a ambos problemas: registro base y registro
lmite

de la memoria p.40/128
Tema 4 Administracion

2. Particin de memoria
Administracin de memoria
Cmo se controlan los huecos de memoria?
Mapas de bits
La memoria se divide en unidades de asignacin y a cada
unidad de asignacin le corresponde un bit del mapa de bits
El bit es
0 si la unidad est desocupada
1 si est ocupada

Problema: Tamao del bloque?


Pequeo mayor ser el mapa de bits
Grande desperdicio de memoria

Listas enlazadas
Mantener una lista enlazada de segmentos de memoria
asignados y libres, donde un segmento es un proceso o un
hueco entre dos procesos
de la memoria p.41/128
Tema 4 Administracion

2.5 Administracin de memoria


Cmo se controlan los huecos? Continuando. . .
Listas enlazadas. . .
Si la lista se ordena por direccin es ms fcil su actualizacin
Si hay dos listas, una para memoria usada y otra para huecos,
la asignacin es ms rpida, pero la liberacin es ms lenta
A

16

E
24

(a)
11111000

P 14 4

P 26 3

H 29 3

11111111
11001111
11111000

H 18 2
Hueco Comienza
en 18

(b)

P 20 6
Longitud 2

Proceso
(c)

Igual para asignar hueco de intercambio


de la memoria p.42/128
Tema 4 Administracion

ndice
3. Memoria virtual con paginacin
3.1. Paginacin (Tanenbaum [4.3])
3.2. Tablas de pginas (Tanenbaum [4.3])
3.3. Algoritmos de reemplazo de pginas (Tanenbaum [4.4])
3.4. Aspectos del diseo para los sistemas de
paginacin (Tanenbaum [4.6])

de la memoria p.43/128
Tema 4 Administracion

3. Memoria virtual
Memoria virtual el tamao combinado del
programa, sus datos y su pila podra exceder la
cantidad de memoria fsica que se le puede asignar. El
sistema mantiene:
Las partes del proceso que se estn usando en
memoria principal
El resto del proceso en disco
Paginacin Una de las tcnicas de memoria virtual
ms usadas que permite ejecutar programas ms
grandes que la memoria fsica disponible de forma
transparente al programador
Direcciones virtuales generadas por el programa
de la memoria p.44/128
Tema 4 Administracion

3.1 Paginacin
Las direcciones virtuales constituyen el espacio de
direcciones virtual
Espacio de direcciones virtual mayor al de direcciones
fsicas
La unidad de administracin de memoria (MMU)
traduce las direcciones virtuales en direcciones fsicas
Tarjeta
de la CPU
CPU

La CPU enva las direcciones


virtuales a la MMU

Unidad de
administracin Memoria
de la memoria
(MMU)

Controlador
de disco

Bus
La MMU enva las
direcciones fsicas a la memoria
de la memoria p.45/128
Tema 4 Administracion

3.1 Paginacin (ii)


El espacio de direcciones virtuales se divide en
pginas
El espacio de direcciones fsicas en marcos de pgina
Tamao(Marco de pgina) Tamao(Pgina)
La pgina es la unidad de intercambio de memoria: las
transferencias entre la memoria principal y el disco
siempre se realizan en pginas

de la memoria p.46/128
Tema 4 Administracion

Ejemplo de paginacin
Espacio de
direcciones
Virtuales
60K-64K
56K-60K
52K-56K
48K-52K
44K-48K
40K-44K
36K-40K
32K-36K
28K-32K
24K-28K
20K-24K
16K-20K
12K-16K
8K-12K
4K-8K
0K-4K

Direcciones virtuales de 16 bits


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

Pgina virtual

Direcciones
de memoria
fsica
28K-32K
24K-28K
20K-24K
16K-20K
12K-16K
8K-12K
4K-8K
0K-4K
Marco de pgina

Espacio de direcciones virtual de


64KB
32KB de memoria fsica
Pginas de 4KB
16 pginas virtuales
8 marcos de pgina
Direccin virtual

Direccin fsica

8192

8192

24576

20500=5*4096+20

12308=3*4096+20

24650=6*4096+74

?
de la memoria p.47/128
Tema 4 Administracion

Fallo de pgina
Problema: espacio de direcciones virtual ms grande
que la memoria fsica
Bit presente/ausente controlar qu pginas estn
presentes en memoria
Qu sucede si no hay asociacin pgina/marco?
Fallo de pgina
1. La MMU detecta que la pgina no tiene correspondencia
2. La MMU provoca un fallo de pgina (interrupcin)
3. S.O. escoge un marco que no se est usando mucho (si es
necesario vuelve a escribir su contenido en disco)
4. Trae la nueva pgina a ese marco
5. Modifica la tabla de pginas
6. Reinicia la instruccin
de la memoria p.48/128
Tema 4 Administracion

Fallo de pgina (ii)

de la memoria p.49/128
Tema 4 Administracion

3.2 Tabla de pginas


Establece la correspondencia entre direcciones
virtuales y fsicas (entre las pginas virtuales y los marcos de
pgina):
Para un funcionamiento ptimo el tamao de la pgina y el
marco debe ser potencia de 2
La direccin virtual se divide en nmero de pgina virtual y
desplazamiento
N pgina virtual

Desplazamiento

El nmero de pgina virtual se usa como ndice para consultar la


tabla de pginas
La entrada correspondiente de la tabla de pginas indica el
nmero de marco de pgina (si est en memoria)
El nmero de marco de pgina se anexa al desplazamiento para
formar una direccin fsica
de la memoria p.50/128
Tema 4 Administracion

3.2 Tabla de pginas (ii)


4 bits de pgina y 12 bits de ajuste
1 1 0 0 0 0 0 0 0 0 0 0 1 0 0

Tabla de
pginas

15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

000
000
000
000
111
000
101
000
000
000
011
100
000
110
001
010

0
0
0
0
1
0
1
0
0
0
1
1
1
110
1
1 Bit presente/
ausente
1

Direccin
fsica
de salida
(24580)

El ajuste de 12
bits se copia de
forma directa
de la entrada
a la salida

Pgina virtual = 2
Se utiliza como ndice
en la tabla de pginas
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0

Direccin
virtual
de entrada
(8196)

de la memoria p.51/128
Tema 4 Administracion

3.1 Tabla de pginas (iii)


Estructura de una entrada de tabla de pginas (posibles
campos)

Nmero de marco
Bits presente/ausente 1 entrada vlida, 0 no est en memoria
Bits de proteccin tipos de acceso permitido
Bit modificado
Bit referenciado o solicitado se ha referenciado a la pgina
Caching desactivado para mapeo en memoria evitar el uso de
la cach para los contenidos de esa pgina
Ocultacin
desactivada Modificado

Presente/Ausente

Nmero de marco de pgina

Referenciado

Proteccin
de la memoria p.52/128
Tema 4 Administracion

3.2 Tabla de pginas (iv)


Implementacin. Problemas:
La tabla es muy grande:
Direcciones 32 bits y 4KB/pgina espacio de direcciones
virtual de 4GB y 1M de pginas (1048576 pginas)
Adems, una por proceso (Por qu?)
Difcil implementacin en registros hardware:
Es costoso si la tabla de pginas es grande
Cada cambio de contexto hay que inicializar los registros

Se puede utilizar memoria principal para almacenarla, ms un


registro con la direccin de inicio

La asociacin debe ser rpida


Cada acceso a memoria asociacin direccin virtual-fsica
Cada instruccin 1, 2 ms accesos a la tabla de pginas
Si se implementa en memoria es ms lento varios accesos
por cada acceso efectivo
de la memoria p.53/128
Tema 4 Administracion

Solucin: Tablas de pginas de varios niveles


Tabla de pginas
de segundo nivel

El campo n de pgina de la direccin virtual


dividida en varios campos (uno por cada nivel)
En memoria slo las tablas necesarias
Proceso de 12MB: 4MB cdigo, 4MB datos,
4MB pila
Total: 4 tablas * 1024 entradas
1023
Antes: 1 tabla * 1048576 entradas
Bits 10

10

12
PT1 PT2 Ajuste
(a)

Tabla de
pginas para
los 4MB
superiores
de memoria

Tabla de pginas
de nivel superior

6
5
4
3
2
1
0

PT1 entrada de la tabla de pginas de 1o nivel


Tabla de pginas de 1o nivel marco donde est la
tabla de pginas de 2o nivel correspondiente
PT2 entrada de la tabla de pginas de 2o nivel

1023
6
5
4
3
2
1
0

Tabla de pginas de 2o nivel marco de pgina donde

Hacia las
pginas

est la pgina
(b)
de la memoria p.54/128
Tema 4 Administracion

Protection
RW
R X
RW
RW
R X
R X
RW
RW

Page frame
31
38
29
62
50
45
14
75

Modified
1
0
1
1
0
0
1
1

Virtual page
140
20
130
129
19
21
860
861

Valid
1
1
1
1
1
1
1
1

No de pgina
Bit de modificado
Bit de proteccin
No de marco de pgina
Bit de validez

Solucin: Memoria asociativa/TLB

Memoria asociativa/TLB (translation lookaside buffer)


Dispositivo hardware que traduce direcciones virtuales
a fsicas sin acceder a la tabla de pginas
Est en el interior de la MMU
Consiste en un nmero pequeo de entradas (casi nunca ms de 64)
Cada entrada contiene informacin sobre una pgina:

de la memoria p.55/128
Tema 4 Administracion

Memoria asociativa/TLB (ii)


Funcionamiento:
Direccin virtual se comprueba, en paralelo, si su
nmero de pgina est presente en el TLB
Si est:
Si no viola los bits de proteccin el nmero de
marco se toma del TLB
Si viola los bits de proteccin Fallo de
proteccin
Si no est Fallo del TLB
La MMU consulta la tabla de pginas
Desaloja una entrada del TLB
La sustituye por la nueva entrada

Qu pasa con el TLB en los cambio de contexto?


de la memoria p.56/128
Tema 4 Administracion

Memoria asociativa + Memoria principal

de la memoria p.57/128
Tema 4 Administracion

Solucin: Tablas de pginas invertidas


En una arquitectura de 64 bits, las tablas de pginas
pueden ser enormes:
Con pginas de 4 KB tablas de 252 entradas !!
Si pginas muy grandes demasiada
fragmentacin interna
Si cada entrada 8 bytes (64 bits) 32 Petabytes
para la tabla de pginas !!
Tablas de pginas multinivel demasiado complejas
por la gran cantidad de niveles necesarios
Solucin: tabla de pginas invertida

de la memoria p.58/128
Tema 4 Administracion

Tablas de pginas invertidas (ii)


Caractersticas:
Una entrada por cada marco de pgina de la
memoria fsica
Con direcciones virtuales de 64 bits, 4KB/pgina y 512 MB de
RAM, slo se necesitan 131.072 entradas

Cada entrada indica qu proceso y qu pgina


virtual de dicho proceso estn en el marco
correspondiente
Problema: la traduccin de direcciones virtuales a
fsicas es mucho ms difcil:
Cada vez que un proceso n referencia a su pgina p, hay
que buscar una entrada (n, p) en toda la tabla invertida para
averiguar el marco

Solucin: TLB + tabla de dispersin


de la memoria p.59/128
Tema 4 Administracion

Tablas de pginas invertidas (iii)

de la memoria p.60/128
Tema 4 Administracion

3. Memoria virtual con paginacin


Algoritmos de reemplazo de pginas
Qu marco seleccionar para una nueva pgina?
Algoritmo ptimo
Reemplaza la pgina que ms tiempo va a tardar en necesitarse
Irreal: el orden de las referencias a memoria no se puede
saber de antemano

de la memoria p.61/128
Tema 4 Administracion

3.3 Algoritmos de reemplazo de pginas


Algoritmo NRU (No Usada Recientemente)
Se utilizan los bits de R (referencia) y M (modificado)
De forma peridica el bit R se establece a 0 distinguir las
pginas que se han solicitado recientemente
Se establecen 4 categoras en base a los bits R y M:
CLASE 0: R = 0, M = 0
CLASE 1: R = 0, M = 1
CLASE 2: R = 1, M = 0
CLASE 3: R = 1, M = 1
Desaloja aleatoriamente una pgina de la clase de nmero ms
bajo que no est vaca
Este algoritmo funciona bien, es rpido y es sencillo de
implementar

de la memoria p.62/128
Tema 4 Administracion

3.3 Algoritmos de reemplazo de pginas (ii)


Algoritmo FIFO: Primero en entrar, primero en salir
Reemplaza la pgina que entr hace ms tiempo en memoria (la
primera que entr)
Es muy malo, al no tener en cuenta el uso de las pginas

de la memoria p.63/128
Tema 4 Administracion

3.3 Algoritmos de reemplazo de pginas (iii)


Algoritmo de la segunda oportunidad
Modificacin del FIFO, evitando los problemas de desalojar una
pgina que se use mucho, teniendo en cuenta su bit R
Funcionamiento:
Si el bit R de la pgina a quitar es 0 se elimina
Si su bit R es 1, se pasa al final y se anula el valor del bit R
(como si fuera nueva)

Si todos los bit R son 1, su comportamiento es el de un FIFO


Busca una pgina antigua a la que no se le haya hecho
referencia desde el ltimo reemplazo
Pgina cargada
en primer lugar

0
A

3
B

7
C

8
D

12
E

14
F

15
G

18
H

Pgina de carga
ms reciente

(a)
3
B

7
C

8
D

12
E

14
F

15
G

18
H

20
A

A se considera como
una pgina recin cargada

(b)
de la memoria p.64/128
Tema 4 Administracion

3.3 Algoritmos de reemplazo de pginas (iv)


Algoritmo del reloj
Difiere del anterior slo en la implementacin
Utiliza una lista circular y un puntero a la pgina a
considerar
Evita tener que mover las pginas en la lista
A
L

Cuando ocurre un fallo de pgina, se


inspecciona la pgina a la que apunta
la manecilla. La accin a realizar
depende del bit R:
R = 0: Retira la pgina de la memoria
R = 1: Limpia R y avanza la manecilla

E
H

F
G
de la memoria p.65/128
Tema 4 Administracion

3.3 Algoritmos de reemplazo de pginas (v)


Algoritmo LRU (Least Recently Used)
Buena aproximacin al algoritmo ptimo
Selecciona la pgina que no ha sido utilizada hace ms tiempo

Problema: Es ineficiente si se implementa con una lista enlazada


actualizacin de la lista en cada referencia a memoria

de la memoria p.66/128
Tema 4 Administracion

3.3 Algoritmos de reemplazo de pginas (vi)


LRU: Implementaciones hardware
Contador especial en hardware de 64 bits
Matriz de N N bits, con N igual al nmero de marcos
Referencia a un marco su fila a 1 y su columna a 0
Se reemplaza el marco con menor fila (como nmero binario)
Ejemplo con serie de referencias 0, 1, 2, 3, 2, 1, 0, 3, 2, 3
Pgina
0 1 2 3
0 0 1 1 1

Pgina
0 1 2 3
0 0 1 1

Pgina
0 1 2 3
0 0 0 1

Pgina
0 1 2 3
0 0 0 0

Pgina
0 1 2 3
0 0 0 0

1 0

2 0

3 0

(a)

(c)

(b)

(d)

(e)

(f)

(g)

(h)

(i)

(j)
de la memoria p.67/128
Tema 4 Administracion

3.3 Algoritmos de reemplazo de pginas (vii)


Algoritmo de maduracin o envejecimiento
Simulacin por software del LRU
Contadores software de N bits para cada pgina
Cada marca de reloj y para cada pgina:
El contador se desplaza un bit hacia la derecha
Se suma el valor del bit R al bit del extremo izquierdo
Se pone a 0

Fallo de pgina desaloja la pgina con el


contador ms bajo
No tan bueno como LRU:
Registra slo un bit por intervalo de tiempo no sabe en qu
instante de un intervalo de tiempo se acceder por ltima vez a
una pgina (al principio o al final?)
Contadores de tamao finito
de la memoria p.68/128
Tema 4 Administracion

3.3 Algoritmos de reemplazo de pginas (viii)


Algoritmo de maduracin
Ejemplo:
Bits R para las
pginas 0-5, en la
marca de reloj 0

1 0 1 0 1 1

Bits R para las


pginas 0-5, en la
marca de reloj 1

Bits R para las


pginas 0-5, en la
marca de reloj 2

Bits R para las


pginas 0-5, en la
marca de reloj 3

Bits R para las


pginas 0-5, en la
marca de reloj 4

1 1 0 0 1 0

1 1 0 1 0 1

1 0 0 0 1 0

0 1 1 0 0 0

Pgina
0

10000000

11000000

11100000

11110000

01111000

00000000

10000000

11000000

01100000

10110000

10000000

01000000

00100000

00100000

10001000

00000000

00000000

10000000

01000000

00100000

10000000

11000000

01100000

10110000

01011000

10000000

01000000

10100000

01010000

00101000

(a)

(b)

(c)

(d)

(e)

de la memoria p.69/128
Tema 4 Administracion

3. Memoria virtual con paginacin


Aspectos de diseo para los sistemas de paginacin
Gestin del conjunto de trabajo
Paginacin por demanda las pginas slo se cargan cuando
se necesitan, y no por adelantado (paginacin pura)
Localidad de referencia en cualquier fase de su ejecucin,
un proceso slo referencia a una fraccin relativamente pequea
de sus pginas
Proceso hiperpaginado proceso que pasa ms tiempo
resolviendo fallos de pgina que ejecutando instrucciones
Conjunto de trabajo conjunto de pginas que un proceso ha
usado en las ltimas N instrucciones o unidades de tiempo
Prepaginacin o paginacin anticipada la carga de pginas
antes de ser solicitadas

de la memoria p.70/128
Tema 4 Administracion

3.4 Aspectos de diseo para los sistemas de paginacin (ii)


Gestin del conjunto de trabajo, continuacin:
Modelo de conjunto de trabajo establece que el conjunto de
trabajo de un proceso debe estar en memoria antes de ejecutarlo
prepaginacin
Algoritmo de reemplazo de pginas del conjunto de trabajo:
Para cada pgina hay (al menos) dos elementos de
informacin: el tiempo aproximado del ltimo acceso y el bit R
Cada tic de reloj se limpia el bit R
En un fallo de pgina, para cada pgina:
Si R=1, se actualiza el tiempo del ltimo acceso
Si R=0 y edad > reemplazar (pero contina el recorrido)
Si R=0 y edad < recordar el tiempo ms pequeo y seguir
Si no xito: la ms antigua con R=0; sino cualguiera con R=1

de la memoria p.71/128
Tema 4 Administracion

3.4 Aspectos del diseo para los sistemas de paginacin (iii)


Polticas de asignacin local y global
Cmo repartir la memoria entre los procesos ejecutables ?
Local se asigna un nmero de marcos fijo a cada proceso
Global se asignan, dinmicamente, los marcos de pgina
entre los distintos procesos ejecutables
A0
A1
A2
A3
A4
A5
B0
B1
B2
B3
B4
B5
B6
C1
C2
C3
(a)

Edad
10
7
5
4
6
3
9
4
6
2
5
6
12
3
5
6

A0
A1
A2
A3
A4
A6
B0
B1
B2
B3
B4
B5
B6
C1
C2
C3

A0
A1
A2
A3
A4
A5
B0
B1
B2
A6
B4
B5
B6
C1
C2
C3

(b)

(c)
de la memoria p.72/128
Tema 4 Administracion

3.4 Aspectos del diseo para los sistemas de paginacin (iv)


Polticas de asignacin local y global
Los algoritmos locales son ms propensos a la hiperpaginacin
y pueden desperdiciar memoria
Los algoritmos globales funcionar mejor. Ahora bien cmo se
decide cuntos marcos se asignan a cada proceso?
Algoritmo de frecuencia de fallos de pgina cundo hay
que reducir o aumentar el no de marcos asignados a un proceso
Calcula la tasa de fallos de pgina de cada proceso
Trata de mantener la tasa de fallos de pgina dentro de unos
lmites razonables
Observacin: no dice nada sobre qu paginas sustituir
Otros aspectos:
Decidir el nmero mnimo de marcos a asignar a un proceso
Cmo realizar el reparto de marcos entre los procesos
de la memoria p.73/128
Tema 4 Administracion

3.4 Aspectos del diseo para los sistemas de paginacin (v)


Tamao de pgina
Pginas pequeas
Menos fragmentacin interna
Tablas de pginas ms grandes
Pginas grandes
Ms fragmentacin interna
Tablas de pginas ms pequeas
Factor a tener en cuenta: velocidad de lectura/escritura de disco
Tamaos tpicos: 4KB u 8KB

de la memoria p.74/128
Tema 4 Administracion

3.4 Aspectos de diseo para los sistemas de paginacin (vi)


Comparticin de pginas
Compartir cdigo (ej.: varios usuarios ejecutan el mismo
programa):
Llevar control de pginas compartidas para saber qu hacer si
un proceso termina o una pgina se reemplaza
Compartir datos:
Como mecanismo de comunicacin entre procesos
Cuando slo se leen. Se pueden modificar tambin, pero
entonces mecanismo de copia en escritura (ej.: creacin de
procesos con fork en UNIX):
Pginas de datos se comparten en modo slo lectura
Si escritura fallo de proteccin S.O. hace copia de la
pgina de datos para el que escribe, activa permiso de
copia y reinicia la instruccin
de la memoria p.75/128
Tema 4 Administracion

3.4 Aspectos de diseo para los sistemas de paginacin (vii)


Polticas de lectura y escritura de pginas
Lectura (ya visto)
Por demanda: cuando se produce un fallo de pgina
(paginacin por demanda)
Por adelantado: en un fallo de pgina se leen varias pginas,
incluida la que produjo el fallo (prepaginacin o paginacin
anticipada)
Escritura
Por demanda: cuando se expulsa una pgina que est
modificada
Por anticipado: por ejemplo, cada X segudos (demonio de
paginacin)
Si, adems, se liberan pginas Cach de pginas

de la memoria p.76/128
Tema 4 Administracion

3.4 Aspectos de diseo para los sistemas de paginacin (viii)


Control de carga
A veces no es posible evitar la hiperpaginacin (todos los procesos
piden ms memoria y no se puede asignar a uno sin perjudicar a otro)

Solucin: intercambio suspender procesos y liberar sus


pginas, pero sin dejar la CPU inactiva Hay que controlar el
grado de multiprogramacin

Anclaje de marcos de memoria


Cuando intervienen en una operacin de E/S por DMA que no ha
finalizado
A tener en cuenta, sobre todo, en algoritmos globales

Administracin del espacio de intercambio


Asignacin esttica por proceso, cuando ste se inicia
Asignacin dinmica (los procesos pueden crecer)
de la memoria p.77/128
Tema 4 Administracion

ndice
4. Memoria virtual con segmentacin (Tanenbaum [C4.8])
4.1. Segmentacin
4.2. Segmentacin paginada
4.3. Memoria virtual en el Intel Pentium

de la memoria p.78/128
Tema 4 Administracion

4. Memoria virtual con segmentacin


Segmentacin
Proporciona a un proceso varios espacios de
direcciones completamente independientes
Segmentos
Cada segmento:
Una sucesin lineal de direcciones, desde 0 hasta un mximo
Tiene una longitud distinta y variable
Puede crecer o disminuir independientemente
Puede tener una proteccin diferente (lectura, ejecucin,. . . )

Direcciones de dos dimensiones Tabla de segmentos


Nmero del segmento
Direccin del segmento
de la memoria p.79/128
Tema 4 Administracion

4.1 Segmentacin (ii)


Facilita la proteccin y la comparticin de objetos (procedimientos,
funciones, estructuras de datos, etc.) de forma individual
Problema: Fragmentacin externa

de la memoria p.80/128
Tema 4 Administracion

4.1 Segmentacin (iii)

de la memoria p.81/128
Tema 4 Administracion

4.1 Segmentacin (iv)


Considerando
Necesita saber el programador si est
usando esta tcnica?
Cuntos espacios lineales de direcciones exixten?
Puede el espacio total de direcciones exceder el tamao de la memoria fsica
Pueden distinguirse los procedimientos
y los datos, adems de protegerse en
forma independiente?
Pueden adecuarse con facilidad las
tablas con tamaos fluctuantes?
Se facilita el uso de procedimientos compartidos entre los usuarios?
Para qu se invent esta tcnica?

Paginacin

Segmentacin

No

Si

Muchos

No

No

No

Para obtener un gran


espacio lineal de direcciones sin tener que
adquirir ms memoria
fsica

Para permitir que los


programas y datos
fueran separados en
espacios
independientes de direcciones
y poder proporcionar
la proteccin y uso de
objetos compartidos

de la memoria p.82/128
Tema 4 Administracion

4. Memoria virtual con segmentacin


Segmentacin paginada
Cada segmento se pagina internamente ventajas de
la paginacin y de la segmentacin
Direccin formada por dos partes: segmento y
direccin dentro del segmento:
Segmento entrada en la tabla de segmentos que nos da la
direccin de la tabla de pginas
Direccin dentro del segmento dividida en 2 partes:
Nmero de pgina entrada de la tabla de pginas que da el
marco de pgina correspondiente
Desplazamiento dentro de la pgina
N de segmento

N de pgina

Desplazamiento

de la memoria p.83/128
Tema 4 Administracion

4.2 Segmentacin paginada

de la memoria p.84/128
Tema 4 Administracion

4. Memoria virtual con segmentacin


Memoria virtual en el Intel Pentium
Dos tablas:
LDT: Tabla de descriptores locales
Cada programa tiene una LDT
Describe los segmentos locales para el programa

GDT: Tabla de descriptores globales


Slo hay una compartida por todos los programas
Describe los segmentos del sistema (incluyen al mismo S.O.)

Las direcciones estn formadas por dos partes:


selector y ajuste o desplazamiento
El selector se carga en un registro de segmento y nos
da el descriptor correspondiente de la LDT o GDT

de la memoria p.85/128
Tema 4 Administracion

4.3 Memoria virtual en el Intel Pentium (ii)


Selector 16 bits divididos en 3 campos:
Bit que indica si el selector es local (LDT) o global (GDT)
13 bits que indican el nmero de la entrada en la LDT o GDT
2 bits de proteccin
Bits

13

ndice

0 = GDT/1 = LDT

Nivel de privilegio (0-3)

El selector facilita la localizacin del descriptor:


Se selecciona la LDT o GDT en base al bit 2
Se anulan los tres bits de orden ms bajo del selector
Se le aade la direccin de la LDT o la GDT
P.e.: el selector 72 se refiere a la entrada 9 de la GDT, que est
en la direccin GDT+72
de la memoria p.86/128
Tema 4 Administracion

4.3 Memoria virtual en el Intel Pentium (iii)


Descriptores de segmento 8 bytes e incluye la
direccin base del segmento, su tamao, etc.
0: Segmento ausente de memoria
1: Segmento presente en memoria
Nivel de privilegio (0-3)

0: Segmento de 16 bits
1: Segmento de 32 bits
0: Li en bytes
1: Li en pginas

Tipo y proteccin del segmento


Base 24-31

GD 0

Lmite
16-19 P DPL

Base 0-15

Tipo

Base 16-23

Lmite 0-15
32 Bits

4
0
Direccin
relativa

Bit de granularidad en que unidad se expresa el


campo lmite
0 bytes, lmite es el tamao exacto del segmento, hasta 1MB
1 pginas, con pginas de 4KB segmentos de hasta 232 bytes
de la memoria p.87/128
Tema 4 Administracion

4.3 Memoria virtual en el Intel Pentium (iv)


Conversin de una pareja (selector, ajuste) a una
direccin lineal:
Ajuste

Selector

Descriptor
Direccin base

Lmite
Otros campos

Direccin lineal de 32 bits

Paginacin desactivada segmentacin pura:


Direccin lineal = direccin fsica

Si slo hay 1 segmento con Base = 0 y Limite = 4G


paginacin pura
de la memoria p.88/128
Tema 4 Administracion

4.3 Memoria virtual en el Intel Pentium (v)


Paginacin activa: segmentacin paginada
Direccin lineal Direccin virtual de 32 bits
Tabla de dos niveles y pginas de 4KB
Cada proceso un directorio de pginas tabla de 1o nivel
(compartido por todos sus segmentos)
Bits

10

Linear address
10

12

Dir

Page

Offset

(a)
Page table

Page directory

Page frame
Word
selected

1024
Entries
Offset

Dir

Page

Directory entry
points to
page table

Page table
entry points
to word
(b)
de la memoria p.89/128
Tema 4 Administracion

ndice
7. Gestin de la memoria en Linux (Tanenbaum [C10.4.3])
7.1. Conceptos fundamentales
7.2. Administracin de memoria fsica
7.3. Algoritmo de reemplazo de pginas

de la memoria p.90/128
Tema 4 Administracion

Gestin de la memoria en Linux


Conceptos fundamentales
Utiliza un esquema de paginacin a tres niveles
Paginacin por demanda, aunque para ser ms
eficiente prepagina algunas pginas cuando se
produce un fallo de pgina
No utiliza el concepto de conjunto de trabajo
Tamao de pgina fijo. En el Pentium de 4KB
Cada proceso de usuario tiene su propio espacio de
direcciones virtual
Si las direcciones son de 32 bits, el espacio de
direcciones virtual, de 4GB, dividido en:
3GB para el espacio de direcciones virtual para el proceso
1GB para sus tablas de pginas y otros datos del kernel,
accesible slo en modo ncleo usando llamadas al sistema
de la memoria p.91/128
Tema 4 Administracion

Conceptos fundamentales (ii)


El espacio de direcciones virtual se divide en reas o
regiones homogneas y contiguas:
Cada rea consiste en una serie de pginas consecutivas con
las mismas propiedades en cuanto a proteccin y paginacin
El segmento de texto podra ser un ejemplo de rea
Puede haber huecos entre las distintas reas
Cualquier referencia a la memoria que caiga dentro de un hueco
producir un fallo de pgina
Para cada rea el sistema operativo almacena, entre otros, los
siguientes datos: modo de proteccin, si es paginable o no,
direccin en la que crece (hacia arriba el segmento de datos, hacia abajo
la pila), si es privada o compartida, si tiene asignado hueco en la
zona de intercambio, y si lo tiene, dnde

de la memoria p.92/128
Tema 4 Administracion

Conceptos fundamentales (iii)


Ejemplo de divisin en reas del espacio de direcciones
virtuales de dos procesos que comparten el cdigo:

20K
8K
0

Stack pointer

Unused
memory

Stack pointer

Process B

Physical memory

Process A

BSS

BSS
Data
Text

OS

Data
Text

(a)

(b)

(c)

24K
8K
0K

de la memoria p.93/128
Tema 4 Administracion

Conceptos fundamentales (iv)


Esquema de paginacin de tres niveles
Se tienen los siguientes tipos de tablas:
Directorio global, cada proceso tiene slo uno que ha de estar
en memoria, y su tamao es de una pgina. Cada entrada
apunta a un directorio intermedio de pginas (tabla intermedia de
pginas)

Directorio intermedio de pginas, que puede ocupar varias


pginas. Cada entrada seala a una pgina de la tabla de
pginas final
Tabla de pginas, que puede ocupar varias pginas. Cada una
de sus entradas hace referencia a la pgina virtual requerida

En el Pentium, que utiliza paginacin a 2 niveles:


Cada directorio intermedio de pginas tiene una nica entrada
As que, la entrada del directorio global sirve para seleccionar la
tabla de pginas que se usar
de la memoria p.94/128
Tema 4 Administracion

Esquema de paginacin de tres niveles


Cada direccin virtual se divide en 4 campos:
Directorio: 1er campo, para consultar el directorio global
Intermedio: 2o campo, para consultar el directorio intermedio de
pginas
Pgina: 3o campo, para acceder a la tabla de pginas
Desplazamiento dentro de la pgina seleccionada, 4o campo
Page
Global
directory

Directory

Page
middle
directory

Middle

Word selected

Page
table

Page

Offset

Virtual address

de la memoria p.95/128
Tema 4 Administracion

Gestin de la memoria en Linux


Administracin de memoria fsica
Una parte de la memoria es utilizada para el kernel
El resto de la memoria est disponible para (entre otros usos):
Pginas de usuario
El cach de buffer empleado por el sistema de ficheros
Contiene bloques de disco que se han ledo recientemente, o que se han ledo
por adelantado
Su tamao es dinmico y compite por la misma reserva de pginas que las
pginas de usuario.

El cach de paginacin, formado por un conjunto de pginas de


usuario que ya no se necesitan y estn esperando que se les
pagine a disco. Si una pgina se reutiliza antes de que se
desaloje de la memoria, podr recuperarse con rapidez

de la memoria p.96/128
Tema 4 Administracion

Administracin de memoria fsica (ii)


Gestin de memoria libre:
Linux utiliza el sistema de colegas para
asignar/liberar todos los marcos de pgina:
El sistema de colegas le permite asignar intervalos de marcos
contiguos de tamao arbitrario, si se solicitan
Para registrar la memoria libre, mantiene listas de grupos de
marcos contiguos de tamao fijo: 1, 2, 4, 8,. . . marcos libres
El tamao ms pequeo que se puede asignar es de un marco
La asignacin contigua de marcos permite aumentar la
eficiencia de cargar y descargar pginas a y desde la memoria
principal

de la memoria p.97/128
Tema 4 Administracion

Administracin de memoria fsica (iii)


Asignacin de memoria para el ncleo:
La memoria del kernel es permanente, ninguna de
sus partes se pagina a disco
El kernel, como programa que es, necesita asignar y
liberar memoria de forma dinmica:
Por ejemplo, maneja mdulos, que normalmente son controladores de
dispositivos, que se cargan dinmicamente, tienen un tamao arbitrario y se
les debe asignar un rea de memoria de kernel contigua

Usando el sistema de colegas se asigna memoria


contigua en el kernel
Problema: se puede producir mucha fragmentacin interna ya que, por
ejemplo, hay que asignar 128 marcos a un mdulo que necesita slo 65
marcos contiguos

de la memoria p.98/128
Tema 4 Administracion

Administracin de memoria fsica (iv)


Asignacin de memoria para el ncleo, contina. . .
Para pequeas asignaciones de memoria, Linux usa
un segundo mtodo de asignacin para evitar la
fragmentacin interna:
Empleando el sistema de colegas, se reserva memoria que se divide en
fragmentos ms pequeos que una pgina, que son administrados aparte
Los fragmentos se mantiene en un conjunto de listas enlazadas, una por cada
tamao de fragmento (32, 64, 128, 252, 508, 2040 y 4080 bytes)
Los fragmentos pueden dividirse y agregarse de forma similar al sistema de
colegas, movindose de una lista a otra en funcin de ello
La asignacin de memoria implica determinar cul es la lista apropiada y
luego tomar el primer fragmento libre de la lista (o bien asignar una nueva
pgina y dividirla en fragmentos si no queda un fragmento libre adecuado)

Un tercer mtodo permite asignar memoria cuando


slo tiene que estar contigua en el espacio virtual,
pero no en la memoria fsica
de la memoria p.99/128
Tema 4 Administracion

Administracin de la memoria fsica (v)


Zona de intercambio
Gestiona particiones y ficheros de paginacin
A las particiones de paginacin se accede como un
dispositivo crudo
Permite hasta un mximo de 8 ficheros, que se crean
con un tamao fijo que no cambia durante su uso
Es ms eficiente usar una particin que un archivo:
No es necesario que haya correspondencia entre bloque de
archivo y bloques de disco (ahorra la E/S de disco por lectura de bloques
indirectos)

Las escrituras fsicas pueden ser de cualquier tamao, no tienen


que ser del bloque de archivo entero
Una pgina siempre se escribe contigua en el disco, en un
archivo de paginacin podra o no quedar contigua
de la memoria p.100/128
Tema 4 Administracion

Zona de intercambio (ii)


La asignacin del hueco de intercambio se hace
cuando se necesita
Los segmentos de texto se paginan desde su archivo
en disco, no se les asigna hueco en la zona de
intercambio
Para cada particin/archivo de paginacin hay un mapa
de bits para controlar los huecos asignados/libres
A las particiones/ficheros se les puede asignar un valor
de prioridad
A las particiones se les asigna mayor prioridad (lo normal)
Cuando se necesita asignar un hueco a una pgina, se
escoge la particin/archivo de ms alta prioridad y con
un hueco disponible
de la memoria p.101/128
Tema 4 Administracion

Gestin de la memoria en Linux


Algoritmo de reemplazo de pginas
Trata de mantener algunos marcos desocupados,
creando una reserva de marcos libres, para poderlos
usar cuando se solicite un nuevo marco
El verdadero algoritmo de paginacin se encarga de
mantener esta reserva de marcos libres
Un demonio de paginacin peridicamente
comprueba si hay suficientes marcos libres:
Si hay suficiente se desactiva hasta la prxima vez
Si no hay suficientes trata de recuperar marcos de diferentes
tipos

El demonio de paginacin tambin se puede activar si


se necesitan marcos libres y no hay suficientes
de la memoria p.102/128
Tema 4 Administracion

Algoritmo de reemplazo de pginas (ii)


Demonio de paginacin:
Su cdigo consiste en un ciclo que se ejecuta hasta
6 veces, con urgencia creciente
Invoca a tres procedimientos que se encargan de
recuperar diferentes tipos de pginas
El valor de urgencia se pasa como parmetro, para
que el procedimiento sepa cunto debe esforzarse
por recuperar pginas
El efecto de este algoritmo es que primero se toman
las pginas fciles de cada categora para despus
ir tras las difciles
Cuando se han recuperado suficientes pginas se
duerme otra vez
de la memoria p.103/128
Tema 4 Administracion

Algoritmo de reemplazo de pginas (iii)


Los procedimientos para recuperar marcos:
1er Procedimiento. Trata de recuperar pginas del cach
de paginacin y del cach de buffer a los que no
se haya hecho referencia ltimamente, empleando
un algoritmo tipo reloj
2o Procedimiento. Busca pginas compartidas que al
parecer ninguno de los usuarios est utilizando
mucho
3o Procedimiento. Intenta recuperar pginas de usuarios
ordinarias

de la memoria p.104/128
Tema 4 Administracion

Algoritmo de reemplazo de pginas (iv)


3o procedimiento para recuperar pginas de usuario:
Primero se ejecuta un ciclo que abarca todos los procesos y
determina cul es el que ms pginas tiene en memoria
Una vez localizado ese proceso se examinan todas sus pginas
en orden por direccin virtual, partiendo del punto donde se
qued por ltima vez el procedimiento:
Si una pgina no es vlida, est ausente de la memoria, se
comparte, est fija en la memoria, o se est usando para
DMA, se pasa por alto
Si la pgina tiene encendido el bit de referencia, ste se
apaga, y la pgina se pasa por alto
Si el bit de referencia est apagado, la pgina se desaloja
(esta parte es similar al algoritmo del reloj, excepto que las
pginas no se examinan en orden FIFO)
de la memoria p.105/128
Tema 4 Administracion

Algoritmo de reemplazo de pginas (v)


3o procedimiento para recuperar pginas de usuario . . .
Respecto a la pgina seleccionada:
Si no est modificada, se abandona de inmediato
Si est modificada, y tiene asignado hueco en la zona de
intercambio, se planifica para su escritura en disco
Si est modificada y no tiene asignado un hueco en la zona de
intercambio, se coloca en la cach de paginacin (de donde se
podra volver a utilizar)

Examinar las pginas en orden por direccin virtual se basa en la


esperanza de que pginas cercanas entre s en el espacio de
direcciones virtual tiendan a usarse o no de manera colectiva

Otro demonio, de forma peridica, verifica si la fraccin


de pginas modificadas en memoria es demasiado
grande. En ese caso, comenzar a escribirlas a disco
de la memoria p.106/128
Tema 4 Administracion

ndice
6. Gestin de la memoria en Windows 2000 (Tanembaum C11.5.1
y C11.5.3)

6.1. Conceptos fundamentales


6.2. Algoritmo de reemplazo de pginas
6.3. Administracin de memoria fsica

de la memoria p.107/128
Tema 4 Administracion

Gestin de la memoria Windows 2000


Conceptos fundamentales
El administrador de memoria trabaja slo con procesos
(y no con hilos como hace el planificador)

Cada proceso de usuario tiene su propio espacio de


direcciones virtual
Direcciones virtuales de 32bits 4GB de espacio de
direcciones virtual
Utiliza paginacin (no se usa ningn tipo de segmentacin)
Bsicamente usa paginacin por demanda, aunque
para ser ms eficiente prepagina algunas pginas
cuando se produce un fallo de pgina
Tamao de pgina fijo (hasta un mximo de 64KB). En el
Pentium de 4KB
El S.O. puede usar pginas de 4MB para reducir el
tamao de su tabla de pginas
de la memoria p.108/128
Tema 4 Administracion

Conceptos fundamentales (ii)


Organizacin del espacio de direcciones virtual de un
proceso
Los 2GB inferiores, menos aprox. 256MB, para el
proceso. Los 2GB superiores para la memoria del S.O.
Los 2GB inferiores cdigo y datos del proceso
Los 64KB ms bajos y ms altos no tiene correspondencia
ayuda a atrapar errores de programacin
Los apuntadores no vlidos suelen ser 0 -1 un intento de
usarlos causa una interrupcin del sistema inmediata
Empiezan en los 64KB y llegan casi hasta los 2GB
El ltimo fragmento de los 2GB inferiores contiene algunos
contadores y temporizadores del sistema, que todos los usuarios
comparten en modo de slo lectura (se pueden usar por todos sin el
gasto adicional de una llamada al sistema)
de la memoria p.109/128
Tema 4 Administracion

Espacio de direcciones virtual de un proceso


Los 2GB superiores
Contienen el sistema operativo, incluidos el cdigo, los datos y
las reservas paginada y no paginada
Compartidos por todos los procesos de usuario, con excepcin
de las tablas de pginas (exclusivas de cada proceso)
En modo usuario no se puede acceder a esta zona
Si un hilo efecta una llamada al sistema, salta por una
interrupcin de sistema al modo ncleo y sigue ejecutndose sin
perder su identidad. Lo nico que hay que hacer es cambiar a la
pila de ncleo del hilo
Sacrifica espacio de direcciones privado del proceso, a cambio
de que las llamadas al sistema sean ms rpidas
Las versiones Advanced Server y Datacenter Server ofrecen la
opcin de establecer un espacio de usuario de 3GB (1GB el S.O.)
de la memoria p.110/128
Tema 4 Administracion

Espacio de direcciones virtual de un proceso


Process A

Process B

Process C

Nonpaged pool
Paged pool

Nonpaged pool
Paged pool

Nonpaged pool
Paged pool

A's page tables

B's page tables

C's page tables

Stacks, data, etc

Stacks, data, etc

Stacks, data, etc

HAL + OS

HAL + OS

HAL + OS

System data

System data

System data

Process A's
private code
and data

Process B's
private code
and data

Process C's
private code
and data

4 GB

2 GB

0
Bottom and top
64 KB are invalid
de la memoria p.111/128
Tema 4 Administracion

Conceptos fundamentales
Una pgina virtual puede estar en tres estados
posibles:
Libre no se est usando
Una referencia a ella provoca un fallo de pgina

Comprometida hay una correspondencia entre el cdigo o los


datos y la pgina
Una referencia a una pgina comprometida: est la pgina en memoria?
S xito
NO fallo de pgina, hay que traer la pgina del disco

Reservada no est disponible para utilizar mientras no se


retire de forma explcita la reserva. P.e., este tipo de pginas se
usa para permitir el crecimiento de las pilas

Adems las pginas tienen otros atributos como si se


puede leer, escribir o ejecutar
de la memoria p.112/128
Tema 4 Administracion

Conceptos fundamentales
Zona de intercambio
No se asigna hueco en la zona de intercambio a las
pginas comprometidas que no tienen un lugar natural
en el disco
Slo asigna hueco de intercambio a una pgina
comprometida cuando es necesario llevarla a disco
Inconveniente: aumenta la complejidad, porque es posible que
los mapas de los ficheros de paginacin tengan que traerse a
memoria durante un fallo de pgina, lo que podra causar varios
fallos de pgina adicionales
Ventaja: no es necesario asignar hueco a las pginas que nunca
se paginan

Las pginas libres o reservadas nunca tienen asignado


hueco de intercambio (las referencias a ellas siempre causan fallos de
pgina)
de la memoria p.113/128
Tema 4 Administracion

Zona de intercambio (ii)


La zona de intercambio se organiza en ficheros de
paginacin
Puede haber hasta 16 ficheros de paginacin
Cada fichero de paginacin tiene un tamao inicial y un
tamao mximo, hasta el que puede crecer en caso
necesario
Pueden crearse con el tamao mximo al instalar el
sistema, para evitar que estn muy fragmentados
Posteriormente, se pueden crear nuevos ficheros de
intercambio desde el panel de control
El S.O. lleva el control de qu pgina virtual
corresponde a qu parte de qu fichero de paginacin
El cdigo del ejecutable no se pagina, se recuperar
del fichero binario ejecutable
de la memoria p.114/128
Tema 4 Administracion

Conceptos fundamentales
Entradas de la tabla de pginas
Las entradas de la tabla de pginas son diferentes
dependiendo de la arquitectura
Las pginas sin correspondencia tambin tienen
entradas diferentes
Los bits ms importantes son el A, la pgina ha sido
referenciada, y el D, la pgina ha sido modificada
Un ejemplo de una entrada de pginas de un Pentium:
Bits

20
Page frame

G: Page is global to all processes


L: Large (4-MB) page
D: Page is dirty
A: Page has been accessed
C: Caching enabled/disabled

1 1 1 1 1 1 1 1 1

W
Not
GL D A C
UWV
used
t

Wt: Write through (no caching)


U: Page is accessible in user mode
W: Writing to the page permitted
V: Valid page table entry

de la memoria p.115/128
Tema 4 Administracion

Conceptos fundamentales
Fallos de pgina
5 categoras de fallos de pgina:
1. La pgina no est comprometida irrecuperable
2. Hubo una violacin de proteccin irrecuperable
3. Se ha escrito una pgina compartida copiar la pgina en un
nuevo marco y aplicarle correspondencia de lectura/escritura
4. La pila necesita crecer asignarle un nuevo marco de pgina y
aplicarle correspondencia en memoria, pero se necesita que est
lleno de 0
5. La pgina est comprometida pero no tiene correspondencia
se localiza la pgina y se le aplica correspondencia en memoria

de la memoria p.116/128
Tema 4 Administracion

Gestin de la memoria en Windows 2000


Algoritmo de reemplazo de pginas
El sistema se esfuerza por mantener un nmero
considerable de pginas libres en memoria fallos de
pginas se solucionan, al menos, con una operacin de disco (y no con dos)

El verdadero algoritmo de reemplazo de pginas es el


que decide qu pginas se quitan a los procesos, y se
colocan en la lista de libres
El mecanismo de paginacin se apoya en el concepto
de conjunto de trabajo:
Consiste en las pginas con correspondencia que estn en la
memoria y a las que, por tanto, se accede sin generar un fallo de
pgina
Se describe con dos parmetros, su tamao mximo y mnimo,
que pueden variar durante la ejecucin del proceso
de la memoria p.117/128
Tema 4 Administracion

Algoritmo de reemplazo de pginas (ii)


Fallo de pgina:
Si el conjunto de trabajo del proceso es menor que su lmite
mnimo, se le aade una nueva pgina
Si el conjunto de trabajo es mayor que su lmite mximo, se
expulsa una pgina de su conjunto de trabajo (pero no de la
memoria) para que quepa la nueva pgina

El algoritmo es un hbrido entre local y global:


Utiliza un algoritmo de paginacin local evitar que un proceso
perjudique a otros acaparando memoria
Si un proceso est paginando de forma frentica (y los dems
no) el sistema puede incrementar el tamao mximo de su
conjunto de trabajo

Un conjunto de trabajo no puede usar los ltimos 512


marcos libres, es un lmite absoluto (aunque slo est ese
proceso)
de la memoria p.118/128
Tema 4 Administracion

Algoritmo de reemplazo de pginas (iii)


Administrador de conjuntos de equilibrio hilo a
nivel del ncleo que cada segundo verifica si hay
suficientes pginas libres
Si no hay suficientes pginas libres, inicia el hilo
administrador de conjuntos de trabajo, que examina
los conjuntos de trabajo y recupera pginas
1. Determina en qu orden examinar los procesos (los grandes e
inactivos durante mucho tiempo, se examinan antes que los pequeos activos; el
proceso en primer plano es el ltimo en ser examinado)

2. Examina los procesos en el orden escogido:


Si el conjunto de trabajo es menor que su mnimo, o si ha tenido ms de un
cierto nmero de fallos de pgina desde la ltima inspeccin, no se hace nada
De lo contrario se le quitan una o ms pginas
Todas las pginas se examinan por turnos

de la memoria p.119/128
Tema 4 Administracion

Algoritmo de reemplazo de pginas (iv)


Administrador de conjuntos de trabajo, contina. . .
Sistema uniprocesador:
Si el bit de referencia est apagado, incrementa un contador asociado a la
pgina
Si el bit de referencia est activo, el contador se establece a 0
Una vez examinadas todas, se liberan las pginas con los contadores ms
altos
Contina examinando procesos hasta recuperar suficientes pginas y acaba
Si dio una pasada completa y no liber suficientes, efecta otra ms agresiva,
recortando, incluso, conjuntos de trabajo por debajo de sus mnimos

Sistema multiprocesador se liberan las pginas ms antiguas


El S.O. posee pginas y un conjunto de trabajo que puede
recortarse. Sin embargo ciertas partes del cdigo y la reserva no
paginada estn fijas en la memoria (no pueden paginarse)
Cuntas pginas liberar? funcin complicada (tamao de la
RAM, escasez de memoria, relacin del tamao actual del conjunto de trabajo y
los tamaos mximo y mnimo, etc.)
de la memoria p.120/128
Tema 4 Administracion

Gestin de la memoria en Windows 2000


Administracin de memoria fsica
El sistema gestiona cuatro listas de marcos libres
Cada marco en memoria est en uno o ms conjuntos
de trabajo, o bien en una de estas 4 listas
Una quinta lista contiene los marcos de pgina
fsicamente defectuosos que pudiese haber
El administrador de conjuntos de trabajo y otros hilos
(demonios) del kernel pasan pginas entre los
conjuntos de trabajo y las diversas listas

de la memoria p.121/128
Tema 4 Administracion

Administracin de memoria fsica (ii)


Las cuatro listas son:
Listas de pginas modificadas contienen pginas que hace
poco se expulsaron de un conjunto de trabajo, todava estn en
la memoria y asociadas con el proceso que las estaba usando,
pero NO tienen copia vlida en disco
Lista de pginas de reserva limpias contienen pginas que
hace poco se expulsaron de un conjunto de trabajo, todava
estn en la memoria y asociadas con el proceso que las estaba
usando, y adems tienen una copia vlida en disco (por tanto
pueden abandonarse cuando se desee)

Lista de pginas libres que contiene pginas limpias que ya no


estn asociadas a ningn proceso
Lista de pginas en ceros, estn libres, no estn asociadas a
ningn proceso, y adems ya se han llenado de ceros
de la memoria p.122/128
Tema 4 Administracion

Administracin de memoria fsica (iii)


Zero page needed (8)
Page read in (6)

Soft page fault (2)


Working
sets

Top

ModStandby
Free
Zeroed
ified
page
page
page
page Modified list Dealloc(5) list
list
Zero
list
page
page
writer(4)
thread (7)

Bad
RAM
page
list

Bottom
Page evicted from a working set (1)

Process exist (3)

de la memoria p.123/128
Tema 4 Administracion

Administracin de memoria fsica (iv)


Las posibles transiciones son:
1. El administrador de conjuntos de trabajo le quita una pgina a un
conjunto de trabajo, y la coloca en el fondo de la lista de reserva
o de la modificada, dependiendo de su estado de limpieza
2. Las pginas de las listas de reserva y modificadas siguen siendo
vlidas. Si se presenta un fallo de pgina y se necesita una de
estas pginas, se saca de la lista y se vuelve a colocar en su
conjunto de trabajo, sin necesidad de hacer E/S
3. Cuando finaliza un proceso, ya no genera fallos de pgina para
usar sus pginas no compartidas. Se colocan en la lista de libres
1. Cada cierto tiempo, un hilo del kernel busca procesos que no
hayan tenido ningn hilo activo durante cierto tiempo. Si los
encuentra, anula la fijacin de sus pilas de kernel y sus pginas
pasan a las listas de reservadas o modificadas
de la memoria p.124/128
Tema 4 Administracion

Administracin de memoria fsica (v)


Las posibles transiciones son, contina. . .
4. De forma peridica, dos hilos del ncleo, comprueban si hay
suficientes pginas limpias. Si no hay suficientes, toman pginas
de la parte superior de la lista modificada, las escriben en disco y
luego las pasan a la lista de reserva
5. Si un proceso elimina la correspondencia de una pgina, sta
deja de estar asociada con un proceso y puede colocarse en la
lista de libre (siempre que no se trate de una pgina compartida)
6. Si un fallo de pgina requiere un marco de pgina, se toma de la
lista libre, si es posible (salvo que sea para la pila)
7. En ocasiones se necesitan marcos de pginas llenas de 0 (p.e.
para las pilas). Un hilo del ncleo borra paginas que estn en la
lista libres, y las pasa a la lista de pginas en 0
8. Se solicita una pgina de la lista de 0
de la memoria p.125/128
Tema 4 Administracion

Administracin de memoria fsica (vi)


Surgen una serie de decisiones sutiles a tomar:
Si se necesita un marco, y no quedan en la lista de libres, qu
es mejor, tomar uno de la lista de reserva (que se podra utilizar
posteriormente) o de la lista de 0 (que cost un trabajo ponerlo a 0)?
Cmo de agresivos deben ser los demonios que pasan pginas
de la lista de modificada a la lista de reserva?
Es mejor contar con pginas limpias que modificadas
Una poltica agresiva supone realizar mucha E/S de disco
Una pgina recin limpia puede ser solicitada de nuevo por el
proceso
En general, resuelve este tipo de conflictos aplicando heursticas
complejas, haciendo conjeturas, considerando precedentes
histricos, usando mtodos prcticos y basndose en
parmetros controlados por el administrador
de la memoria p.126/128
Tema 4 Administracion

Administracin de memoria fsica (vii)


Mantiene una base de datos de marcos de pginas,
con tantas entradas como marcos hay:
Sirve para llevar el control de todas las pginas y todas las listas
Esta tabla est indizada por el nmero de marco de pgina
Las entradas tienen una longitud fija, aunque hay diferentes
formatos para diferentes entradas. (P.e.: entradas vlidas o no
vlidas)
Las entradas vlidas mantienen:
El estado de la pgina
Un contador que indica cuntas tablas de pginas apuntan a esa entrada
Si pertenece a un conjunto de trabajo, se indica a cul
Un apuntador a la tabla de pginas que apunta a ese marco, si existe (los
marcos compartidos se manejan de forma especial)
Un enlace a la siguiente pgina de la lista, (si la hay)
Varios campos e indicadores, como lectura en curso, escritura en curso, etc.

de la memoria p.127/128
Tema 4 Administracion

Base de datos de marcos de pgina


Page frame database
Page tables
State

List headers
Standby

Modified
Free

Zeroed

14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

Clean
Dirty
Clean
Active
Clean
Dirty
Active
Dirty
Free
Free
Zeroed
Active
Zeroed
Active
Zeroed

Cnt WS Other

PT

Next
X
X

20

4
X
X
6
14

de la memoria p.128/128
Tema 4 Administracion

También podría gustarte