F A C U C I E V N C I A S C Organización y Estructura del Computador II ARQUITECTURA DEL SUBSISTEMA DE MEMORIA Tema 2– Clase 4 AGENDA TEMA 2 Clase 4 Memoria Virtual ¡ ¡ ¡ Introducción Traducción de direcciones Tabla de Páginas 2 MEMORIA VIRTUAL Técnica que utiliza la memoria principal como una “caché” para almacenamiento secundario Motivaciones: 1. Permitir que la memoria sea compartida de forma eficiente y segura por varios programas 2. Eliminar los inconvenientes de programación asociados a una memoria principal cuya capacidad sea pequeña y limitada Dadas las capacidades de memoria principal actuales, hoy en día sólo aplica la primera motivación 3 MEMORIA VIRTUAL La segunda motivación consiste en permitir a un único programa de usuario excederse de la capacidad de la memoria principal que utiliza. ¡ ¡ ¡ Antiguamente, si un programa era demasiado grande para la memoria, el programador podía realizar ajustes dividiendo el programa en trozos identificando los trozos que se excluían mutuamente. Los trozos no debían sobrepasar la capacidad total de la memoria Los trozos de programa se ejecutaban bajo la supervisión del programa usuario. El programador, era quien aseguraba que el programa nunca intentaría acceder a una parte del código que no estuviese alojado en la memoria 4 MEMORIA VIRTUAL Los programas que comparten la memoria cambian dinámicamente mientras se están ejecutando, por lo que resulta conveniente que cada programa se compile en su propio espacio de direcciones La memoria virtual implementa la traducción del espacio de direcciones de un programa a direcciones físicas Cada una de las direcciones de memorial principal es una dirección física 5 MEMORIA VIRTUAL protección del espacio de direcciones de los programas El proceso de traducción obliga la protección consiste en un conjunto de mecanismos utilizados para asegurar que varios procesos que comparten el procesador, la memoria o los dispositivos de E/S no interfieran entre si. También aísla al sistema operativo de los procesos de usuario La 6 MEMORIA VIRTUAL Los bloques de memoria virtual se denominan páginas Cuando se quiere acceder a una página que no está en memoria principal ocurre un fallo de página Dirección Virtual es aquella que corresponde a una posición en el espacio virtual y es convertida mediante una regla de asignación de direcciones en una dirección física cuando se usa para acceder a la memoria principal Una 7 TRADUCCIÓN DE DIRECCIONES Direcciones Virtuales Direcciones Físicas Traducción de Direcciones Direcciones de Disco En la memoria virtual, las páginas son referenciadas por un conjunto de direcciones virtuales o por un conjunto de direcciones físicas 8 TRADUCCIÓN DE DIRECCIONES El procesador genera direcciones virtuales mientras que a la memoria se accede utilizando direcciones físicas Tanto la memoria virtual como la memoria física se dividen en páginas, de forma que una página virtual se corresponde con una página física Es posible que una página virtual se encuentre ausente de la memoria principal y no se le haya asignado una dirección física, por lo que se encuentra en el disco 9 TRADUCCIÓN DE DIRECCIONES Las páginas físicas pueden ser compartidas a través del uso de direcciones virtuales que apuntan a la misma dirección física Esta posibilidad se utiliza para permitir que dos programas distintos compartan los mismos datos y código 10 TRADUCCIÓN DE DIRECCIONES reubicación, la memoria virtual también facilita la colocación de cada programa en memoria principal para su posterior ejecución Mediante mecanismos de Estos mecanismos asocian las direcciones virtuales utilizadas por un programa a distintas direcciones físicas antes que las direcciones sean utilizadas para acceder a la memoria principal. Permiten almacenar el programa en cualquier parte de la memoria principal 11 TRADUCCIÓN DE DIRECCIONES En la memoria virtual, la dirección se divide en: ¡ Número de la página virtual ¡ Desplazamiento de la página El número de la página física forma la parte más significativa de la dirección física, mientras que el desplazamiento de la página, el cual no cambia, constituye la parte menos significativa. El número de bits del campo de la dirección correspondiente al desplazamiento de la página determina el tamaño de la página. 12 TRADUCCIÓN DE DIRECCIONES 31 30 29 28 27 ……....................… 15 14 13 12 11 10 9 8 …. 3 2 1 0 Número de página virtual Desplazamiento de la página Conversión 29 28 27 ……....................… 15 14 13 12 11 10 9 8 …. 3 2 1 0 Número de página física Desplazamiento de la página Conversión de una dirección virtual en una física Memoria Principal => 230 = 1GB Espacio direcciones virtuales => 232 = 4GB Tamaño de la página => 212 = 4KB Nº Máximo de páginas físicas => 218 ______ 13 TRADUCCIÓN DE DIRECCIONES No es necesario que el número de páginas direccionables con la dirección virtual coincida con el número de páginas direccionables con la dirección física. La disponibilidad de un número mayor de páginas virtuales que de páginas físicas es la base de la impresión de que se dispone de una cantidad ilimitada de memoria virtual. 14 TRADUCCIÓN DE DIRECCIONES Dado que la velocidad de la memoria principal es mucho mayor que la de le memoria secundaria, la penalización por fallos de página es enorme. Existen consideraciones clave en el diseño de los sistemas de memoria virtual: ¡ ¡ Las páginas deben ser suficientemente grandes para intentar amortizar el largo tiempo de acceso. Actualmente, los tamaños van desde los 4KB a los 16KB. Se deben emplear esquemas de reemplazo que reduzcan la frecuencia de los fallos de página. La técnica más frecuentemente utilizada es la totalmente asociativa 15 TRADUCCIÓN ¡ ¡ DE DIRECCIONES Los fallos de página pueden ser manejados por el software debido a que el retardo temporal adicional será pequeño en comparación con el tiempo de acceso al disco. Además el software puede emplear algoritmos más “inteligentes” para elegir cómo colocar las páginas, porque incluso pequeñas reducciones en la frecuencia de fallos compensarán el coste de usar algoritmos. La escritura directa no funciona para la memoria virtual, ya que las escrituras tardan demasiado. En su lugar, los sistemas de memoria virtual utilizan escrituras retrasadas. 16 TABLA DE PÁGINAS Reducir la frecuencia de fallos es un factor de suma importancia. Si se permite que una página virtual sea asignada a cualquier página física, el sistema operativo podrá reemplazar cualquier página que desee cuando se produzca un fallo de página. El sistema operativo podría entonces utilizar un algoritmo sofisticado y complejas estructuras de datos que realicen un seguimiento de la utilización de las páginas, con la finalidad de intentar elegir una página que no se necesite por un largo período de tiempo. 17 TABLA DE PÁGINAS Cuando se utiliza un esquema totalmente asociativo, se presenta el problema de localizar la entrada que contiene la información, pues podría estar en cualquier lugar del nivel más alto de la jerarquía y una búsqueda completa resulta poco práctica. Para solventar lo anterior, en los sistemas de memoria virtual las páginas se localizan mediante una tabla que indexa la memoria principal denominada tabla de páginas 18 TABLA DE PÁGINAS La Tabla de Páginas contiene las conversiones de dirección virtual a física. Se guarda en memoria y es normalmente indexada por el número de página virtual. Cada entrada en la tabla contiene el número de la página física para esa página virtual si la página se encuentra realmente en memoria. Cada programa tiene su propia tabla de páginas con la correspondencia entre el espacio de direccionamiento virtual del programa y la memoria principal. 19 TABLA DE PÁGINAS La tabla de páginas puede contener entradas de páginas que no estén presentes en memoria. Para indicar la localización de la tabla de páginas en la memoria, el hardware incluye un registro que apunta a la posición inicial de la tabla de páginas; ésto se denomina registro de la tabla de páginas. 20 TABLA DE PÁGINAS Registro de tabla de páginas Dirección Virtual 31 30 29 28 27 ……....................… 15 14 13 12 11 10 9 8 …. 3 2 1 0 Número de página virtual Válido 20 Si es 0 la página no está en la memoria Desplazamiento en la página Número de página física 12 18 29 28 27 ……....................… 15 14 13 12 11 10 9 8 …. 3 2 1 0 Número de página física Desplazamiento en la página Dirección Física 21 TABLA DE PÁGINAS En la figura anterior se utiliza el registro de la tabla de páginas, la dirección virtual y la tabla de la tabla de páginas para indicar cómo el hardware puede formar una dirección física. Se usa un bit de validez en cada entrada de la tabla de páginas (igual que en la memoria caché) Si el bit está desactivado, la página no está presente en la memoria y se produce un fallo de página Si el bit está activado, la página está en la memoria y la entrada contiene el número de página física 22