Está en la página 1de 12

Memoria Virtual

Memoria Virtual Memoria Virtual

Introduccin o
Conceptos
Concepto de Memoria Virtual: Mtodo para conseguir e que la suma de los espacios de pila, datos y texto de un programa pueda ser mayor que el tamao f n sico de la memoria disponible para l. (Fotheringham, 1961) e Cada proceso se asigna un rea de direcciones contiguo. a El SO mantiene en memoria solamente las partes del programa que se estn utilizando y mantiene en disco a (intercambiadas) el resto. Sirve para sistemas mono y multiprogramados. Permite optimizar el uso de la memoria, al mantener en disco partes del proceso poco usadas (rutinas de atencin a errores poco frecuentes, funciones de uso o espordico, datos no usados, . . . ) a La memoria virtual se implementa normalmente mediante paginacin. o

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Introduccin o

Memoria Virtual
Eloy Anguiano Rey eloy.anguiano@uam.es
Centro de Referencia Linux UAMIBM Escuela Politcnica Superior e Universidad Autnoma de Madrid o

Conceptos

Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Paginacin o
Conceptos
Memoria Virtual Memoria Virtual

Paginacin o
Conceptos
Como respuesta al fallo de pgina, el SO: a
1 2 Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

La memoria f sica se divide en bloques de tamao jo n que llamamos marcos.


Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

La memoria virtual se divide en bloques del mismo tamao llamados pginas. n a Al ejecutar un proceso se cargan sus pginas en los a marcos disponibles. La vinculacin de direcciones o requiere soporte por hardware (Manejador de Memoria). La paginacin remedia la fragmentacin externa, o o pero no la fragmentacin interna. o Un intento de acceso a una pgina virtual que no est a e asociada a un marco produce un sealamiento al SO n (trap), llamado fallo de pgina. a

Selecciona una pgina poco usada del proceso. a Intercambia la pgina a disco. a Asigna el marco de la pgina liberada a la pgina virtual a a que se intenta acceder.

Esto supone una forma de reasignacin dinmica por o a bloques de las direcciones de memoria del proceso

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Paginacin o
Tablas de pginas a
Memoria Virtual

Paginacin o
Tablas de pginas a
Memoria Virtual

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Son tablas que contienen (para cada proceso) el nmero u de marco que corresponde a cada pgina virtual del a proceso. Estructura de una entrada de la Tabla de Procesos:

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

El tamao de pgina viene denido por el hardware y n a suele ser una potencia de 2 que var entre 512 y 16M. a Ej. simplicado: Direccionamiento de un espacio virtual de 64K, distribuido en 16 pginas de 4K. a

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Paginacin o
Aspectos de diseo n
Memoria Virtual Memoria Virtual

Paginacin o
Aspectos de diseo n
La memoria secundaria est diseada para transferir a n ecazmente los bloques de datos de mayor tamao, de n manera que es propicia para tamaos de pgina n a mayores. Si el tamao de pgina es muy pequeo, estarn n a n a disponibles en la memoria principal un gran nmero de u pginas para cada proceso. a Despus de un tiempo, todas las pginas de la memoria e a contendrn parte de las referencias ms recientes del a a proceso. La tasa de fallos de pgina ser menor. a a Cuando se incrementa el tamao de la pgina, cada n a pgina individual contendrn posiciones cada vez ms a a a distantes de cualquier referencia reciente. La tasa de fallos ser mayor. a

El tiempo de asociacin debe ser reducido o


Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Soluciones basadas completamente en hardware (utilizando registros) son las ms rpidas, pero esto slo a a o es vlido si las tablas son pequea. a n

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Cuanto menor sea el tamao de pgina, menor ser la n a a cantidad de fragmentacin interna. o Cuanto menor sea la pgina, mayor ser el nmero de a a u pginas que se necesitan por proceso. a Un nmero mayor de pginas por proceso signica que u a las tablas de pginas sern mayores. a a Esto puede signicar que una gran parte de las tablas de pginas de los procesos activos deben estar en la a memoria virtual.

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Paginacin o
Aspectos de diseo n
Memoria Virtual

Paginacin o
Aspectos de diseo n
Memoria Virtual

El comportamiento t pico de la paginacin en un programa o es el siguiente:

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Podemos ver algunos ejemplos de tamaos de pgina en n a funcin del Hardware. o Computadora Atlas Honeywell-Multics IBM 370/XA y 370/ESA Familia VAX IBM AS/400 DEC Alpha MIPS UltraSPARC Pentium Power Pc Tamao de pgina n a 512 palabras de 48 bits 1.024 palabras de 36 bits 4 Kbytes 512 bytes 512 bytes 8 Kbytes de 4 Kbytes a 16 Mbytes de 8 Kbytes a 4 Mbytes de 4 Kbytes a 4 Mbytes 4 Kbytes

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Donde: P: es el tamao del proceso completo. n W: es el tamao del conjunto de trabajo. n N: es el nmero total de pginas del proceso. u a

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Paginacin o
De un nivel: Ejemplo DEC PDP11
Memoria Virtual

Paginacin o
Multinivel
Memoria Virtual

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Direccionamiento con 16 bits (memoria lgica de o 216 =64Kb). Mantiene tablas separadas para instrucciones y datos = memoria lgica del proceso=128 KB. o Tamao de pgina: 8 KB (213 ). Memoria f n a sica: 4 MB 22 ). 512 pginas. (2 a

Objetivo: evitar tener siempre en memoria tablas de pginas completas. a


Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Solucin: dividir la tabla en sub-tablas y mantener en o memoria slo las que sean necesarias en cada momento. o

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Paginacin o
De dos niveles: ejemplo VAX
Memoria Virtual

Paginacin o
De dos niveles: ejemplo VAX
Memoria Virtual

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Direccionamiento con 32 bits (memoria lgica de 232 = o 4GB). Tamao de pgina: 512 bytes (29 ). n a Espacio de direcciones lgico divido en cuatro secciones, o 30 bytes). cada una de 1GB (2 Entrada de la tabla de pgina: 4 bytes. a Tamao de la tabla de pginas (221 4B): 8 MB!! n a Memoria f sica < 2 MB (en las VAX ms pequeas). a n Direcciones lgicas: o

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Para reducir el uso de memoria, las tablas de pginas a estn tambin paginadas, y las partes no usadas de la a e tabla intercambiadas a disco Slo el SO y su tabla de pginas permanece o a permanentemente en memoria Esquema de memoria virtual de los procesos:

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Paginacin o
De tres niveles: ejemplo SPARC
Memoria Virtual

Paginacin o
Rendimiento de un sistema de paginacin o
Memoria Virtual

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

Direccionamiento con 32 bits (memoria lgica de 4 GB o =232 ) Tamao de pgina: 4kB (212 ) 1 milln de pginas. n a o a Se dene un contexto, unico para cada proceso, y una tabla de contexto (hardware) para almacenar un apuntador al comienzo de la tabla de alto nivel del proceso.

Introduccin o Paginacin o
Conceptos Tablas de pginas a Aspectos de diseo n De un nivel: Ejemplo DEC PDP11 Multinivel De dos niveles: ejemplo VAX De tres niveles: ejemplo SPARC Rendimiento de un sistema de paginacin o

El tiempo de acceso efectivo a memoria (tae ) para un sistema de paginacin de memoria mononivel es o tae = tb + (1 p) tam + p tfallo + tam donde: tb : tiempo medio de bsqueda en la tabla de pginas u a p: probabilidad de que ocurra un fallo de pgina a tam : tiempo de acceso a memoria tfallo : tiempo de resolucin de un fallo de pgina. Tiene o a tres componentes principales:
1 2 3

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Atender la interrupcin de fallo de pgina o a Traer la pgina a la memoria a Reiniciar el proceso

En el caso de tablas multinivel (n niveles): tae = N [tbi + (1 pi ) tam + pi tfallo ] + tam i=1

Memoria Asociativa
Conceptos
Memoria Virtual

Memoria Asociativa
Esquema
Memoria Virtual

Introduccin o Paginacin o Memoria Asociativa


Conceptos Esquema Asignacin del o manejador de memoria

Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Solucin para acelerar el acceso a los marcos cuando las o tablas de procesos son muy grandes (bsqueda lenta) u y/o estn organizadas en niveles (requiere mltiples a u accesos a memoria). Se basa en la observacin de que los procesos acceden o normalmente a un nmero pequeo de pginas (y u n a espordicamente al resto). a Solucin: dotar a los ordenadores con hardware o (Memoria Asociativa) para asociar algunas pginas de a uso frecuente con pginas f a sicas sin necesidad de acceder a la tabla de pginas. El tamao de la memoria a n asociativa suele ser de 8 a 32 entradas. Proporcin de encuentros: Proporcin de accesos a la o o Memoria Asociativa que son exitosos (la Pgina Virtual a buscada se encuentra en la Memoria).

Introduccin o Paginacin o Memoria Asociativa


Conceptos Esquema Asignacin del o manejador de memoria

Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Memoria Asociativa
Asignacin del manejador de memoria o
Memoria Virtual Memoria Virtual

Pginas invertidas a
Conceptos
En sistemas de direccionamiento por 64 bits (20 Tb= 264 ), el nmero de pginas de (p.ej) 4 KB es 252 . Es u a impensable poder mantener tablas de pginas de esa a longitud, mayor que la memoria f sica de la mayor de a los sistemas. En esos sistemas, el nmero de marcos f u sicos es sustancialmente menor, lo que permite organizar la tabla de entradas alrededor de la memoria f sica en lugar de la memoria virtual (IBM S/38, HP Spectrum). La tabla de pginas ahora tiene tantas entradas como a pginas f a sicas (marcos), y cada entrada contiene la direccin virtual que est utilizando dicha pgina. o a a Se utiliza siempre con una memoria asociativa. Si una direccin virtual no se encuentra en la tabla o invertida, se hace una bsqueda en una tabla u convencional, que puede estar en memoria o en disco.

Introduccin o Paginacin o Memoria Asociativa


Conceptos Esquema Asignacin del o manejador de memoria

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a


Conceptos

Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o

Algoritmos de reemplazo
Conceptos
Memoria Virtual Memoria Virtual

Algoritmos de reemplazo
FIFO
Cada entrada de la tabla tiene un registro asociado con el instante de carga de la pgina, o (b) el SO mantiene a la tabla de pginas en orden de antigedad (FIFO) a u Cuando se produce un fallo de pgina y no hay marcos a libres, se intercambia a disco la pgina que lleve ms a a tiempo en la tabla.

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

Introduccin o Paginacin o

Tras un fallo de pgina, el SO debe elegir qu pgina de a e a memoria deber ser intercambiada disco para hacer sitio a la nueva pgina que se est solicitando. a a Criterio general: eliminar pginas poco usadas. a

Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

Criterios de diseo n de paginacin o Segmentacin o

Criterios de diseo n de paginacin o Segmentacin o

Algoritmos de reemplazo
Segunda oportunidad
Memoria Virtual Memoria Virtual

Algoritmos de reemplazo
Del reloj

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

Es una modicacin del FIFO, que consiste en revisar el o bit de Referencia de la entrada ms antigua: si es un 1, a se pone a 0 y se sita al nal de la cola de pginas. As u a sucesivamente hasta que se encuentre una pgina no a referenciada.

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

Las pginas se mantienen en una cola circular, con un a apuntador a la pginas ms antigua. Si hay un fallo y a a R=0, la pgina se retira y se avanza el apuntador. Si a R=1 se limpia R se avanza hasta encontrar una pgina a con R=0. Es tan slo una implementacin alternativa del o o algoritmo de la segunda oportunidad, ms eciente por a no requerir movimiento de pginas en la tabla de a pginas. Son los punteros los que se desplazan, no las a entradas de la tabla.

Criterios de diseo n de paginacin o Segmentacin o

Criterios de diseo n de paginacin o Segmentacin o

Algoritmos de reemplazo
Del reloj
Memoria Virtual Memoria Virtual

Algoritmos de reemplazo
Optimo
Cada pgina contiene una etiqueta con el nmero de a u instrucciones que transcurrirn hasta el prximo acceso a o a la pgina. Se reemplaza la pgina que tenga la a a etiqueta ms alta. a Problema: Es irrealizable ya que el SO no tiene forma de saber cundo se va a realizar un nuevo acceso a una a pgina. Es posible si se ejecuta en modo simulacin, se a o computan los accesos a las pginas, y esos cmputos se a o utilizan en sucesivas ejecuciones.

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

Criterios de diseo n de paginacin o Segmentacin o

Criterios de diseo n de paginacin o Segmentacin o

Algoritmos de reemplazo
NRU (No Recently Used)
Memoria Virtual

Algoritmos de reemplazo
LRU (Last Recently Used)
Memoria Virtual

Utiliza los bits de Referencia (R) y Modicado (M) de las entradas de la tabla de pginas. Se denen cuatro clases de a pginas. a
Clase 0: Pginas no referenciadas ni modicadas (R=0,M=0). a Clase 1: Pginas no referenciadas, modicadas (R=0,M=1). a Clase 2: Pginas referenciadas no modicadas (R=1,M=0). a Clase 3: Pginas referenciadas, modicadas (R=1,M=1). a

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

La asignacin de pgina a desalojar se realiza aleatoriamente o a entre las pginas de menor clase de la tabla. a

Implementa una aproximacin del algoritmo ptimo, o o basado en mirar al pasado y a partir de l estimar cul e a podr ser el uso de la pgina. a a Cuando sea necesario, el planicador saca de la tabla que lleva ms tiempo sin acceso, de entre las entradas a de la tabla. Hay varias implementaciones posibles.

Criterios de diseo n de paginacin o Segmentacin o

Criterios de diseo n de paginacin o Segmentacin o

Algoritmos de reemplazo
LRU (Last Recently Used)
Memoria Virtual

Algoritmos de reemplazo
NFU (No Frequently Used)
Memoria Virtual

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

La tabla se implementa como pila Pila de nmeros de pgina que conserva en la salida la u a pgina ms recientemente usada y en la base la menos a a recientemente usada La actualizacin de la tabla es muy lenta, an usando o u HW especial. Uso de contadores Las entradas de la tabla de pginas tienen un campo de a tiempo de uso en el que el Manejador de Memoria escribe el tiempo de cada referencia. Cada acceso a memoria requiere una bsqueda en la u Tabla de Pginas y una escritura en memoria por cada a acceso a memoria. Requiere HW especial.

Implementa una aproximacin del algoritmo LRU, o utilizando exclusivamente Software:


Se activa un contador software por cada pgina a En cada interrupcin de reloj, el SO suma el bit R (0 o o 1) al contador. Cundo existe un fallo de pgina se selecciona la pgina a a a con el contador ms bajo y se env a disco. a a

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo


Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

Criterios de diseo n de paginacin o Segmentacin o

Criterios de diseo n de paginacin o Segmentacin o

Problema: Tiene memoria

Algoritmos de reemplazo
NFU con maduracin o
Memoria Virtual Memoria Virtual

Diseo de paginacin n o
Asig. de marcos en sist. monoprogramados

Solucin al problema de memoria: Maduracin. o o


Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo
Conceptos FIFO Segunda oportunidad Del reloj Optimo NRU LRU NFU NFU con maduracin o

Se activa un contador software por cada pgina. a En cada interrupcin de reloj se desplaza el contador un o bit a la derecha y luego se suma el bit R al bit ms a signicativo del contador.

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

Se asignan pginas al SO y las restantes pginas libres a a se van asignando tras las correspondientes fallos de pgina a las pginas del proceso a a Una vez llenas todas las pginas, el manejador utiliza a uno de los algoritmos de asignacin por demanda para o intercambiar pginas de la memoria y habilitar huecos a para las nuevas pginas. a Variacin: el SO reserva parte de su espacio (libre) para o apoyar la paginacin. El espacio reservado sirve para o alamacenar temporalmente la pgina entrante mientras a se selecciona la pgina que se va a intercambiar. a

Criterios de diseo n de paginacin o Segmentacin o

Segmentacin o

Diseo de paginacin n o
Nmero de marcos u
Memoria Virtual

Diseo de paginacin n o
Asig. de marcos en sist. multiprogramados
Memoria Virtual

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

L mite superior: no se puede asignar ms del total de a marcos libres. L mite inferior: Nmero mximo de referencias necesarias u a para completar una instruccin: o L mite inferior = imax + omax (1 + nmax ) donde: imax : Nmero mximo de palabras que pueden u a componer una instruccin. o omax : Nmero mximo de operandos que puede u a necesitar una instruccin. o nmax : Numero mximo de referencias indirectas a a memoria necesarias para extraer los datos empleados por la instruccin que ms referencias utilice. o a Si hay indireccin mltiple, se debe limitar el nmero de o u u referencias indirectas, de modo que si se supera se produzca una trampa al SO. Ejemplo: Ej. PDP-11 tiene instrucciones de dos palabras con 2 operandos que pueden estar direccionados indirectamente (1 nivel): L mite inferior = 2 + 2 (1 + 1) = 6marcos

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

Asignacin equitativa: Cada proceso de los n o existentes reciben el mismo nmero de marcos (m/n) , u de los m marcos del sistema. Asignacin proporcional: El nmero de marcos o u asignados a un proceso es proporcional a su tamao. Si n si es el tamao de memoria virtual solicitado por le n proceso pi , entonces el nmero de marcos asignados al u proceso pi , ai , de entre los m marcos del sistema ser: a si , nmero m u nimo de marcos) max(ai = m si
Si var el nivel de multiprogramacin se recalcula (a la a o alta o a la baja) el nmero de marcos asignados a cada u proceso.

Asignacin con prioridades: El nmero de marcos o u asignados a un proceso no depende del tamao del n mismo sino de su prioridad.

Segmentacin o

Diseo de paginacin n o
Asignacin global o local o

Segmentacin o

Diseo de paginacin n o
Hiperpaginacin (Trashing) o
Denimos conjunto de trabajo como el nmero de u pginas activas que un proceso tiene en un momento a dado. Es el nmero suciente, mayor al m u nimo. Si el nmero de marcos disponibles es inferior al tamao del u n conjunto de trabajo, se producirn frecuentes fallos de a pgina (hiperpaginacin). a o Un proceso hiperpaginado pasa ms tiempo a intercambiando pginas que ejecutndose, y puedo a a robar pginas de otros procesos, provocando su a hiperpaginacin. o Consecuencia: reduccin drstica del uso de CPU. El o a planicador de procesos responde incrementando el nivel de multiprogramacin. Este procesos se o realimenta positivamente hasta que el sistema se desploma.

Memoria Virtual

Memoria Virtual

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

Asignacin global: Un proceso puede utilizar marcos o que pertenecen a otro proceso (ocurre en asignacin o con prioridades). Asignacin local: Un proceso slo puede utilizar o o marcos que le han sido asignados a dicho proceso. Problemas:
Desperdicia espacio si el proceso no necesita todos los marcos que se le han asignado. Si el proceso necesita ms marcos de los asignados, el a proceso no podr ejecutarse correctamente, aunque en a el sistema haya muchos marcos vac os.

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

Segmentacin o

Segmentacin o

Diseo de paginacin n o
Hiperpaginacin (Trashing) o
Memoria Virtual Memoria Virtual

Diseo de paginacin n o
Tamao de pgina n a
Razones para escoger un tamao pequeo: n n
Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

La hiperpaginacin se limita si se limita el nmero de o u marcos que el proceso puede utilizar (Asignacin local), o y si se asigna a cada proceso un nmero de marcos u suciente. Problema: Cmo calcular el nmero suciente de o u marcos que un proceso necesita. Para calcular el tamao del conjunto de trabajo, se n utiliza el modelo de conjunto de trabajo, basado en el supuesto de localidad, que dice que en la ejecucin o de un proceso, las pginas que se utilizan en cada a momento se pueden agrupar en grupos que var a lo an largo de la ejecucin del proceso. Ej: una llamada a una o funcin provoca un cambio de localidad. o

Reduce la fragmentacin interna. o Favorece la localidad (lo que se carga en memoria se ajusta a lo que se necesita).

Razones para escoger un tamao grande: n


Reduce el tamao de la tabla de pginas (slo el 1% del n a o tiempo de Lectura/Escrituras de/a disco, se debe a la transferencia, el 99% son los tiempos de latencia y posicionamiento). Reduce el nmero de fallos de pgina. u a

No hay acuerdo:
Intel 80386: 4Kb Motorola 68030: variable entre 256 bytes y 32Kb IBM/370: 2 4Kb o

Segmentacin o

Diseo de paginacin n o

Segmentacin o

Area de almacenamiento en disco


Memoria Virtual

Diseo de paginacin n o
Administracin de fallos de pgina o a
1

Lo ms simple es asignar un rea dedicada (inicialmente a a vac separada del sistema de directorios. Opciones: a),
1

Memoria Virtual

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

Cada vez que se crea un proceso se reserva una zona del rea a de intercambio igual al tamao de imagen del proceso. A n cada proceso se le asigna la direccin en disco de su rea de o a intercambio, que se almacena en la Tabla de Proceso.La lectura se realiza sumando el nmero de pgina virtual a la u a direccin de comienzo del rea asignada al proceso. o a Si los datos y/o la pila pueden crecer, es mejor reservar zonas zonas independientes. A cada zona se le asignan varios bloques. No se asigna nada inicialmente. A cada pgina se le asigna a su espacio en disco cuando se va a intercambiar, y el espacio se libera cuando la pgina vuelve a memoria. Problema: se a debe llevar contabilidad en memoria (pgina a pgina) de la a a localizacin de las pginas en disco. o a

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

Segmentacin o

Segmentacin o

El HW hace un sealamiento al ncleo, que guarda el n u contador de programa (y a veces el estado de instruccin interrumpida) o Ejecuta una rutina en ensamblador que resguarda los datos voltiles (registros) y llama al SO como un a procedimiento El SO detecta el fallo de pgina e intenta determinar la a pgina virtual requerida (normalmente contenida en un a registro, o a partir del contador de programa almacenado) El SO verica que la pgina es vlida y los permisos. En a a caso de que no sea vlida o no se disponga de los a permisos adecuados el SP env una seal al proceso o a n lo elimina. En caso contrario el SO intenta encontrar un marco libre y si no lo hay ejecuta el algoritmo de reemplazo de pginas. a Si la pgina seleccionada ha sido modicada se escribe a en disco. Durante ese tiempo el planicador da paso a

Diseo de paginacin n o
Administracin de fallos de pgina o a
Memoria Virtual 6

Segmentacin o
Memoria Virtual

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o
Asignacin de marcos o en sistemas monoprogramados Nmero de marcos u Asignacin de marcos o en sistemas multiprogramados Asignacin global o o local Hiperpaginacin o (Trashing) Tamao de pgina n a Area de almacenamiento en disco Administracin de o fallos de pgina a Administracin de o fallos de pgina a

10

El SO busca en disco la pgina solicitada y planica una a operacin de disco para recuperarla. Durante el tiempo o de carga, el proceso solicitante sigue suspendido, y el planicador puede dar paso a otro proceso de usuario. El marco se pone a ocupado. Al terminarse la carga de la pgina el SO actualiza las a tablas de pginas del proceso(s) involucrados. a La instruccin que cometi el fallo se reinicia (o vuelve o o al estado en que qued al ser interrumpida). El o Contador de Programa se modica para que apunte a esa instruccin. o El proceso que provoc el fallo se planica de nuevo y el o SO regresa a la rutina que lo llam. o La rutina restaura los registros y dems informacin a o voltil y regresa al espacio de usuario para continuar la a ejecucin. o

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o
MULTICS (segmentacin + o paginacin) o

Tcnica para mantener espacios independientes de e direcciones virtuales, llamados segmentos. Supone un nuevo nivel de abstraccin, en el que distintas partes del o proceso tienen espacios virtuales independientes entre s El espacio de memoria virtual es multidimensional . La segmentacin permite: o
1

2 3

Desentenderse de la administracin interna de la o memoria virtual del proceso, es decir, del control del crecimiento, decrecimiento y ajuste entre si de las distintas partes del proceso. Asignar permisos distintos a las partes del proceso. Compartir datos o procedimientos entre procesos.

Los segmentos se direccionan desde 0 hasta una direccin mxima, que puede variar. o a La segmentacin pura puede producir problemas de o fragmentacin externa. o

Segmentacin o

Segmentacin o
MULTICS (segmentacin + paginacin) o o
Memoria Virtual

Segmentacin o
MULTICS (segmentacin + paginacin) o o
Cada programa mantiene una tabla de segmentos, que a su vez reside en un segmento que puede estar paginado.
Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o
MULTICS (segmentacin + o paginacin) o

Memoria Virtual

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o
MULTICS (segmentacin + o paginacin) o

Cada programa dispone de una memoria virtual de hasta 218 segmentos, cada uno de hasta 64K (218 ) palabras. Cada segmento es un espacio virtual independiente que puede paginarse, con 64 (26 ) pginas de 1K (210 ) a Las direcciones f sicas son de 24 bits, con las pginas a alineadas con fronteras de 64 bytes La direccin virtual en MULTICS es: o

Cada entrada de la tabla se segmentos tiene los siguientes campos:

Segmentacin o
MULTICS (segmentacin+paginacin) o o
Memoria Virtual

Conversin de direcciones: o

Introduccin o Paginacin o Memoria Asociativa Pginas invertidas a Algoritmos de reemplazo Criterios de diseo n de paginacin o Segmentacin o
MULTICS (segmentacin + o paginacin) o

También podría gustarte