Академический Документы
Профессиональный Документы
Культура Документы
Sistemas Operativos
Objetivos de la Sesin
Identificar la jerarqua de memoria. Exponer los objetivos y requisitos de un administrador de memoria. Exponer las estrategias de administracin del recurso memoria. Exponer las tcnicas de administracin de memoria real (particiones, paginacin y segmentacin simple) y virtual (paginacin y segmentacin virtual)
Sistemas Operativos
Objetivos de la Sesin
Real
Mono Usuario
Real
Multiprogramacin
Real
Multiprogramacin Paginacin Simple Segmentaci n Simple
Virtual
Multiprogramacin Paginacin Virtual Segmentaci n Virtual
Particionamiento
Fija Dinmica
Combinacin
Sistemas Operativos
RAM Memoria Fsica Memoria Virtual Hard Disk Drive Flash Memory
Dispositivos Externos Teclado Mouse Scaner
Almacenamiento Permanente
Sistemas Operativos
direccin
ubicacin
memoria
Procesos y Memoria
Para que un proceso se ejecute se requiere ubicarlo en memoria principal junto con los datos que direcciona. Para optimizar el uso del computador se requiere tener varios procesos en memoria principal. (grado de multiprogramacin)
Memoria Principal
Sistemas Operativos
Memoria Virtual
La memoria principal es pequea como para acomodar todos programas y datos permanentemente. Por lo que es necesario implementar mecanismos de memoria virtual. La memoria virtual es una tcnica para dar la ilusin de tener ms memoria que la memoria principal.
Memoria Virtual Memoria Fsica
Memoria Principal
Disco Duro
Sistemas Operativos
ndice
1. Objetivos del sistema de administracin de memoria 2. Modelo de memoria de un proceso 3. Esquemas de memoria basados en asignacin contigua 4. Memoria virtual 5. Archivos proyectados en memoria 6. Servicios de gestin de memoria
Sistemas operativos
Sistemas operativos
La administracin de memoria es una tarea realizada por el Sistema Operativo de un computador que consiste en cargar y descargar procesos en memoria principal para que sean ejecutados. Para ello el S.O. gestiona lo que se conoce como MMU o Unidad de Administracin de Memoria, el cual es un dispositivo hardware que transforma las direcciones lgicas en fsicas.
Sistemas operativos
ADMINISTRADOR DE MEMORIA
Direccin virtual
Sistemas Operativos
Administrador de Memoria
Sistema monoprogramado
Sistema Operativo
Sistema multiprogramado
Sistema Operativo Sistema Operativo
Mltiples programas comparten diversas particiones de memoria Particiones de tamao fijo Particiones de tamao variable
En sistemas con multiproceso, el S.O. debe repartir los recursos entre los procesos existentes: Reparto de procesador: Administracin de procesos. Reparto de memoria: Administracin de memoria. Objetivos del Administrador de Memoria A. Espacios lgicos independientes. B. Proteccin entre procesos. C. Comparticin de Memoria (procesos ligeros). D.Soporte a las regiones del proceso. E. Maximizar el grado de multiprogramacin. F. Mapas de memoria de un tamao adecuado (normalmente grandes).
Sistemas operativos
Requisitos de la Administracin de Memoria Reubicacin: En un sistema multiprogramado la memoria se encuentra compartida por varios procesos, por lo tanto, los procesos deben ser cargados y descargados de memoria. Proteccin: En un sistema con multiprogramacin es necesario proteger al sistema operativo y a los otros procesos de posibles accesos que se puedan realizar a sus espacios de direcciones. Comparticin: En ciertas situaciones, bajo la supervisin y control del sistema operativo, puede ser provechoso que los procesos puedan compartir memoria.
Sistemas operativos
Requisitos de la Administracin de Memoria Organizacin Lgica: Tanto la memoria principal como la secundaria presentan una organizacin fsica similar, como un espacio de direcciones lineal y unidimensional. Debe existir una cierta correspondencia entre el S.O. y el hardware al tratar los datos y los programas de los usuarios de acuerdo a la estructura lgica que ellos presenten. Organizacin Fsica: Debe ser parte de la gestin de memoria, la organizacin del flujo de informacin entre la memoria principal y la memoria secundaria.
Sistemas operativos
Vector destino a partir de direccin 2000 Tamao del vector en direccin 1500 Vector origen a partir de direccin 1000
Cabecera
LOAD R1, #1000 LOAD R2, #2000 LOAD R3, /1500 LOAD R4, [R1] STORE R4, [R2] INC R1 INC R2 DEC R3 JNZ /12 .................
Sistemas operativos
Memoria
0 4 8 12 16 20 24 28 32 36 .... LOAD R1, #1000 LOAD R2, #2000 LOAD R3, /1500 LOAD R4, [R1] STORE R4, [R2] INC R1 INC R2 DEC R3 JNZ /12 .................
Sistema Operativo
Sistemas operativos
Funcin de traduccin:
Traduccin(IdProc, dir_lgica) dir_fsica Ejemplo: El programa tiene asignada memoria a partir de la direccin 10000 Reubicacin: sumar 10000 a direcciones lgicas Implementacin: o Hardware o Software
Sistemas operativos
Procesador
PC 8 HW traduccin 10000 11500
10000 10004 10008 10012 10016 10020 10024 10028 10032 10036 ..........
LOAD R1, #1000 LOAD R2, #2000 LOAD R3, /1500 LOAD R4, [R1] STORE R4, [R2] INC R1 INC R2 DEC R3 JNZ /12 .................
Sistemas operativos
Memoria
10000 10004 10008 10012 10016 10020 10024 10028 10032 10036 ..........
LOAD R1, #11000 LOAD R2, #12000 LOAD R3, /11500 LOAD R4, [R1] STORE R4, [R2] INC R1 INC R2 DEC R3 JNZ /10012 .................
Sistemas operativos
La proteccin es diferente segn sea un sistema Mono o Multi programado: Sistema MonoProgramado: La intrusin se dar solamente entre el programa y el S.O. Sistema MultiProgramado: La intrusin puede venir tanto de otros procesos como de otros usuarios adems del riesgo del sistema Monoprogramado. Acciones La traduccin de direcciones debe crear espacios disjuntos Es necesario validar todas las direcciones que genera el programa La deteccin de alguna intrusin debe realizarla el hardware del procesador (MMU), ya que hay que realizarla en tiempo de ejecucin El tratamiento de alguna intrusin lo hace el SO En sistemas con mapa de E/S y memoria comn: Traduccin permite impedir que los procesos accedan directamente a dispositivos de E/S
Sistemas operativos
Sistemas operativos
Problemas: Requiere asignacin no contigua Si la posicin de zona compartida contiene referencia a otra posicin de la zona compartida, no se puede saber a qu direccin se refiere puesto que cada proceso ligero ver esa direccin de forma diferente Ejemplo: Si el cdigo, que es comn, contiene una bifurcacin, no se podr determinar a qu direccin se debe saltar, dependiendo del proceso que est ejecutando el cdigo
Mapa proceso 2
1000 zona compartida
lgico
fsico
Sistemas operativos
1. Objetivos del sistema de administracin de memoria D. Soporte de las regiones del proceso
El mapa de memoria de un proceso no es homogneo, ya que las regiones contienen diferentes tipos de informacin (cdigo, datos y pila normalmente) y poseen diferentes caractersticas Acciones: Hacer mapa de memoria dinmico: Regiones cambian de tamao (p.ej. pila) Se crean y destruyen regiones (el sistema de memoria debe controlar qu regiones estn presentes, as como su tamao) Existen zonas sin asignar (huecos, con carcter dinmico) Detectar accesos no permitidos a una regin ( de slo lectura por ej) Detectar accesos a huecos Evitar reservar espacio para huecos Guardar y gestionar una tabla de regiones para cada proceso
Sistemas operativos
un
tamao
adecuado
Los procesos necesitan cada vez mapas ms grandes: aplicaciones ms novedosas, ms recursos grficos, ms carga computacional.... Acciones Utilizar Memoria Virtual Hacer que el usuario disponga virtualmente de una enorme cantidad de memoria fsica
Sistemas operativos
Sistemas operativos
cualquier proceso.
El mapa inicial de memoria de un proceso est relacionado con el archivo ejecutable que generar el proceso Cmo generar el mapa de memoria inicial a partir del ejecutable? Cmo se organiza el mapa de memoria? Cules son sus caractersticas bsicas?
Mdulo fuente A
Montaje (o enlace):
Resuelve referencias entre mdulos objeto Resuelve referencias a smbolos de bibliotecas Genera resultado (archivo ejecutable), que incluye las bibliotecas usadas
Mdulo objeto A
Bibliotecas
Sistemas operativos
Sistemas operativos
Sistemas operativos
Desventajas: Mayor tiempo de ejecucin debido a carga y montaje. Se trata de un retraso tolerable, ya que se compensan el resto de las ventajas Ejecutable no autocontenido
Sistemas operativos
Sistemas operativos
Sistemas operativos
Sistemas operativos
Fichero Ejecutable
Nmero mgico Contador de programa inicial .................... Tabla de secciones Cdigo
Cabecera
1000
Despl. Cdigo 1000 Datos con v.i. 5000 Datos sin v.i. -----...................... ........ T. Smbolos
8000 1000
5000
Secciones
Sistemas operativos
Sistemas operativos
Sistemas operativos
/* Variable global con valor inicial */ /* Variable global sin valor inicial */
/* Parmetro */ /* Variable local */
Sistemas operativos
Sistemas operativos
Fichero ejecutable
Nmero mgico Contador de programa inicial Tabla de secciones Cdigo
Cabecera
4000
Datos con valor inicial
1000
5000 5500
Secciones
5000 8000
Tabla de smbolos
Pila
Sistemas operativos
Dat. con v.i. Fichero Dat. sin v.i. Pilas Heap F. Proyect. M. Comp.
Sistemas operativos
Sistemas operativos
Sistemas operativos
Sistemas operativos
Memoria
Proceso 4
Procesador
PC
8
10000
10200
Proceso 7 15036 Proceso 3 20500 21000
22500
4000
Registro instruccin
LOAD R3, /1500
21000
NO
>
SI
Proceso 2
25000
N
Excepcin
Sistemas operativos
Sistemas operativos
Intercambio
Sistemas operativos
Intercambio
Qu hacer si no caben todos los programas en memoria principal? Usar disco (dispositivo swap) como respaldo de la memoria principal. Si no caben en memoria todos los procesos activos, se elige un proceso residente y se copia en disco su imagen de memoria Expulsar (swap-out) a los procesos bloqueados. El proceso de expulsin no implica copiar toda la imagen del proceso (por ejemplo, no es preciso ocupar los huecos ni el cdigo, al poder recuperarse fcilmente del ejecutable). Un proceso expulsado vuelve a cargarse (swap-in) cuando est listo para ejecutar y haya espacio en memoria. Polticas de asignacin de espacio en swap: Preasignacin: al crear el proceso se reserva espacio de swap. NO Preasignacin: slo se reserva espacio de swap al expulsar. (Semejanza con estado suspendido?)
Sistemas operativos
Memoria virtual
Introduccin Paginacin Segmentacin Segmentacin paginada Paginacin por demanda Polticas de reemplazo Poltica de asignacin de marcos de pgina Hiperpaginacin Gestin del espacio de swap Operaciones sobre las regiones de un proceso
Sistemas operativos
Objetivo final: conseguir que la informacin necesaria para un proceso (conjunto de trabajo) vaya ocupando la memoria principal segn se va necesitando (es decir, conjunto de trabajo === conjunto residente)
Sistemas operativos
Memoria virtual
Ventajas: a) Aumento del grado de multiprogramacin. Por tanto, aumento en el rendimiento del sistema b) Posibilidad de ejecutar programas ms grandes que la MV disponible El uso de la MV no implica que se acelere la ejecucin del programa (ms bien al contrario, debido a la sobrecarga asociada a los movimientos de informacin entre niveles de la jerarqua). Este mecanismo no es apropiado para sistemas de tiempo real.
Sistemas operativos
Sistemas operativos
Memoria virtual
Cada entrada de la tabla de pginas contendr, adems del nmero de marco asociado con la pgina: a) Informacin de proteccin: tipo de acceso permitido RWX b) Bit de pgina vlida/invlida: para indicar si dicha entrada contiene una traduccin asociada, es decir, si se corresponde realmente con un marco c) Bit de pgina accedida (Ref): activado cuando se accede d) Bit de pgina modificada (Mod): activado cuando se escribe e) Bit de desactivacin de cach: se usa cuando la entrada corresponde con direcciones de E/S Tamao de pgina: La eleccin de tamao de pgina est condicionada por diversos factores, entre los que hay que conseguir equilibrio: Potencia de 2 y mltiplo del tamao del bloque de disco mejor pequeo por: Menor fragmentacin Se ajusta mejor al conjunto de trabajo mejor grande por: Tablas ms pequeas Mejor rendimiento de dispositivos de E/S Compromiso (entre 2K y 16K)
Sistemas operativos
Memoria virtual
Direccin:Una direccin lgica se obtiene a partir de: n pgina + desplazamiento Problema: La paginacin no ofrece una solucin ptima. Lo ideal sera que cada palabra del mapa de memoria de un proceso pudiera ubicarse en cualquier direccin. Esta solucin es inviable debido al coste de traduccin Al no ser as, con la paginacin se asigna a cada proceso un nmero entero de marcos de pgina, aunque el espacio de su mapa de memoria no sea un mltiplo entero del tamao de pgina. Por tanto, se irn generando huecos (memoria no aprovechada, en la ltima de las pginas que no se llena de forma completa). Este proceso se denomina fragmentacin interna (implica que, en trmino medio, cada proceso desperdicia la mitad de una pgina)
Sistemas operativos
Memoria virtual
Direccin lgica
Pgina
Byte
0 1 2 3
Marcos de pgina
Memoria virtual
T. Pginas Proceso 1
Pgina 0 Pgina 1 Marco 2 Marco N .............. Pgina M Marco 3
Memoria
Pg. 1 Pr. 2 Pg. P Pr. 2 Pg. 0 Pr. 1 Pg. M Pr. 1 Pg. 0 Pr. 2 ............ Pg. 1 Pr. 1 Marco N Marco 0 Marco 1 Marco 2 Marco 3 Marco 4
T. Pginas Proceso 2
Pgina 0 Pgina 1 Marco 4 Marco 0 .............. Pgina P Marco 1
Problema: Fragmentacin, la memoria asignada es mayor que la memoria requerida y por lo tanto, se desperdicia cierta cantidad de espacio
Sistemas operativos
Memoria virtual
Otras cuestiones: En este esquema, el S.O. mantiene una tabla de pginas por cada proceso. Cuando se produce un cambio de contexto se indica a la MMU qu tabla de pginas usar El S.O. mantiene una nica tabla de pginas para s mismo. As, todos los procesos comparten el SO. Cuando un proceso se ejecuta en modo sistema accede directamente a su mapa y al del SO S.O. mantiene tabla de marcos, como forma de mantener informacin de estado de la memoria principal. De cada marco se conoce su estado (libre, ocupado, etc) S.O. mantiene tabla de regiones por cada proceso, indicando las caractersticas de cada regin y qu rango de pginas pertenecen a cada regin Desperdicio de espacio: Mucho mayor gasto en tablas que con asignacin contigua: es el precio de mucha mayor funcionalidad
Sistemas operativos
Memoria virtual
Implementacin de la tabla de pginas: Las tablas de pginas se mantiene normalmente en memoria principal. Problemas: eficiencia y gasto de almacenamiento a) Eficiencia: cada acceso lgico requiere dos accesos a memoria principal, a la tabla de pginas + al propio dato o instruccin. Solucin: cach de traducciones TLB b)Gasto de almacenamiento: tablas muy grandes. Ejemplo: pginas 4K, dir. lgica 32 bits y 4 bytes por entrada, la tabla de pginas de cada proceso tendr 4MB. Solucin: tablas multinivel y tablas invertidas Valoracin : Espacios independientes para procesos: mediante tablas de pginas Proteccin: mediante tablas de pginas Compartir memoria: entradas corresponden con mismo marco (bajo supervisin del SO dos procesos pueden compartir una pgina asociada al mismo marco) Soporte de regiones: bits de proteccin, bit de validez: no se reserva espacio para huecos Maximizar rendimiento: Si, al permitir esquemas de memoria ms flexibles Mapas de tamao adecuado: s, al permitir esquemas de memoria virtual
Sistemas operativos
Memoria virtual
TLB (Translation Look-aside Buffer): Consta de una memoria asociativa con informacin sobre ltimas pginas accedidas. Para el multiproceso, existen varias posibilidades: La TLB no incluye informacin del proceso. En este caso, habr que invalidar la TLB en los cambios de contexto Entradas en TLB incluyen informacin sobre proceso: en este caso, debe existir un registro de UCP para mantener la identificacin del proceso actual Implementacin HW: La MMU consulta la TLB y si falla, se usa la TP en memoria. Ventajas: Es un proceso muy rpido Inconvenientes: Actualizar la TP en cambios de contexto y hay que invalidar la TLB cuando se produce un cambio de contexto (si no tiene informacin del PID) SW: La MMU no usa la TP, sino que slo consulta TLB. En caso de fallo, se activa el SO, que ha de buscar la entrada en la tabla de pginas (mediante programa), e insertar en la TLB la traduccin hecha, de forma que se pueda reutilizar. Ventajas: flexibilidad, ya que la tabla de pginas puede ser definida a conveniencia, sin restricciones impuestas por el hardware Inconvenientes: Es menos eficiente, ya que parte del proceso de traduccin se realiza mediante programa.
Sistemas operativos
Memoria virtual
Una de las opciones disponibles para disminuir el tamao requerido por las tablas de pginas es la tabla de pginas multinivel Organizacin:Se trata de una tabla de pginas organizadas en M niveles: Entrada de TP de nivel K apunta a TP de nivel K+1 Entrada de ltimo nivel apunta a marco de pgina Direccin: La direccin lgica especifica la entrada a usar en cada nivel 1 campo por nivel + desplazamiento Accesos:Un acceso lgico supone M + 1 accesos a memoria. Solucin: uso de TLB Invaliadacin:Si todas las entradas de una TP son invlidas, no se almacena esa TP y se pone invlida la entrada correspondiente de la TP superior Ahorro de espacio:Si el proceso usa una parte pequea de su espacio lgico, se consigue ahorro en espacio para almacenar TPs
Sistemas operativos
Memoria virtual
Pgina Direccin lgica
1er nivel
2 nivel
Byte
0 1 2 3
Marcos de pgina
0 1 2 3
n 0 1 2 3
Sistemas operativos
Memoria virtual
Ejemplo: Proceso que usa 12MB superiores y 4MB inferiores 2 niveles, pginas de 4K, dir. lgica 32 bits (10 bits por nivel) y 4 bytes por entrada Tamao: 1 TP N1 + 4 TP N2= 5 * 4KB = 20KB (frente a 4MB) Ventajas adicionales: permite compartir TPs intermedias y slo se requiere que est en memoria la TP de nivel superior. Las restantes pueden estar en disco y traerse por demanda
Sistemas operativos
Memoria virtual
memoria tablas de pginas segundo nivel Pgina 2048
. . .
Pgina 1023
. . .
Pgina 0
I V
. . .
Pgina 3071
. . .
Sistemas operativos
Memoria virtual
Otra alternativa para disminuir el espacio necesario por la tabla de pginas es la tabla de pginas invertida Organizacin: La tabla contendr tantas entradas como marcos de pgina haya. Cada entrada almacena la pgina cargada en dicho marco junto con sus caractersticas: Nmero de pgina, Proceso dueo de la pgina El tamao de la tabla de pginas es proporcional a la memoria disponible. Accesos:La MMU usa una TLB convencional, pero si falla la traduccin se accede a la tabla de pginas invertida. Al estar la tabla organizada por marcos no se puede hacer una bsqueda directa. Debera accederse a todas las entradas en busca de la pgina correspondiente. Por esta razn se suele organizar como una tabla hash Ahorro de espacio: Se reduce el espacio de almacenamiento necesario, ya que slo se guarda informacin sobre las pginas vlidas
Sistemas operativos
Memoria virtual
Direccin lgica pid Pgina Byte
i
pid pgina
Sistemas operativos
Segmentacin: es un esquema HW que intenta dar soporte directo a las regiones. En l se considera el mapa de memoria como compuesto por varios segmentos. Se puede considerar que consisten en una generalizacin de los registros valla base y lmite, pero usando un par de registros por cada segmento
Sistemas operativos
Memoria virtual
Direccin:Una direccin lgica estar compuesta por un nmero de segmento y un desplazamiento en el mismo. Traduccin: La forma de realizar la traduccin puede apreciarse en la imagen siguiente:
direccin lgica s d tabla de segmentos
lmite
base
>
SI
NO
memoria
Excepcin
Sistemas operativos
Memoria virtual
Tabla de segmentos:En este caso, la MMU usa una tabla de segmentos (TS). Organizacin: El SO mantiene una TS por proceso, de forma que en cada cambio de contexto se notifica a MMU cul debe usar Cada entrada de TS contiene (entre otros): Registro base y lmite del segmento proteccin: RWX
Problema: Fragmentacin Externa En este esquema se produce fragmentacin externa, ya que el almacenamiento de los segmentos se realiza de forma contigua. El SO debe mantener una lista que le permita conocer qu zonas de memoria estn libres y cules ocupadas: es decir, estructuras de datos que identifiquen huecos y zonas asignadas
Sistemas operativos
Memoria virtual
Valoracin: Espacios independientes para procesos: mediante su propia TS, que crea un espacio lgico independiente Proteccin: mediante TS, ofreciendo espacios disjuntos de memoria Compartir memoria: bajo control del SO es posible que dos o ms procesos tengan un segmento asociado a la misma zona de memoria Soporte de regiones: bits de proteccin Maximizar rendimiento : No lo maximiza, por la fragmentacin externa Mapas de tamao adecuado: No cumple este objetivo porque no permite implementar eficientemente un sistema de memoria virtual
Sistemas operativos
Sistemas operativos
Memoria virtual
Traduccin:La traduccin se lleva a cabo segn se indica.
lmite
dir. T. Pg.
>
SI
NO
memoria
Excepcin
direccin fsica
Sistemas operativos
Memoria virtual
Valoracin: Espacios independientes para procesos: mediante TS Proteccin: mediante TS Compartir memoria: bajo control del SO, podemos hacer que una misma entrada aparezca en diferentes TS (es decir, pueda ser usado por varios procesos) Soporte de regiones: bits de proteccin Maximizar rendimiento: la paginacin aprovecha eficientemente el espacio de memoria. Mapas de tamao adecuado: permite esquemas de memoria virtual Ventajas: Frente a paginacin sin segmentos facilita al SO la gestin de las regiones, pero requiere HW ms complejo
Sistemas operativos
Sistemas operativos
Memoria virtual
La construccin de un sistema de memoria virtual sobre un procesador con paginacin implica usar un bit de validez en las entradas de la tabla de pginas, que indica si la pgina es vlida. Estarn marcadas como invlidas todas las pginas que no residen en MP, as como las que constituyen huecos en el mapa de memoria. Para las entradas correspondientes a pginas no residentes en MP, la entrada principal, en lugar de almacenar el marco donde reside contendr la direccin del dispositivo de memoria en que se encuentra almacenada. De forma que cuando se produce un acceso a una de estas pginas, se produce una excepcin y se activa el SO, responsable de hacer la transferencia desde memoria secundaria. Algunos sistemas tambin usan la tcnica de prepaginacin. Al ocurrir un fallo de pgina no slo traen la pgina en cuestin, sino tambin las cercanas, al suponerse que se usarn en un corto plazo de tiempo. La efectividad de esta tcnica depender del acierto de la prediccin.
Sistemas operativos
Memoria virtual
Veamos cmo se gestiona la ocurrencia de un fallo de pgina: La MMU genera una excepcin. Normalmente deja en un registro especial la direccin que caus el fallo Se activa el SO, que comprueba: Si la pgina es invlida, se aborta el proceso (solucin normal, aunque tambin podra bastar con el envo de una seal). Si la pgina es ausente se siguen los pasos siguientes: a) Se consulta la tabla de marcos para ver si hay algn hueco libre: i. Si no hay ningn marco libre se aplica el algoritmo de reemplazo, que decidir el marco a desalojar. La pgina almacenada hasta entonces se marca como invlida. Si ha sido modificada, antes hay que salvar su contenido en memoria secundaria ii. Si hay marco libre: se inicia la lectura desde memoria secundaria y se vuelca al marco, marcndose como vlida dicha entrada en la TP y apuntando el marco en que est almacenada
Sistemas operativos
Memoria virtual
En el peor de los casos un fallo de pgina puede suponer dos operaciones de E/S: a) Salvaguarda de la pgina expulsada b) Lectura de la pgina nueva Dos polticas definen el funcionamiento del sistema de memoria Poltica de reemplazos: Reemplazo local: Slo puede usarse para reemplazo un marco asignado al proceso que causa fallo Reemplazo global: Puede usarse para reemplazo cualquier marco Poltica de asignacin de espacio a los procesos: Asignacin fija: El nmero de marcos de pgina para cada proceso es fijo. Asignacin dinmica: El nmero de marcos de pgina para cada proceso es dinmico
Sistemas operativos
Algoritmos a estudiar A. ptimo B. FIFO C. Reloj (o segunda oportunidad) D. LRU E. Buffering de pginas F. Retencin de pginas en memoria
Sistemas operativos
Memoria virtual
A) Algoritmo ptimo
Criterio: Pgina residente que tardar ms en accederse Implementacin: Irrealizable, ya que supone disponer de una prediccin fiable del uso de las pginas en un futuro a medio plazo Versin local y global Inters para estudios analticos comparativos
Sistemas operativos
Memoria virtual
B) Algoritmo FIFO
Criterio: se elimina la pgina que lleva ms tiempo residente Implementacin: Fcil Pginas residentes en orden FIFO se expulsa la primera No requiere hardware especial En el caso de estrategia local se mantiene una lista de pginas por cada proceso. En el caso global, basta con una nica lista Problema: Una pgina que lleva mucho tiempo residente puede seguir accedindose frecuentemente. Su criterio no se basa en el uso de la pgina. Anomala de Belady: Se pueden encontrar ejemplos en que al aumentar el nmero de marcos aumenta el nmero de fallos de pgina
Sistemas operativos
Memoria virtual
C) Algoritmo de segunda oportunidad o del reloj
Se trata de una modificacin del algoritmo FIFO, para evitar que una pgina residente desde hace tiempo sea desalojada pese a estar siendo usada. Para ello se usa el bit de referencia Ref de las pginas, con lo que se detecta su uso Criterio: Si la pgina elegida por FIFO no tiene activo el bit Ref, es la pgina expulsada Si lo tiene activo se da 2 oportunidad antes de expulsar: se desactiva el bit Ref, se pone pgina al final de FIFO, se aplica criterio a la siguiente pgina Implementacin: Se puede implementar el orden FIFO mediante una lista circular con una referencia a la primera pgina de la lista: se visualiza como un reloj donde la referencia a la primera pgina es la aguja del reloj
Sistemas operativos
Memoria virtual
D) Algoritmo LRU (last recently used)
Criterio: Basado en proximidad temporal de referencias: pgina residente menos recientemente usada como pgina a eliminar Implementacin:Posible implementacin con HW especfico y un contador de accesos a memoria: Cada entrada de la TP posee un contador Cada acceso a memoria la MMU copia el contador del sistema a entrada referenciada Reemplazo: pgina con contador ms bajo Difcil implementacin estricta (hay aproximaciones): precisara una MMU especfica, ya que habra que controlar los accesos realizados a cada marco para actualizar los contadores de los accesos en la TP Nota: en su versin global, hay que considerar los contadores de las pginas menos recientemente usadas teniendo en cuenta el tiempo lgico de cada proceso
Sistemas operativos
Memoria virtual
E) Buffering de pginas
Criterio:Esta tcnica intenta evitar el problema con las pginas modificadas que han de ser desalojadas. En este caso, el tratamiento del fallo de pgina implica realizar dos accesos a disco, uno para almacenar la pgina modificada y para traer la nueva Implementacin: Mantiene una reserva de marcos libres. Cuando se produce un fallo de pgina, siempre se usa un marco libre (es decir, en verdad no hay reemplazo) Cuando el nmero de marcos libres queda por debajo de cierto umbral se activa un demonio de paginacin, que aplica repetidamente el algoritmo de reemplazo: Pginas no modificadas pasan a lista de marcos libres Pginas modificadas pasan a lista de marcos modificados: cuando se escriban a disco pasan a lista de libres; suelen escribirse en tandas (lo que mejora el rendimiento) Si se referencia una pgina mientras est en estas listas: se recupera directamente de la lista (no hay E/S), lo que puede mejorar el comportamiento de algoritmos poco eficientes
Sistemas operativos
Memoria virtual
F) Retencin de pginas en memoria
Sistemas operativos
A) Asignacin fija
Nmero constante de marcos asignados al proceso. Puede depender de las caractersticas del proceso: tamao, prioridad,... No se adapta a las distintas fases de ejecucin. Como positivo, el comportamiento del proceso es relativamente predecible Slo tiene sentido usar estrategia de reemplazo local La arquitectura impone el N mnimo de marcos de pgina: mnimo nmero de marcos a asignar igual al nmero de referencias que aparezca en la instruccin que ms fallos de pgina pueda generar
Sistemas operativos
Memoria virtual
B) Asignacin dinmica
El nmero de marcos asignados a un proceso es variable dependiendo del comportamiento del proceso (y posiblemente de los dems procesos). Se adapta a las diferentes fases por las que puede pasar un proceso Se pueden usar tanto estrategias de reemplazo global como local. Asignacin dinmica + reemplazo local: el proceso va aumentando o disminuyendo su conjunto residente dependiendo de su comportamiento (comportamiento relativamente predecible) Asignacin dinmica + reemplazo global: los procesos compiten por el uso de las pginas entre ellos (comportamiento difcilmente predecible)
Sistemas operativos
Sistemas operativos
Memoria virtual
Utilizacin de la UCP
grado de multiprogramacin
A. Estrategia del conjunto de Trabajo B. Estrategia de administracin basada en la frecuencia de fallos de pgina C. Estrategia de control de carga para algoritmos de reemplazo globales
Sistemas operativos
Memoria virtual
A) Estrategia del conjunto de trabajo
Objetivo: Determinar el conjunto de trabajo de cada proceso, es decir, las pginas usadas por el proceso en las ltimas N referencias Proceso: Si el conjunto de trabajo decrece se liberan marcos. Si el conjunto de trabajo crece se asignan nuevos marcos. Si no hay marcos disponibles se suspender algn(os) proceso(s), que se reactivan cuando haya marcos suficientes Condicin: Si el SO es capaz de detectar el conjunto de trabajo de cada proceso, puede especificarse una estrategia de asignacin dinmica con reemplazo local
Implementacin: Difcil, ya que precisara una MMU especfica que controlara las pginas accedidas por cada proceso.
Aproximacin: Estrategia basada en frecuencia de fallos de pgina (PFF), controlando la tasa de fallos de pgina de cada proceso
Sistemas operativos
Memoria virtual
B) Estrategia basada en frecuencia de fallos de pgina
Objetivo: Controlar la tasa de fallos de pgina por proceso Proceso: Si tasa < lmite inferior, se liberan marcos aplicando un algoritmo de reemplazo Si tasa > lmite superior, se asignan nuevos marcos. Si no hay marcos libres se suspende algn proceso
tasa de fallos de pgina
lmite superior
lmite inferior
nmero de marcos
Sistemas operativos
Memoria virtual
C) Estrategia de control de carga para algoritmos de reemplazo globales
Objetivo: Controlar la hiperpaginacin utilizando un algoritmo de control de carga. Se da en algoritmos de reemplazo global.
Proceso: Ejemplo: UNIX 4.3 BSD Reemplazo global con algoritmo del reloj. Variante con dos manecillas: hay dos punteros en vez de uno Uso de buffering de pginas. Un demonio de paginacin controla el nmero de marcos libres Si el nmero de marcos libres < umbral, el demonio de paginacin aplica reemplazo Si se repite con frecuencia la falta de marcos libres: un proceso swapper suspende procesos
Sistemas operativos
Sistemas operativos
Sistemas operativos
Memoria virtual
a) Creacin de nueva regin Acciones: Al crear una regin no se asigna MP ( se har por demanda). Se marcarn las pginas como no residentes y vlidas (fallo de pgina cuando se intenten acceder) El S.O. actualiza la tabla de regiones y guarda la informacin correspondiente a las pginas de la regin, rellenando las entradas de la TP. Debe buscar un hueco en el mapa de memoria para asignar a nueva regin. Segn el soporte: Soporte en archivo: Pginas marcadas como Cargar de archivo (CA) y se almacena direccin del bloque del archivo correspondiente Sin soporte: Pginas marcadas como Rellenar con ceros (RC) y se inicializa cuando hay un fallo de pgina. Si la regin es privada con preasignacin de swap, se reserva espacio de swap Si la regin es la pila: Se copian los argumentos iniciales del proceso en bloque(s) de swap
Sistemas operativos
Memoria virtual
Algoritmo de expulsin: Si la regin es privada se escribe pgina en swap. Si no hay preasignacin de espacio swap, en la primera expulsin se reserva espacio. Posteriores fallos se sirven de ese bloque de swap Si la regin es compartida se escribe pgina en soporte, para que todos los procesos puedan ver las modificaciones. Todos los fallos se sirven del soporte En la creacin del mapa inicial (servicio exec en POSIX), se crean las regiones segn sus caractersticas Cdigo: CA, Compartida, RX Datos v. inicial: CA, Privada, RW Datos sin v. inicial: RC, Privada, RW Pila inicial: contenido inicial en swap Los huecos se marcan como pginas invlidas, tanto para el HW como para el S.O.
Sistemas operativos
Memoria virtual
Swap
RX A Bloque T (arch.) ........................... 1pg. Dat.v.i. RW A Bloque U (arch.) ........................... 1pg. RW A Rellenar con 0 Dat.no.v.i. ...........................
1pg. Pila 1pg. Cdigo
Tabla de pginas
Archivo Ejecutable
Cabecera Bloque T Bloque U Cdigo Datos con valor inicial ................
RW A Bloque S (swap)
Bloque S
Pila
Memoria virtual
b) Liberacin de regin Acciones: Actualizar tabla de regiones para eliminar regin Marcar como invlidas pginas asociadas Si la regin es privada, se libera el espacio de swap asociado Cuando: Solicitud explcita (p.ej. desproyeccin de regin). Finalizacin del proceso (exit en POSIX). El servicio exec de POSIX libera el mapa actual del proceso antes de construir un nuevo mapa vinculado al ejecutable a usar
Sistemas operativos
Memoria virtual
c) Cambio de tamao Acciones: Si disminuye: Se ajusta la tabla de regiones. Se marcan pginas como invlidas. Se libera espacio de swap Si aumenta: Se comprueba que no haya solapamiento. Se fijan nuevas pginas como no residentes y con las mismas caractersticas que otras pginas de la regin. Si hay preasignacin se reserva espacio en swap para las nuevas pginas. Casos especiales: Expansin del heap: Solicitada por programa mediante servicios del S.O. Se marcan las pginas correspondientes como RC, privadas, RW Expansin de pila no proviene de una solicitud del proceso, sino de la propia evolucin de la pila. Por esta razn esta operacin es automtica
Sistemas operativos
Memoria virtual
d) Duplicado de una regin Acciones: Se duplican las regiones privadas del padre y se comparten las no privadas La copia de una regin de un proceso en el mapa de memoria de otro proceso es una operacin costosa, ya que tambin se debe copiar el contenido.
Problema: La ejecucin de fork sera muy ineficiente. Solucin: copy-on-write (COW). Se comparte una pgina mientras no se modifique. Si un proceso la modifica, se crea una copia para l. Esta operacin se denomina duplicado por demanda
Sistemas operativos
Memoria virtual
Implementacin de COW Se comparten las pginas de regiones duplicadas Se marcan de slo lectura y con bit de COW. Al realizar la primera escritura se produce un fallo de protecccin y se genera una copia privada para el proceso que escribe. Lo normal es que haya varios procesos con misma regin duplicada, por lo que existe un contador de uso por pgina. Cada vez que se crea copia privada se decrementa contador, ya que hay un proceso menos trabajando sobre la copia compartida. Si llega a 1, se desactiva el bit COW, al no haber duplicados FORK con COW. Se comparten todas las regiones. Las regiones privadas se marcan como COW en padre e hijo, el resultado de la optimizacin es que en vez de duplicar todo el espacio de memoria slo se duplica la TP.
Sistemas operativos
Sistemas operativos
Sistemas operativos
Archivo
Bloque 0 Bloque 1
Bloque N Pila
Sistemas operativos
Sistemas operativos
Sistemas operativos
Sistemas operativos
Sistemas operativos