Está en la página 1de 128

Tema 4 Administracin de la memoria

Pilar Gonzalez Ferez

Tema 4 Administracion de la memoria p.1/128

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

Tema 4 Administracion de la memoria p.2/128

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])

Tema 4 Administracion de la memoria p.3/128

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 eciente, 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

Tema 4 Administracion de la memoria p.4/128

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

Tema 4 Administracion de la memoria p.5/128

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

Tema 4 Administracion de la memoria p.6/128

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

Tema 4 Administracion de la memoria p.7/128

Comparticin
Debe haber exibilidad 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

Tema 4 Administracion de la memoria p.8/128

Organizacin lgica de los programas


Programas organizados en mdulos, cada uno con sus caractersticas (algunos son modicables 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

Tema 4 Administracion de la memoria p.9/128

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 ujo de informacin entre la memoria principal y la secundaria es responsabilidad del S.O. Esencia de la gestin de memoria

Tema 4 Administracion de la memoria p.10/128

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

Tema 4 Administracion de la memoria p.11/128

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

Tema 4 Administracion de la memoria p.12/128

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 denidos 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 predenidas que proporcionan servicios a las aplicaciones, como los correspondientes al S.O.

Tema 4 Administracion de la memoria p.13/128

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)

Tema 4 Administracion de la memoria p.14/128

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 modicar durante la ejecucin el cdigo (en principio de slo lectura)

Tema 4 Administracion de la memoria p.15/128

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 chero ejecutable, para usarlo en el enlace durante la ejecucin Cambio de interfaz nueva versin de la biblioteca

Tema 4 Administracion de la memoria p.16/128

Bibliotecas dinmicas (ii)


Cmo compartir el cdigo de una biblioteca dinmica entre distintos procesos? Tres posibles alternativas:
Establecer un rango de direcciones predeterminado y especco para cada biblioteca dinmica. Todos los procesos incluirn ese rango en su mapa de memoria.
Poco exible 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

Tema 4 Administracion de la memoria p.17/128

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 eciente

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

Tema 4 Administracion de la memoria p.18/128

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 cheros de distintos formatos, y usa funciones de varias bibliotecas para procesar cada uno de los formatos. Un nuevo tipo de chero 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.)

Tema 4 Administracion de la memoria p.19/128

1.2.1 Fases de la generacin de un ejecutable


Formato del ejecutable Formato tpico de un ejecutable:

Tema 4 Administracion de la memoria p.20/128

Formato del ejecutable


Cabecera informacin de control para interpretar el contenido del ejecutable. Entre otras cosas contiene:
Nmero mgico identica 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.)

Tema 4 Administracion de la memoria p.21/128

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

Tema 4 Administracion de la memoria p.22/128

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 jo o variable
Tamao variable se suele indicar si crece hacia direcciones mayores o menores

Tema 4 Administracion de la memoria p.23/128

1.2.2 Mapa de memoria de un proceso


Regiones de un mapa de memoria inicial:
Cdigo (o texto): compartido, lectura y ejecucin, tamao jo Datos con valor inicial: privado, lectura y escritura, tamao jo Datos sin valor inicial: privado, lectura y escritura, tamao jo

Pila: privado, lectura y escritura,

tamao variable (crece cuando

se producen llamadas a fun-

ciones y decrece cuando nalizan)

Tema 4 Administracion de la memoria p.24/128

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 chero 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

Tema 4 Administracion de la memoria p.25/128

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 )

Tema 4 Administracion de la memoria p.26/128

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])

Tema 4 Administracion de la memoria p.27/128

2. Particin de la memoria
Particiones estticas S.O. ocupa una posicin ja de la memoria principal Resto de la memoria disponible para los procesos dividida en particiones con lmites jos 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 ineciente

Tema 4 Administracion de la memoria p.28/128

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

Tema 4 Administracion de la memoria p.29/128

2.1 Particiones estticas


Varias colas de entrada Particin 4 700K Particin 3 Una nica cola de entrada 400K Particin 2 Particin 1 Sistema operativo (a) 100K 0 Particin 2 Particin 1 Sistema operativo (b) Particin 3 Particin 4

Tema 4 Administracion de la memoria p.30/128

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

Tema 4 Administracion de la memoria p.31/128

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

Tema 4 Administracion de la memoria p.32/128

2.2 Particiones dinmicas


Algoritmo de ubicacin intentar evitar la fragmentacin externa (evitando la necesidad de compactacin)
Mejor ajuste (best-t) Tamao ms prximo al solicitado Tiene los peores resultados y genera huecos demasiado pequeos Primer ajuste (rst-t) Primer bloque disponible sucientemente 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-t) Siguiente bloque disponible sucientemente grande (busca desde la ltima posicin) Peores resultados que el algoritmo del primer ajuste, necesita compactacin ms frecuentemente Peor en ajustarse (worst-t) Curiosamente, ofrece buenos resultados

Cuando todos los procesos estn bloqueados Algoritmos de reemplazo decidir cul se suspende

Tema 4 Administracion de la memoria p.33/128

2. Particiones de memoria
Sistema de colegas Presenta un equilibrio razonable para superar las desventajas de los esquemas de particin ja 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

Tema 4 Administracion de la memoria p.34/128

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)

Tema 4 Administracion de la memoria p.35/128

2.3 Sistema de colegas

Tema 4 Administracion de la memoria p.36/128

2.3 Sistema de colegas

Tema 4 Administracion de la memoria p.37/128

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 modicada del sistema de colegas para la asignacin de memoria en el ncleo

Tema 4 Administracion de la memoria p.38/128

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

Tema 4 Administracion de la memoria p.39/128

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

Tema 4 Administracion de la memoria p.40/128

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

Tema 4 Administracion de la memoria p.41/128

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 8 B C 16 (a) 11111000 11111111 11001111 11111000 H 18 2 Hueco Comienza en 18 (b) P 20 6 Longitud 2 P 26 3 Proceso (c) H 29 3 X P 0 5 H 5 3 P 8 6 P 14 4 D 24 E

Igual para asignar hueco de intercambio

Tema 4 Administracion de la memoria p.42/128

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])

Tema 4 Administracion de la memoria p.43/128

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

Tema 4 Administracion de la memoria p.44/128

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

Tema 4 Administracion de la memoria p.45/128

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

Tema 4 Administracion de la memoria p.46/128

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 X X X X 7 X 5 X X X 3 4 0 6 1 2 Pgina virtual

Direcciones virtuales de 16 bits Espacio de direcciones virtual de 64KB 32KB de memoria fsica Pginas de 4KB
16 pginas virtuales 8 marcos de pgina Direccin virtual 0 8192 20500=5*4096+20 24650=6*4096+74 Direccin fsica 8192 24576 12308=3*4096+20 ?

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

Tema 4 Administracion de la memoria p.47/128

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. Modica la tabla de pginas 6. Reinicia la instruccin

Tema 4 Administracion de la memoria p.48/128

Fallo de pgina (ii)

Tema 4 Administracion de la memoria p.49/128

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

Tema 4 Administracion de la memoria p.50/128

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 Direccin fsica de salida (24580)

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

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)

Tema 4 Administracion de la memoria p.51/128

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 modicado 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

Tema 4 Administracion de la memoria p.52/128

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

Tema 4 Administracion de la memoria p.53/128

Solucin: Tablas de pginas de varios niveles


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 12 PT1 PT2 Ajuste (a) 10 6 5 4 3 2 1 0 Tabla de pginas de nivel superior

Tabla de pginas de segundo nivel

Tabla de pginas para los 4MB superiores de memoria

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 Tabla de pginas de 2o nivel marco de pgina donde est la pgina

1023 6 5 4 3 2 1 0 (b)

Hacia las pginas

Tema 4 Administracion de la memoria p.54/128

No de pgina Bit de modicado Bit de proteccin No de marco de pgina Bit de validez

Valid 1 1 1 1 1 1 1 1

Virtual page 140 20 130 129 19 21 860 861


Memoria asociativa/TLB (translation lookaside buffer)

Modied 1 0 1 1 0 0 1 1

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

Solucin: Memoria asociativa/TLB

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:

Page frame 31 38 29 62 50 45 14 75

Tema 4 Administracion de la memoria p.55/128

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?

Tema 4 Administracion de la memoria p.56/128

Memoria asociativa + Memoria principal

Tema 4 Administracion de la memoria p.57/128

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

Tema 4 Administracion de la memoria p.58/128

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

Tema 4 Administracion de la memoria p.59/128

Tablas de pginas invertidas (iii)

Tema 4 Administracion de la memoria p.60/128

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

Tema 4 Administracion de la memoria p.61/128

3.3 Algoritmos de reemplazo de pginas


Algoritmo NRU (No Usada Recientemente)
Se utilizan los bits de R (referencia) y M (modicado) 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

Tema 4 Administracion de la memoria p.62/128

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

Tema 4 Administracion de la memoria p.63/128

3.3 Algoritmos de reemplazo de pginas (iii)


Algoritmo de la segunda oportunidad
Modicacin 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 nal 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 (a) 3 B 7 C 8 D 12 E (b) 14 F 15 G 18 H 20 A A se considera como una pgina recin cargada 12 E 14 F 15 G 18 H Pgina de carga ms reciente

Tema 4 Administracion de la memoria p.64/128

3.3 Algoritmos de reemplazo de pginas (iv)


Algoritmo del reloj Diere 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 K B C 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

I H G F

Tema 4 Administracion de la memoria p.65/128

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 ineciente si se implementa con una lista enlazada actualizacin de la lista en cada referencia a memoria

Tema 4 Administracion de la memoria p.66/128

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 la a 1 y su columna a 0 Se reemplaza el marco con menor la (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 1 0 2 0 3 0 0 0 0 0 0 0 0 0 0 Pgina 0 1 2 3 0 0 1 1 1 0 0 0 0 0 1 0 0 1 0 0 Pgina 0 1 2 3 0 0 0 1 1 1 0 0 1 0 0 0 0 (c) 1 1 0 Pgina 0 1 2 3 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 Pgina 0 1 2 3 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 0

(a)

(b)

(d)

(e)

0 1 1 1

0 0 0 0 (f)

0 1 0 0

0 1 1 0

0 0 0 0

1 0 0 0

1 1 0 0

1 1 1 0

0 0 0 1

1 0 0 1

1 1 0 1

0 0 0 0

0 0 1 1

1 0 1 1 (i)

0 0 0 0

0 0 1 0

0 0 1 1

1 0 1 1 (j)

0 0 0 1

0 0 0 0

(g)

(h)

Tema 4 Administracion de la memoria p.67/128

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 nal?) Contadores de tamao nito

Tema 4 Administracion de la memoria p.68/128

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 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 0 1 0 1 1 Pgina 0 1 2 3 4 5 10000000 00000000 10000000 00000000 10000000 10000000 (a)

1 1 0 0 1 0

1 1 0 1 0 1

1 0 0 0 1 0

0 1 1 0 0 0

11000000 10000000 01000000 00000000 11000000 01000000 (b)

11100000 11000000 00100000 10000000 01100000 10100000 (c)

11110000 01100000 00100000 01000000 10110000 01010000 (d)

01111000 10110000 10001000 00100000 01011000 00101000 (e)

Tema 4 Administracion de la memoria p.69/128

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

Tema 4 Administracion de la memoria p.70/128

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

Tema 4 Administracion de la memoria p.71/128

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 jo 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 (b) A0 A1 A2 A3 A4 A5 B0 B1 B2 A6 B4 B5 B6 C1 C2 C3 (c)

Tema 4 Administracion de la memoria p.72/128

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

Tema 4 Administracion de la memoria p.73/128

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

Tema 4 Administracion de la memoria p.74/128

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 modicar 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

Tema 4 Administracion de la memoria p.75/128

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 modicada Por anticipado: por ejemplo, cada X segudos (demonio de paginacin) Si, adems, se liberan pginas Cach de pginas

Tema 4 Administracion de la memoria p.76/128

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 nalizado 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)

Tema 4 Administracion de la memoria p.77/128

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

Tema 4 Administracion de la memoria p.78/128

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

Tema 4 Administracion de la memoria p.79/128

4.1 Segmentacin (ii)


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

Tema 4 Administracion de la memoria p.80/128

4.1 Segmentacin (iii)

Tema 4 Administracion de la memoria p.81/128

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 uctuantes? Se facilita el uso de procedimientos compartidos entre los usuarios? Para qu se invent esta tcnica? Paginacin No 1 S No Si Muchos S S Segmentacin

No No Para obtener un gran espacio lineal de direcciones sin tener que adquirir ms memoria fsica

S S Para permitir que los programas y datos fueran separados en espacios independientes de direcciones y poder proporcionar la proteccin y uso de objetos compartidos

Tema 4 Administracion de la memoria p.82/128

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

Tema 4 Administracion de la memoria p.83/128

4.2 Segmentacin paginada

Tema 4 Administracion de la memoria p.84/128

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

Tema 4 Administracion de la memoria p.85/128

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 1 2

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 reere a la entrada 9 de la GDT, que est en la direccin GDT+72

Tema 4 Administracion de la memoria p.86/128

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 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 Tipo Base 16-23 4 0 Direccin relativa 0: Segmento ausente de memoria 1: Segmento presente en memoria Nivel de privilegio (0-3)

Base 0-15 32 Bits

Lmite 0-15

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

Tema 4 Administracion de la memoria p.87/128

4.3 Memoria virtual en el Intel Pentium (iv)


Conversin de una pareja (selector, ajuste) a una direccin lineal:
Selector Ajuste 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

Tema 4 Administracion de la memoria p.88/128

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 Dir Linear address 10 Page (a) Page directory Page table Word selected 1024 Entries Dir Offset Page Page frame 12 Offset

Directory entry points to page table (b)

Page table entry points to word

Tema 4 Administracion de la memoria p.89/128

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

Tema 4 Administracion de la memoria p.90/128

Gestin de la memoria en Linux


Conceptos fundamentales Utiliza un esquema de paginacin a tres niveles Paginacin por demanda, aunque para ser ms eciente prepagina algunas pginas cuando se produce un fallo de pgina No utiliza el concepto de conjunto de trabajo Tamao de pgina jo. 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

Tema 4 Administracion de la memoria p.91/128

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

Tema 4 Administracion de la memoria p.92/128

Conceptos fundamentales (iii)


Ejemplo de divisin en reas del espacio de direcciones virtuales de dos procesos que comparten el cdigo:
Process A Stack pointer Physical memory

Process B Stack pointer

Unused memory

20K 8K 0

BSS Data Text (a)

BSS OS (b) Data Text (c)

24K 8K 0K

Tema 4 Administracion de la memoria p.93/128

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 nal 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

Tema 4 Administracion de la memoria p.94/128

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 Page middle directory Page table Word selected

Directory

Middle

Page

Offset

Virtual address

Tema 4 Administracion de la memoria p.95/128

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 cheros
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

Tema 4 Administracion de la memoria p.96/128

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 jo: 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 eciencia de cargar y descargar pginas a y desde la memoria principal

Tema 4 Administracion de la memoria p.97/128

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

Tema 4 Administracion de la memoria p.98/128

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

Tema 4 Administracion de la memoria p.99/128

Administracin de la memoria fsica (v)


Zona de intercambio Gestiona particiones y cheros de paginacin A las particiones de paginacin se accede como un dispositivo crudo Permite hasta un mximo de 8 cheros, que se crean con un tamao jo que no cambia durante su uso Es ms eciente 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

Tema 4 Administracion de la memoria p.100/128

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/cheros 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

Tema 4 Administracion de la memoria p.101/128

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 sucientes marcos libres:
Si hay suciente se desactiva hasta la prxima vez Si no hay sucientes trata de recuperar marcos de diferentes tipos

El demonio de paginacin tambin se puede activar si se necesitan marcos libres y no hay sucientes

Tema 4 Administracion de la memoria p.102/128

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 sucientes pginas se duerme otra vez

Tema 4 Administracion de la memoria p.103/128

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

Tema 4 Administracion de la memoria p.104/128

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 ja 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)

Tema 4 Administracion de la memoria p.105/128

Algoritmo de reemplazo de pginas (v)


3o procedimiento para recuperar pginas de usuario . . .
Respecto a la pgina seleccionada: Si no est modicada, se abandona de inmediato Si est modicada, y tiene asignado hueco en la zona de intercambio, se planica para su escritura en disco Si est modicada 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, verica si la fraccin de pginas modicadas en memoria es demasiado grande. En ese caso, comenzar a escribirlas a disco

Tema 4 Administracion de la memoria p.106/128

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

Tema 4 Administracion de la memoria p.107/128

Gestin de la memoria Windows 2000


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

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 eciente prepagina algunas pginas cuando se produce un fallo de pgina Tamao de pgina jo (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

Tema 4 Administracion de la memoria p.108/128

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)

Tema 4 Administracion de la memoria p.109/128

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 Sacrica 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.)

Tema 4 Administracion de la memoria p.110/128

Espacio de direcciones virtual de un proceso


Process A 4 GB Nonpaged pool Paged pool A's page tables Stacks, data, etc HAL + OS 2 GB System data Nonpaged pool Paged pool B's page tables Stacks, data, etc HAL + OS System data Nonpaged pool Paged pool C's page tables Stacks, data, etc HAL + OS System data Process B Process C

Process A's private code and data

Process B's private code and data

Process C's private code and data

0 Bottom and top 64 KB are invalid

Tema 4 Administracion de la memoria p.111/128

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

Tema 4 Administracion de la memoria p.112/128

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 cheros 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)

Tema 4 Administracion de la memoria p.113/128

Zona de intercambio (ii)


La zona de intercambio se organiza en cheros de paginacin Puede haber hasta 16 cheros de paginacin Cada chero 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 cheros de intercambio desde el panel de control El S.O. lleva el control de qu pgina virtual corresponde a qu parte de qu chero de paginacin El cdigo del ejecutable no se pagina, se recuperar del chero binario ejecutable

Tema 4 Administracion de la memoria p.114/128

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 modicada Un ejemplo de una entrada de pginas de un Pentium:
Bits 20 Page frame 3 1 1 1 1 1 1 1 1 1 W Not GL D A C UWV used t

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

Wt: Write through (no caching) U: Page is accessible in user mode W: Writing to the page permitted V: Valid page table entry

Tema 4 Administracion de la memoria p.115/128

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

Tema 4 Administracion de la memoria p.116/128

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

Tema 4 Administracion de la memoria p.117/128

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)

Tema 4 Administracion de la memoria p.118/128

Algoritmo de reemplazo de pginas (iii)


Administrador de conjuntos de equilibrio hilo a nivel del ncleo que cada segundo verica si hay sucientes pginas libres Si no hay sucientes 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

Tema 4 Administracion de la memoria p.119/128

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 sucientes pginas y acaba Si dio una pasada completa y no liber sucientes, 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 jas 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.)

Tema 4 Administracion de la memoria p.120/128

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

Tema 4 Administracion de la memoria p.121/128

Administracin de memoria fsica (ii)


Las cuatro listas son:
Listas de pginas modicadas 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

Tema 4 Administracion de la memoria p.122/128

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) Bottom Page evicted from a working set (1) Process exist (3)

Bad RAM page list

Tema 4 Administracion de la memoria p.123/128

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 modicada, dependiendo de su estado de limpieza 2. Las pginas de las listas de reserva y modicadas 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 naliza 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 jacin de sus pilas de kernel y sus pginas pasan a las listas de reservadas o modicadas

Tema 4 Administracion de la memoria p.124/128

Administracin de memoria fsica (v)


Las posibles transiciones son, contina. . .
4. De forma peridica, dos hilos del ncleo, comprueban si hay sucientes pginas limpias. Si no hay sucientes, toman pginas de la parte superior de la lista modicada, 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

Tema 4 Administracion de la memoria p.125/128

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 modicada a la lista de reserva? Es mejor contar con pginas limpias que modicadas 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 conictos aplicando heursticas complejas, haciendo conjeturas, considerando precedentes histricos, usando mtodos prcticos y basndose en parmetros controlados por el administrador

Tema 4 Administracion de la memoria p.126/128

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 ja, 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.

Tema 4 Administracion de la memoria p.127/128

Base de datos de marcos de pgina


Page frame database Page tables State 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

List headers Standby

4 X X 6 14

Modified Free

Zeroed

Tema 4 Administracion de la memoria p.128/128

También podría gustarte