Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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 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
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
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
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
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
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).
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.
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
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
Algoritmos de reemplazo
Segunda oportunidad
Memoria Virtual Memoria Virtual
Algoritmos de reemplazo
Del reloj
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.
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.
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.
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
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.
Algoritmos de reemplazo
LRU (Last Recently Used)
Memoria Virtual
Algoritmos de reemplazo
NFU (No Frequently Used)
Memoria Virtual
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.
Algoritmos de reemplazo
NFU con maduracin o
Memoria Virtual Memoria Virtual
Diseo de paginacin n o
Asig. de marcos en sist. monoprogramados
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
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).
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
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
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