Tema 2 - Clase 4

Anuncio
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
Descargar