Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Gestion de memoria

21 views

Published on

Introducción a las Gestión de Memoria

Published in: Education
  • Be the first to comment

  • Be the first to like this

Gestion de memoria

  1. 1. UNIVERSIDAD POLITÉCNICA TRRITORIAL DE LARA PROGRAMA NACIONAL DE FORMACIÓN EN INFORMÁTICA Prof. Pura Castillo
  2. 2. 2 SistemasOperativosGestióndeMemoria Contenidos  Organización de la Memoria :  Organización del almacenamiento,  Administración, Jerarquía, Particiones,  Fragmentación, Condensación,  Compactación,  Estrategias de colocación  Administración de Memoria Virtual  Espacio de direcciones lógicas vs. físicas,.  Paginación, Segmentación,  Paginación por Demanda.  Fallo de Página,  Segmentación Paginada y Paginación Segmentada Propósito del capítulo El propósito de esta capitulo es conocer la manera en que los sistemas operativos administran la memoria. Estudiaremos varios esquemas de administración de memoria, que van desde los sencillos hasta los más avanzados. La memoria es un recurso importante que debe administrarse con cuidado. El sistema de memoria virtual de los actuales computadores surgió para liberar al programador de una serie de tareas relacionadas con el uso que los programas debían realizar con la memoria. La memoria virtual automatiza la gestión entre los dos niveles principales de la jerarquía de memoria: memoria principal y disco. Antes de entrar en los mecanismos específicos de la memoria virtual revisaremos una serie de funciones que deben incorporarse en la gestión de memoria.
  3. 3. 3 SistemasOperativosGestióndeMemoria Objetivos Al finalizar el estudio de este tema, el estudiante deberá estar en capacidad de: • Explicar el concepto de administración de memoria básica. • Explicar los procesos de intercambio. • Explicar el concepto de memoria virtual. • Comprender los algoritmos de reemplazo de páginas. • Comprender el modelado de algoritmos de reemplazo de páginas. • Comprender aspectos de diseño de los sistemas con paginación. • Comprender aspectos de implementación. • Explicar el concepto de segmentación Introducción La memoria se puede definir como los circuitos que permiten almacenar y recuperar la información. La unidad de almacenamiento es el bit (binary element) aunque normalmente la consideramos estructurada en bytes (8 bits) Aunque el byte es la unidad de direccionamiento, solemos hablar de palabras. Palabra se refiere a la longitud de los registros del microprocesador. Así hablamos de microprocesadores de 16 bits, de 32 bits. Por razones históricas a veces se denomina palabra a 16 bits (2 bytes) y doble palabra a 32 bits. La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica. Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria para tener un control sobre los lugares donde están almacenados los procesos y datos que actualmente se están utilizando. La administración de memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.
  4. 4. 4 SistemasOperativosGestióndeMemoria Organización de la Memoria: La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor. Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene idéntico tamaño al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamaño de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual será mayor que el de la memoria real). Los términos “memoria” y “almacenamiento” se consideran equivalentes. Los programas y datos deben estar en el almacenamiento principal para:  Poderlos ejecutar.  Referenciarlos directamente. Evolución de las organizaciones de memoria 1
  5. 5. 5 SistemasOperativosGestióndeMemoria Sistema Multiprogramación de Memoria Real Multiprogramación de Partición Fija. Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que: Cuando ocurre una petición de e/s la CPU normalmente no puede continuar el proceso hasta que concluya la operación de entrada/salida requerida. Los periféricos de e/s frenan la ejecución de los procesos ya que comparativamente la CPU es varios órdenes de magnitud más rápida que los dispositivos de E/S. Multiprogramación de Partición Variable Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria. Mediante un algoritmo de administración de memoria las particiones variables varia de forma dinámica durante el uso de la máquina, Evitando desperdicio de memoria. No hay límites fijos de memoria, es decir que la partición de un trabajo es su propio tamaño. Administración de Almacenamiento El sistema operativo proporciona una lista lógica y uniforme del sistema de almacenamiento de la información. El sistema operativo abstrae las propiedades físicas de los dispositivos de almacenamiento y define una unidad de almacenamiento lógico, el archivo. Jerarquía de la Memoria El tiempo de acceso es el tiempo necesario para realizar una operación de lectura/escritura, es decir, el tiempo que transcurre desde el instante en que se pone la dirección en el bus de direcciones hasta que el dato ha sido almacenado en memoria o puesto a disposición de la CPU.
  6. 6. 6 SistemasOperativosGestióndeMemoria Interesa que el acceso sea lo más rápido posible, pero además interesa tener la mayor capacidad sin incurrir en un costo excesivo. Por tanto se usan las memorias más rápidas y caras para donde los accesos son más frecuentes, Surge así lo que se llama jerarquía de la memoria y que se establece en base a los tiempo de acceso y capacidad disponible. . 1. Registros del microprocesador 2. Memoria cache 3. Memoria principal 4. Unidades de disco 5. Unidades de cinta u ópticas Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser referenciados. Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario. Un nivel adicional es el “cache” o memoria Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles De alta velocidad, que posee las siguientes características:  Es más rápida y costosa que la memoria principal.  Impone al sistema un nivel más de traspaso:  Los programas son traspasados de la memoria principal al cache antes de su ejecución.  Los programas en la memoria cache ejecutan mucho más rápido que en la memoria principal.  Estrategias de Administración de Memoria
  7. 7. 7 SistemasOperativosGestióndeMemoria Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento principal. Se dividen en las siguientes categorías:  Estrategias de búsqueda:  Estrategias de búsqueda por demanda.  Estrategias de búsqueda anticipada.  Estrategias de colocación.  Estrategias de reposición. Partición de la Memoria Desde la perspectiva del sistema operativo, cada uno de los espacios asignados a un proceso es una partición. Cuando el sistema operativo inicia, toda la memoria disponible es vista como un sólo bloque, y conforme se van ejecutando procesos, este bloque va siendo subdividido para satisfacer sus requisitos. Al cargar un programa el sistema operativo calcula cuánta memoria va a requerir a lo largo de su vida prevista. Esto incluye el espacio requerido para la asignación dinámica de memoria con la familia de funciones malloc y free.  Partición Estática: en la mayoría de los esquemas de gestión de memoria, el sistema operativo ocupa una parte fija de la memoria principal y que el resto de la memoria está disponible para ser usado por varios procesos. El esquema más sencillo de gestión de la memoria disponible es dividir en regiones con límites fijos- El particionamiento fijo consiste en la asignación estática de la memoria particionada, que es una forma de hacer posible la multiprogramación, dividiendo la memoria física disponible en varias particiones, cada una de las cuales puede ser asignada a diferentes procesos.
  8. 8. 8 SistemasOperativosGestióndeMemoria  Partición Dinámica: aquí las particiones son variables en número y longitud. Cuando se carga un proceso en la memoria principal, se le asigna exactamente tanta memoria como necesita y no más. Este método comienza bien, pero desembarca en una situación en la que hay un gran número de huecos pequeños en la memoria. La memoria comienza a estar más fragmentada y su rendimiento decae. Este fenómeno se denomina fragmentación externa y se refiere al hecho que la memoria externa a todas las particiones se fragmenta cada vez más. Ejemplo Supongamos que tenemos una partición estática de una memoria de 4Mb y un SO de 512k, particionado en los siguientes tamaños: 128,256, 512K, 720k, 1Mb, 1.5Mb. Por medio de un diagrama, indique como se representarían estas particiones en memoria. Particiones del Particiones de mismo tamaño distinto tamaño Fragmentación Es un fenómeno que se manifiesta a medida que los procesos terminan su ejecución, y el sistema operativo libera la memoria asignada a cada uno de ellos. Si los procesos se encontraban en regiones de memoria, apartadas entre sí, comienzan a aparecer regiones de memoria disponible, interrumpidas por regiones de memoria usada por los procesos que aún se encuentran activos. S.O 512 K 512 K 512 K 512 K 512 K 512 K S.O 128 K 256 K 512 K 720 K 1 Mb 1.5 Mb
  9. 9. 9 SistemasOperativosGestióndeMemoria Si la computadora no tiene hardware específico que permita que los procesos resuelvan sus direcciones en tiempo de ejecución, el sistema operativo no puede reasignar los bloques existentes, y aunque pudiera hacerlo, mover un proceso entero en memoria puede resultar una operación costosa en tiempo de procesamiento. Estrategias de Colocación Al crear un nuevo proceso, el sistema operativo tiene tres estrategias según las cuales podría asignarle uno de los bloques disponibles: Primer ajuste El sistema toma el primer bloque con el tamaño suficiente para alojar el nuevo proceso. Este es el mecanismo más simple de implementar y el de más rápida ejecución. No obstante, esta estrategia puede causar el desperdicio de memoria, si el bloque no es exactamente del tamaño requerido. Mejor ajuste El sistema busca entre todos los bloques disponibles cuál es el que mejor se ajusta al tamaño requerido por el nuevo proceso. . El Primer ajuste y el Mejor ajuste
  10. 10. 10 SistemasOperativosGestióndeMemoria Peor ajuste El sistema busca cuál es el bloque más grande disponible, y se lo asigna al nuevo proceso. Empleando una estructura de datos como un montículo, esta operación puede ser incluso más rápida que la de primer ajuste. Con este mecanismo se busca que los bloques que queden después de otorgarlos a un proceso sean tan grandes como sea posible, de cierto modo balanceando su tamaño. Intercambio (swapping) .Que ocurre si la memoria está ocupada totalmente? Intercambiar procesos entre memoria principal y secundaria (un disco rápido que alberga las imágenes de memoria de los procesos de usuario, y suministra acceso directo a esas imágenes). . Aconsejable en sistemas. de tiempo compartido. Usuarios conectados al sistema alternan periodos de trabajo e inactividad. Un proceso se sacara de memoria: Si va a estar cierto tiempo bloqueado Necesitamos compartir CPU y memoria El factor principal en el tiempo de intercambio es el tiempo de transferencia, que es Proporcional a la memoria intercambiada. Se usa en UNIX, Windows, etc
  11. 11. 11 SistemasOperativosGestióndeMemoria Ejemplo Considere un sistema de intercambio en el que la memoria contiene los siguientes huecos en orden según su posición en la memoria: 10 KB, 4 KB, 20 KB, 18 KB, 7 KB, 9 KB, 12 KB y 15 KB. Determine cuál hueco se usará si se reciben solicitudes sucesivas pidiendo: 12 KB , 10 KB, 9 KB ¿Si se usa primer ajuste? Repita el problema usando mejor ajuste, peor ajuste y siguiente ajuste. Primer ajuste: El hueco de 20 KB, el hueco de 18 KB y el hueco de 12 KB. Mejor ajuste: El hueco de 20 KB, el hueco de 10 KB y el hueco de 9 KB. Peor ajuste: El hueco de 20 KB, el hueco de 18 KB y el hueco de 15 KB. Siguiente ajuste: El hueco de 20 KB, el hueco de 18 KB y el hueco de 12 KB. La fragmentación externa se produce cuando hay muchos bloques libres entre bloques asignados a procesos. La fragmentación interna: la memoria asignada es mayor que la usada; la diferencia entre ambas es memoria interna a una partición que no se usa. Se produce cuando se asigna memoria en particiones fijas. Por ejemplo, si el sistema operativo maneja bloques de 512 bytes y un proceso requiere sólo 768 bytes para su ejecución, el sistema le entregará dos bloques (1 024 bytes), con lo cual desperdicia 256 bytes. En el peor de los casos, con un bloque de n bytes, un proceso podría solicitar kn + 1 bytes de memoria, desperdiciando por fragmentación interna n � 1 bytes.
  12. 12. 12 SistemasOperativosGestióndeMemoria Compresión o Compactación de Almacenamiento Una técnica empleada cuando la memoria está dividida en particiones de tamaño variable. De cuando en cuando, el sistema operativo desplaza las particiones para que queden contiguas y así toda la memoria libre este reunida en un solo bloque. Puede ocurrir que los agujeros (áreas libres) separados distribuidos por todo el almacenamiento principal constituyan una cantidad importante de memoria:  Podría ser suficiente (el total global disponible) para alojar a procesos encolados en espera de memoria.  Podría no ser suficiente ningún área libre individual. La técnica de compresión de memoria implica pasar todas las áreas ocupadas del almacenamiento a uno de los extremos de la memoria principal:  Deja un solo agujero grande de memoria libre contigua.  Esta técnica se denomina “recogida de residuos” Principales desventajas de la compresión  Consume recursos del sistema  El sistema debe detener todo mientras efectúa la compresión, lo que puede afectar los tiempos de respuesta. Implica la relocalización (reubicación) de los procesos que se encuentran en la memoria:  La información de relocalización debe ser de accesibilidad inmediata.  Una alta carga de trabajo significa mayor frecuencia de compresión que incrementa el uso de recursos.
  13. 13. 13 SistemasOperativosGestióndeMemoria Administración de Memoria Virtual Gestión de memoria El sistema de memoria virtual de los actuales computadores surgió para liberar al programador de una serie de tareas relacionadas con el uso que los programas debían realizar con la memoria. La memoria virtual automatiza la gestión entre los dos niveles principales de la jerarquía de memoria: memoria principal y disco. Antes de entrar en los mecanismos específicos de la memoria virtual revisaremos una serie de funciones que deben incorporarse en la gestión de memoria.. Solapamiento (overlay) El tamaño de la memoria principal disponible en los computadores ha aumentado de forma sostenida desde sus orígenes. Sin embargo, el tamaño de los programas ha crecido más rápidamente, por lo que la necesidad de ejecutar programas que no cabían en la memoria principal ha sido una constante en la historia de los computadores. Una forma de superar esta limitación es el uso de la técnica de solapamiento (overlay). Esta técnica divide en módulos el programa cuyo tamaño sobrepasa la capacidad de la memoria principal, y que reside por tanto en memoria secundaria (disco). Después se introducen en los lugares adecuados de cada módulo, y al margen de la lógica propia del programa, las instrucciones de E/S necesarias para cargar en memoria principal aquellos módulos cuyas instrucciones deban ejecutarse o cuyos datos vayan a ser referenciados en el inmediato futuro. Es decir, el propio programa se ocupa de cargar por anticipado los módulos que van a ser referenciados. Protección y Reubicación Un papel importante de la gestión de memoria es la protección. Si varios programas comparten la memoria principal debe asegurarse que ninguno de ellos pueda modificar el espacio de memoria de los demás. Como casi todos los lenguajes
  14. 14. 14 SistemasOperativosGestióndeMemoria permiten el uso de punteros dinámicos, los test en tiempo de compilación no son suficientes para garantizar la protección. Esta debe mantenerla en tiempo de ejecución el sistema de gestión de memoria (MMU). En sistemas con multiprogramación se necesita que varios programas residan Simultáneamente en memoria. El tiempo de CPU se va distribuyendo entre ellos de acuerdo a una política de prioridades determinada. La ubicación en memoria de los programas no se conoce en tiempo de compilación, por lo que no se pueden generar direcciones absolutas. Para conseguir una asignación dinámica de memoria en tiempo de ejecución se utilizan registros de reubicación. La dirección efectiva se obtiene sumando a la dirección generada por el compilador el contenido del registro de reubicación asignado al programa. .Como aseguramos la protección? Y .Como reubicamos los procesos? Necesitamos dos registros: el registro base y limite. En cada load y store: Reubicación: Direc. Fisica = Direc. Virtual + Reg. Base Protección – comprobar que la dirección cae en el rango [base,limite).
  15. 15. 15 SistemasOperativosGestióndeMemoria Registros base y límite Paginación: La paginación tsurgió de la necesidad de mantener más de un programa residente en memoria cuando la capacidad de ésta es inferior a la suma de los tamaños de los programas. Se trata de un mecanismo automático de solapamiento múltiple que practica el Sistema Operativo para hacer posible la multiprogramación. El espacio de memoria principal se divide en bloques de tamaño fijo denominados páginas. Los programas se dividen también en páginas y residen en el disco. El Sistema Operativo se encarga de asignar páginas físicas a los programas en ejecución (multiprogramación). De esta forma el tiempo de CPU puede distribuirse entre los programas residentes. Características  Es una manera de relocalización dinámica  El espacio de direcciones físicas está dividido en zonas de tamaño fìjo llamadas marcos de página  El espacio de direcciones lógico o virtual está formado por zonas de tamaño fijo denominadas páginas
  16. 16. 16 SistemasOperativosGestióndeMemoria  La dirección lógica se compone de número de página y desplazamiento dentro de la página  Con el número de página se obtiene una entrada en una tabla de páginas, en donde hay una dirección base de marco de página  La dirección de memoria fisica a la que se accede se obtiene sumando el desplazamiento a la dirección base del marco de página Compartición Esta función parece estar en contradicción con la anterior. Sin embargo, con frecuencia los programas de un sistema multiprogramado deben poder compartir y actualizar información, por ejemplo, un sistema de bases de datos. Además, no es necesario tener varias copias de una rutina si se permite que todos los programas accedan a una misma copia. Memoria virtual El sistema de memoria virtual implementa todas las funciones anteriores de forma integrada. En un computador con memoria virtual las direcciones de los programas (generadas por la CPU) hacen referencia a un espacio mayor que el espacio físico realmente disponible en la memoria principal o memoria física. Los programas operan virtualmente con un tamaño físico de memoria principal mucho mayor que el realmente disponible. En estas máquinas hay que diferenciar, pues, entre el espacio de direcciones virtuales generado por la CPU y el espacio de direcciones físicas o reales existentes en memoria principal y determinado por el número de líneas del bus de direcciones. El espacio virtual se soporta sobre un disco con la ayuda de un mecanismo de traducción que genera la dirección física de memoria principal a partir de la virtual. . Los bits de una Dirección Virtual se consideran divididos en dos campos, el número de página virtual los más significativos, y el desplazamiento dentro de la página, los menos significativos. El número de bits del campo Desplazamiento de Página lo determina el tamaño de página (nº de bits de Desplazamiento Página = log2 tamaño de página). El número de bits del campo número de página virtual lo determina el número de páginas virtuales (nº de bits de Número de página virtual =
  17. 17. 17 SistemasOperativosGestióndeMemoria log2 nº de páginas virtuales). Los bits de una Dirección Física se consideran divididos también en dos campos, el número de página física los más significativos, y el desplazamiento dentro de la página los menos significativos. El número de bits del campo Desplazamiento de Página de unas direcciones físicas es el mismo que el de una Dirección Virtual, puesto que las páginas tienen igual tamaño en memoria virtual y Memoria Física. El número de bits del campo número de página física lo determina el número de páginas físicas de Memoria Física (nº de bits de número de páginas físicas = log2 nº de páginas físicas). Para traducir una Dirección Virtual en Dirección Física se busca en la correspondiente entrada de la Tabla de Páginas. Si el bit P de esta entrada vale 1, se dice que ha ocurrido un acierto de página, y se lee el contenido del segundo campo que en los aciertos constituye el Número de Página Física en la memoria principal. La Dirección Física completa se obtiene concatenando los bits de Número de Página Física con los de Desplazamiento dentro de la Página de la Dirección Virtual. Si el bit P de la entrada de la Tabla de Página vale 0, se dice que ha ocurrido un fallo de página, lo que significa que la página virtual donde se ubica la Dirección Virtual que se está traduciendo, no se encuentra en Memoria Física. En este caso el fallo de página se sirve buscado la página en el disco, ubicándola en Memoria Física y actualizando la correspondiente entrada de la Tabla de página. aquí Dirección lógica La MMU descompone las direcciones lógicas que le pasa la CPU en dos campos: Numero de página (p) -se usa como índice para acceder a la p-esima TPE, que nos dará la dirección de la base del marco donde se encuentra la página en memoria. Desplazamiento de página (d) –sumado con la base de página define la dirección física que debe utilizar la MMU para acceder a la instrucción o datos.
  18. 18. 18 SistemasOperativosGestióndeMemoria Esquema de traducción Un ejemplo sencillo
  19. 19. 19 SistemasOperativosGestióndeMemoria Ejemplo Supongamos un sistema con direcciones de 16 bits donde 7 bits corresponden al número de página y 9 al desplazamiento dentro de la página • Tamaño de página será de 512 bytes • Un proceso referencia la dirección 0x095f (0000 1001 0101 1111) • Esta referencia es a la página 4 desplazamiento 0x15f () • En la entrada correspondiente a la página 4 de la tabla de páginas del proceso nos dirá la dirección de memoria física donde está dicha página • Supongamos que en dicha entrada nos indica que la dirección del marco de memoria física es 0xAE00 (1010 1110 0000 0000) • Entonces la dirección de memoria física a donde realmente se accede es 0xAF5F (1010 11111 0101 1111) Segmentación La segmentación permite que el programador vea la memoria constituida por múltiples espacios de direcciones o segmentos. Los segmentos tienen un tamaño variable, dinámico. Las direcciones virtuales estarán constituidas en este caso por un número de segmento (NS) y un desplazamiento dentro del segmento (DP). El proceso de traducción de dirección virtual a física es análogo al de la memoria virtual paginada, con la diferencia que ahora tenemos una tabla de segmentos (TS) cuyas entradas (denominadas también descriptores de segmento) contienen, además de los bits de control y la dirección real del segmento, la longitud L del mismo, ya que los segmentos tienen longitud variable.. Un segmento es un espacio lineal de direcciones que puede ser paginado
  20. 20. 20 SistemasOperativosGestióndeMemoria Ventajas de la Segmentación  Simplifica la gestión de estructuras variables de datos. Si el programador no conoce a priori el tamaño que puede llegar a tener una estructura de datos particular, no es necesario que lo presuponga. A la estructura de datos se le asigna su propio segmento, y el sistema operativo lo expandirá o lo reducirá según sea necesario.  Permite modificar los programas y recompilarlos independientemente, sin que sea necesario volver a enlazar y cargar el conjunto entero de programas. De nuevo, esto se consigue utilizando varios segmentos.  Permite que varios procesos compartan segmentos. Un programador puede situar un programa correspondiente a una utilidad o una tabla de datos de interés en un segmento, que puede ser direccionado por otros procesos.  Se facilita la protección. Puesto que un segmento se construye para contener un conjunto de programas o datos bien definido, el programador o el administrador del sistema puede asignar privilegios de acceso de forma adecuada.  Trata de resolver los problemas de fragmentación externa e interna, y los elevados tiempos de búsqueda mediante la paginación de los segmentos. Paginación por Demanda. La paginación sobre demanda significa que, para comenzar a ejecutar un proceso, el sistema operativo carga solamente la porción necesaria para comenzar la ejecución (posiblemente una página o ninguna), y que a lo largo de la ejecución, el paginador es flojo: sólo carga a memoria las páginas cuando van a ser utilizadas. Al emplear un paginador flojo, las páginas que no sean requeridas nunca serán siquiera cargadas a memoria. .Las ventajas son: menos E/S. menos memoria, respuesta más rápida, más usuarios. La estructura empleada por la MMU para implementar un paginador flojo es el siguiente: la tabla de páginas incluirá un bit de validez, indicando para cada página del proceso si está presente o no en memoria. Si el proceso intenta emplear una página que esté marcada como no válida, esto causa un fallo de
  21. 21. 21 SistemasOperativosGestióndeMemoria página, que lleva a que el sistema operativo lo suspenda y traiga a memoria la página solicitada para luego continuar con su ejecución: Verifica en el PCB si esta solicitud corresponde a una página que ya ha sido asignada a este proceso. En caso de que la referencia sea inválida, se termina el proceso. Fallo de Página  En una falta de página, el SO mira en la tabla que mantiene el espacio de direcciones completo del proceso para decidir si: o La referencia es invalida → aborta proceso  La página no está en memoria, entonces:  Obtiene un marco vacío.  Carga la página dentro del marco.  Pone el bit de validez a 1.  Rearranca la instrucción.  Si la página está en memoria pero la traducción no es válida Þ reasigna la página. Algoritmos de Remplazo de Páginas Cuando se presenta un fallo de página, el sistema operativo tiene que escoger la página que desalojará de la memoria para hacer espacio para colocar la página que traerá del disco. Si la página a desalojar fue modificada mientras estaba en memoria, deberá rescribirse en el disco para actualizar la copia. En cambio, si la página no se ha modificado, no será necesario rescribirla FIFO (First In First Out) Se sustituye la página que lleva más tiempo residente en memoria. Utiliza una cola FIFO y hace un uso pobre de la localidad temporal. Veamos el comportamiento en el siguiente perfil de referencias a páginas: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2: FIFO: 9 fallos de página 2 3 2 1 5 2 4 5 3 2 5 2 2 2 2 2 5 5 5 5 3 3 3 3
  22. 22. 22 SistemasOperativosGestióndeMemoria 3 3 3 3 2 2 2 2 2 5 5 1 1 1 4 4 4 4 4 2 F F - F F F F - F - F F Reloj Es una mejora de la FIFO en la que también se chequea si una página ha sido referenciada, haciendo mejor uso de la localidad temporal. Para implementar esta política se mantiene una cola como en la FIFO, pero circular, con un puntero a la página candidata a ser sustituida, y un flag de uso asociado a cada página. El flag de uso se pone a 1 cuando la página es referenciada con posterioridad a su carga inicial en la memoria física. Al producirse un fallo de página se examina el flag de uso de la página señalada por el puntero de la FIFO. Si está a 0 la correspondiente página es sustituida, pero si vale 1 se borra el flag de uso (se pone a 0) y se avanza el puntero una posición, continuando este procedimiento hasta encontrar una página con el flag de uso a 0. Referencias a páginas: 2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2: RELOJ: 6 fallos de página 2 3 2 1 5 2 4 5 3 2 5 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 5 5 5 5 5 5 5 5 1 1 1 4 4 3 3 3 3 F F - F F - F - F - - - LRU (Least Recently Used) Reemplaza la página de memoria que no ha sido referenciada desde hace mucho tiempo 7 fallos de página
  23. 23. 23 SistemasOperativosGestióndeMemoria 2 3 2 1 5 2 4 5 3 2 5 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 5 5 5 5 5 5 5 5 1 1 1 4 4 4 2 2 2 F F - F F - F - F F - - Optima Se trata de la mejor política posible: sustituir la página que vaya a tardar más tiempo en ser referenciada en el futuro (Belady). Aunque esta política tiene el mínimo número posible de fallos de página (de aquí el nombre de política MIN), no se puede llevar a la práctica en tiempo real, y se utiliza como una referencia teórica para medir la eficiencia de otras políticas en entornos experimentales. 6 fallos de página 2 3 2 1 5 2 4 5 3 2 5 2 2 2 2 2 2 2 4 4 4 2 2 2 3 3 3 3 3 3 3 3 3 3 3 1 5 5 5 5 5 5 5 5 F F - F F - F - F - - Ejercicios Considera un sistema de paginación bajo demanda en el que un proceso que tiene asignados 3 marcos de página genera la siguiente secuencia de referencias a páginas: 2,3,1,2,4,5,2,3,1,5,6,1
  24. 24. 24 SistemasOperativosGestióndeMemoria Indica que accesos producirían un fallo de página cuando se utilizan las políticas de reemplazo local FIFO y LRU. Sabemos que este proceso se va a ejecutar muy a menudo en el sistema y nos interesa tener el mejor sistema de paginación para èl. ¿Valdría la pena aumentar el número de marcos de página asignados al proceso hasta 4 para alguna de estas dos políticas? Indica el número de fallos de página que se producirían en esta nueva situación para cada algoritmo. Solución FIFO: 10 fallos de página 2 3 1 2 4 5 2 3 1 5 6 1 2 2 2 2 4 4 4 3 3 3 6 6 3 3 3 3 5 5 5 1 1 1 1 1 1 1 1 2 2 2 5 5 5 F F F - F F F F F F F - • LRU: 9 fallos de página 2 3 1 2 4 5 2 3 1 5 6 1 2 2 2 2 2 2 2 2 2 5 5 5 3 3 3 4 4 4 3 3 3 6 6 1 1 1 5 5 5 1 1 1 1 F F F - F F - F F F F - Con 4 marcos: FIFO: 9 fallos de página
  25. 25. 25 SistemasOperativosGestióndeMemoria 2 3 1 2 4 5 2 3 1 5 6 1 2 2 2 2 2 5 5 5 5 5 6 6 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 3 3 3 3 3 4 4 4 4 1 1 1 1 F F F - F F F F F - F - • LRU: 8 fallos de página 2 3 1 2 4 5 2 3 1 5 6 1 2 2 2 2 2 2 2 2 2 2 6 6 3 3 3 3 5 5 5 5 5 5 5 1 1 1 1 1 3 3 3 3 3 4 4 4 4 1 1 1 1 F F F - F F F F - F - Para ambas políticas se reduce el número de fallos de página al aumentar el número de marcos a 4. 2. Considera un sistema de paginación bajo demanda en el que un proceso que tiene asignados 4 marcos de página genera la siguiente secuencia de referencias a pàginas:4,2,4,1,6,3,2,5,6,4,1,3,5,3 Indica que accesos producirían un fallo de página cuando se utiliza cada una de las políticas de reemplazo local FIFO, LRU y óptima. Número de marcos a 4. Solución FIFO: 8 fallos de página 4 2 4 1 6 3 2 5 6 4 1 3 5 3
  26. 26. 26 SistemasOperativosGestióndeMemoria 4 4 4 4 4 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 5 5 5 5 5 5 5 1 1 1 1 1 1 4 4 4 4 4 6 6 6 6 6 6 1 1 1 1 F F - F F F - F - F F - - - LRU: 11 fallos de página 4 2 4 1 6 3 2 5 6 4 1 3 5 3 4 4 4 4 4 4 2 2 2 2 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 4 1 1 1 1 5 5 5 5 3 3 3 6 6 6 6 6 6 6 6 5 5 F F - F F F F F - F F F F - • Óptimo: 7 fallos de pagina 4 2 4 1 6 3 2 5 6 4 1 3 5 3 4 4 4 4 4 4 4 4 4 4 1 1 1 1 2 2 2 2 2 2 5 5 5 5 5 5 5 1 1 1 1 1 1 1 1 3 3 3 6 6 6 6 6 6 6 6 6 6 F F - F F F F F - F F F F - Segmentación Paginada y Paginación Segmentada
  27. 27. 27 SistemasOperativosGestióndeMemoria La segmentación presenta una serie de propiedades ventajosas para el programador, sin embargo, la paginación proporciona una forma más eficiente de gestionar el espacio de memoria. Para combinar las ventajas de ambas, algunos sistemas permiten una combinación de ambas, es decir, un sistema virtual con segmentos paginados. El mecanismo de traducción de Direcciones virtuales a Direcciones Físicas, no es más que la composición del mecanismo de la memoria segmentada y el de la paginada. BIBLIOGRAFÍA Carretero Pérez, Jesús y otros. Sistemas operativos: una visión aplicada. Primera Edición, Editorial McGraw Hill, España, 2001.

×