PAGINACIÓN

7
TEMA 9: PAGINACIÓN 2.1. Ejercicio 1 Supongamos la situación del Directorio y las Tablas de Páginas que muestra la figura 26.16. Teniendo en cuenta los datos que proporciona el diagrama, responder a las preguntas siguientes: 00 00 40 3B 00 00 30 7F 00 00 20 1C CR3 0000 1000 00 00 60 7C 00 00 50 1C Tabla de páginas 0 00 00 80 1C 00 00 70 7F Tabla de páginas 1 00 00 A0 7C 00 00 90 1F Tabla de páginas 2 Figura 1 - Directorio y Tablas de Páginas a) ¿Cuáles de las páginas están presentes en memoria? ¿Cuáles han sido accedidas? ¿Cuáles han sido modificadas? b) ¿Cuál es el nivel de privilegio de las páginas de la tabla de paginas 0? c) ¿Cuál es la dirección de comienzo de cada una de las tablas de páginas? d) ¿Cuáles de las páginas son cacheables? e) ¿Qué tamaño tiene cada una de las páginas? Resolución Antes de resolver las preguntas, conviene recordar cuál es la estructura de las entradas del directorio y de las tablas de páginas ( figura 17). P R/W U/S PWT PCD A D 0000 Direccion (20 bits) SIZ/0 Figura 2 - Estructura de una entrada de directorio a) ¿Cuáles de las páginas están presentes en memoria? ¿Cuáles han sido accedidas? ¿Cuáles han sido modificadas?. Para responder a estas preguntas, analizaremos los atributos de cada entrada, que aparecen reflejados en la figura 18

description

Ejercicios sobre paginación.

Transcript of PAGINACIÓN

Page 1: PAGINACIÓN

TEMA 9: PAGINACIÓN 2.1. Ejercicio 1 Supongamos la situación del Directorio y las Tablas de Páginas que muestra la figura 26.16. Teniendo en cuenta los datos que proporciona el diagrama, responder a las preguntas siguientes:

00 00 40 3B

00 00 30 7F

00 00 20 1CCR3

0000 1000

00 00 60 7C

00 00 50 1C

Tabla de páginas 0

00 00 80 1C

00 00 70 7F

Tabla de páginas 1

00 00 A0 7C

00 00 90 1F

Tabla de páginas 2

Figura 1 - Directorio y Tablas de Páginas a) ¿Cuáles de las páginas están presentes en memoria? ¿Cuáles han sido accedidas? ¿Cuáles han sido modificadas? b) ¿Cuál es el nivel de privilegio de las páginas de la tabla de paginas 0? c) ¿Cuál es la dirección de comienzo de cada una de las tablas de páginas? d) ¿Cuáles de las páginas son cacheables? e) ¿Qué tamaño tiene cada una de las páginas? Resolución Antes de resolver las preguntas, conviene recordar cuál es la estructura de las entradas del directorio y de las tablas de páginas ( figura 17).

PR/WU/SPWTPCDAD0000Direccion (20 bits) SIZ/0

Figura 2 - Estructura de una entrada de directorio a) ¿Cuáles de las páginas están presentes en memoria? ¿Cuáles han sido accedidas? ¿Cuáles han sido modificadas?. Para responder a estas preguntas, analizaremos los atributos de cada entrada, que aparecen reflejados en la figura 18

Page 2: PAGINACIÓN

11111110

00111000

00111110

00111000

11111110

11111000

00111110

00111000

PR/WU/SPWTPCDAD0000Direccion (20 bits) SIZ/0

Entrada 0 del Directorio

Entrada 1 del Directorio

Entrada 0 de Tabla 0

Entrada 1 de Tabla 0

Entrada 0 de Tabla 1

Entrada 1 de Tabla 1

Entrada 0 de Tabla 2

Entrada 1 de Tabla 2

11011100Entrada 2 del Directorio

Figura 3 - Atributos en las entradas del Directorio y las Tablas de Páginas Están presentes, por tanto, las páginas referenciadas por la entrada 1 de la tabla de páginas 1 y la entrada 0 de la tabla 2, así como las entradas 1 y 2 del directorio, es decir, las que contienen las tablas de páginas 1 y 2. Han sido accedidas las páginas referenciadas por la entrada 1 de las Tablas 0, 1 y 2, así como las entradas 1 y 2 del directorio. Todas esas páginas, salvo la entrada 2 del Directorio, han sido, además, modificadas. b) ¿Cuál es el nivel de privilegio de las páginas de la tabla de paginas 0? Como vemos en la figura 18, para ambas páginas el nivel de privilegio es uno, es decir, son páginas de usuario. c) ¿Cuál es la dirección de comienzo de cada una de las tablas de páginas? Para responder a esta pregunta es necesario observar la parte de la entrada que no hemos contemplado en la figura 18, que nos da los 20 bits más significativos de la dirección. Dado que todas las páginas son de 4Kb, al estar el bit SIZ de CR3 a cero, los 12 bits restantes serán ceros. Por lo tanto, la dirección de comienzo de la tabla 0 será la 00 00 20 00, la de la tabla 1 será 00 00 30 00 y la de la tabla 2 será 00 00 40 00. Se observa que están colocadas consecutivamente en memoria d) ¿Cuáles de las páginas son cacheables? Observando el bit PCD de los atributos de las entradas (figura 18) , podemos ver que son cacheables todas las páginas. e) ¿Qué tamaño tiene cada una de las páginas? Como ya se ha dicho, dado que el bit SIZ de CR3 está a 0, todas las páginas son de 4Kb.

Page 3: PAGINACIÓN

2.2. Ejercicio 2 Retomemos el ejercicio del apartado 1.1. Supongamos que, con la misma situación para las tablas de descriptores (figura 1), se activa la paginación. En base a la información relativa al Directorio de Tablas de Páginas y las Tablas de Páginas que se proporciona en la figura 16,responder a las siguientes preguntas. a) ¿ Cuál es la dirección lineal que se obtiene a partir de la dirección virtual? b) ¿ A qué entrada del Directorio se accede? c) ¿ A qué tabla de páginas se accede? d) ¿ Cuál es la dirección física que se corresponde con la dirección virtual inicial? Resolución a) ¿ Cuál es la dirección lineal que se obtiene a partir de la dirección virtual? Recordemos que, cuando se activa la paginación, el Pentium trabaja con Segmentación Paginada. Por lo tanto, el primer paso de la traducción de la dirección virtual es exactamente el que se hizo en el ejercicio 1.1. La diferencia es que, utilizando sólo segmentación, el valor obtenido en dicha traducción (00 40 00 07) es la dirección física a la que se accede. En este caso, sin embargo, es la dirección lineal, que se utiliza para acceder al directorio de páginas y desde él a la tabla que corresponda, hasta obtener la dirección física. b) ¿ A qué entrada del Directorio se accede? Para saberlo, basta descomponer la dirección lineal en sus campos, como indica la figura 19. Vemos que se accede a la segunda entrada (entrada numero 1) del directorio, y, por tanto, a la Tabla de Páginas 1.

00 40 00 07

0000 0000 01 00 0000 0000 0000 0000 0111

Entrada de

Directorio

Entrada de

TablaDesplazam.

Figura 4 - División de una dirección lineal c) ¿ A qué tabla de páginas se accede? A la vista de la figura anterior, vemos que se accede a la primera entrada (numero 0) de la Tabla de Páginas 1. d) ¿ Cuál es la dirección física que se corresponde con la dirección virtual inicial? Para obtener la dirección física, habría que tomar la dirección base que indica la entrada a la que se ha accedido, 00007, y añadirle los doce ceros que no se almacenan en las tablas al ser todas las páginas múltiplos de 4Kb. Obtenemos,

Page 4: PAGINACIÓN

por lo tanto, 00 00 70 00. Si a esta dirección base le sumamos el desplazamiento, 007)h, obtenemos las dirección física a la que se accede, que en este caso es 00 00 70 07. También puede obtenerse directamente concatenando el desplazamiento a los bits de la dirección que proporciona la tabla.

Page 5: PAGINACIÓN

2.3. Ejercicio 3 Se trata ahora de realizar el proceso contrario: conociendo la dirección a la que se accede, la FF 00 00 FF, hallar la dirección lineal de la que se partió. Rellenar también, en la medida de lo posible, las entradas del Directorio y de las Tablas de Páginas por las que se pase. Para ello sabemos que:

Se está trabajando con páginas de 4Kb

El desplazamiento dentro de la Tabla de Páginas y del Directorio para acceder a la entrada que corresponde es de 256 bites.

Resolución Para completar la dirección virtual necesitamos conocer el número de entrada del Directorio y de la Tabla de Paginas que se utilizan, además del desplazamiento. Comenzaremos por éste último. Como las páginas ocupan 4Kb, sus direcciones de comienzo serán múltiplos de ese valor, es decir, acabarán en doce ceros binarios. Por lo tanto, deducimos que la dirección de la base de la página a la que se accede es FF 00 00 00, y el desplazamiento será, por tanto, la diferencia entre la dirección física y la base, es decir, FF 00 00 FF – FF 00 00 00 = 00 00 00 FF Dado que solo tomamos los doce bits menos significativos, el valor a colocar en el campo desplazamiento de la dirección lineal será 0FF Para hallar el número de entrada de la Tabla de Páginas y del Directorio conocemos el desplazamiento en bits, 256. Dado que cada entrada ocupa 32 bits, en ambos casos será la novena entrada, es decir, la número 8. Por lo tanto, en ambos campos de la dirección lineal colocaremos el valor 00 0000 1000)b. Así, la dirección lineal completa queda: 0000 0010 0000 0000 1000 0000 1111 1111)2 = 02 00 80 FF)h En cuanto a la entrada de la Tabla de Páginas, con los datos de los que disponemos podemos rellenar el campo base, pero no los atributos (figura 20). De la entrada del Directorio, sin embargo, no podemos dar ningún valor.

Page 6: PAGINACIÓN

FF 00 0 - - -

- - - - - - - -

- - - - - - - -

- - - - - - - -

- - - - - - - -

- - - - - - - -

- - - - - - - -

- - - - - - - -

- - - - - - - -

Figura 5 - Tabla de páginas a la que se accede

Page 7: PAGINACIÓN

2.4. Ejercicio 4 Suponiendo la misma situación de memoria que en el ejercicio 2.1, responder a las siguientes preguntas: a) ¿Qué habría que modificar en la GDT para que se accediera a la primera página de la tercera tabla de páginas? b) Realizar un diagrama que muestre el funcionamiento tanto de la segmentación como de la paginación en este caso, rellenando todos los campos posibles c) ¿Qué dirección lineal se corresponde con ese acceso?