Exámenes de Gestión de Memoria.

Anuncio
ARQUITECTURA DE COMPUTADORES. 2º INGENIERÍA INFORMÁTICA.
Exámenes de Gestión de Memoria.
1) (2002) Se quiere diseñar un panel informativo que muestre un mensaje por display o pantalla cada X
segundos de forma intermitente. El mensaje aparecerá y desaparecerá durante un número limitado de
veces. Cada vez que se muestra el mensaje en el display, transcurrido 1 segundo se borra
automáticamente.
El panel informativo es manejado mediante un microcontrolador que recibe a través de un bus de
conexiones dos tramas consecutivas de datos: un mensaje de 20 caracteres y un número entero de 8
bits en binario puro que indica el número de veces que se ha de visualizar el mensaje. Esas dos
tramas de datos se pueden recibir en cualquier momento haciendo que el panel deje de mostrar el
mensaje anterior, si es que estaba mostrando algún mensaje.
El diseñador del panel informativo tiene la posibilidad de escoger entre dos microcontroladores de la
misma familia que se diferencian entre si sólo en la memoria caché que llevan incorporada. El
microcontrolador 1 tiene una memoria caché totalmente asociativa de 8 líneas/bloques. El
microcontrolador 2 tiene una memoria caché de correspondencia directa de 16 líneas/bloques. La
memoria principal es de 1K. Los bloques son de dos palabras y cada palabra es un byte. La política
de escritura es copy(write)-back con write-allocate y la política de sustitución de bloques es la LRU.
El mensaje se deja entre las posiciones de memoria principal 50 hex y 63 hex inclusive (80 y 99 en
decimal) del microcontrolador y el número de veces que se ha de visualizar el mensaje en la posición
64 hex (100 en decimal). En total 21 bytes.
El código en C de la rutina que controla el mecanismo del panel informativo es el siguiente:
# INTERVALO_PARPADEO 3000 // En milisegundos
char *buffer;
...
buffer = direct_malloc (21, 0x50);
// Esta función de asignación de memoria tiene 2 parámetros: el
// número de bytes de memoria que se van a asignar a la
// variable y la posición inicial de memoria a partir de la
// cual se reserva espacio en memoria.
...
while (((int)buffer[20])--)>0) {
// Mientras que se haya de visualizar el mensaje se itera.
// En cada iteración se decrementa la variable de control.
for (i=0; i<20; i++)
fprintf (DISPLAY, buffer[i], 1);
wait (INTERVALO_PARPADEO);
}
...
A) ¿Cómo se interpretan las direcciones físicas en la memoria caché en ambos microprocesadores?
(Muestre un esquema en el que se vean todos los campos). ¿Cuál es el número total de bloques de
memoria principal que se traen a la caché la primera vez que se muestra el mensaje por pantalla?.
B) ¿Cuál de los dos microcontroladores es más eficiente para este programa?, es decir, ¿cuál de los
dos microcontroladores va a hacer menos accesos a memoria principal a lo largo de todas las
visualizaciones del mensaje? ¿cuál es el problema que presenta el microcontrolador menos eficiente
para este programa? Razone la respuesta.
C) Suponga que el mensaje mandado es el siguiente: “agur eta gero arte! 5”. El último byte
indica, como ya se ha dicho antes, el número de veces que habrá de mostrarse el mensaje. Indique
para el microprocesador más eficiente cómo se distribuirían los caracteres del mensaje y el número
entero en la memoria caché después de mostrar por última vez el mensaje en el display (acabado el
programa).
(NOTA: recuerde que un carácter, aunque sea un espacio en blanco, ocupa un byte)
2) (Junio03)(3,0 puntos) En un sistema paginado se ejecutan simultáneamente 4 procesos de usuario A,
B, C y D. Cada proceso en este caso va a tener (ocupar) 8 paginas. La memoria virtual es de 4
Mbytes y la memoria física o principal de 1 Mbytes. Las páginas ocupan 64 Kbytes.
Los 4 primeros marcos o páginas físicas de memoria principal están ocupadas por procesos del
sistema operativo que no pueden ser expulsados de memoria principal. Las siguientes 5 páginas
físicas o marcos de la memoria principal están ocupadas por las 4 primeras páginas de un proceso X
de igual prioridad y características que los anteriores procesos de usuario. El proceso X tiene en total
6 páginas.
A) Indique los diferentes campos en que se divide cada dirección (Dirección física y dirección
virtual) así como su longitud en bits.
B) Las referencias virtuales de los procesos A, B, C y D descritas más abajo implican la carga de
unas determinadas páginas de esos procesos en memoria principal. Si tras ejecutar todas las
referencias virtuales indicadas se quedan en memoria principal todas esas páginas asociadas a los
procesos A, B, C y D, indique un posible esquema del estado final de la memoria principal (tenga en
cuenta que esto puede implicar que alguna página de algún proceso anterior sea expulsada para hacer
hueco). Bastará indicar para cada marco de memoria principal la página que contiene (proceso y
número de página si procede). Si el marco de página queda vacío indicar simplemente “VACIO”. Las
referencias enviadas por el procesador son:
- Proceso A: 0x070000 hasta 0x07A1B2 y 0x010001.
- Proceso B: 0x023002 hasta 0x0230B4
- Proceso C: 0x019106, 0x039106, 0x043A00 y 0x054A00
- Proceso D: 0x001111 hasta 0x00F111 y 0x000001
C) Se tiene una TLB con capacidad para 32 líneas en total, asociativa por conjuntos de 4 vías y bits
de validez. En función de cómo haya ubicado el proceso C en memoria principal en el apartado B),
indicar la estructura y el contenido de la TLB una vez procesadas todas las referencias del proceso C.
(NOTA: 0x ... quiere decir que el número está en hexadecimal)
3) (Sep03) (3,0 puntos) En un PC industrial diseñado para automatizar tareas industriales se dispone de
una memoria caché de 4Ks de correspondencia directa y una memoria principal de 1M. La memoria
caché sigue una política de escritura copy-back y write-allocate. Un bloque en memoria principal
ocupa 32 bytes . El tiempo de acceso a la caché es de 2ms y tiempo de acceso a memoria principal
para leer un bloque es de 60 ms. La caché está inicialmente vacía.
Usted es el ingeniero encargado de diseñar un sistema de tiempo real y dispone de los dos siguientes
programas o alternativas:
// PROGRAMA 1:
char mx[1024][1024];
int i,j;
for (i=0; i<1024 ; i++)
for (j=0; j<1024 ; j++) {
if (mx[i][j] != 0 ) {
enviar_alarma (m[i][j]);
m[i][j] = 0;
}
}
}
// PROGRAMA 2:
char mx[1024][1024];
int i,j;
for (i=0; i<1024 ; i++)
for (j=0; j<1024 ; j++) {
if (mx[j][i] != 0 )
enviar_alarma (m[j][i]);
m[j][i] = 0;
}
}
}
Los programas realizan la misma tarea pero no presentan tiempos de cómputo iguales. Tenga en
cuenta además que: los datos de las matrices se almacenan en memoria en filas consecutivas y se ha
demostrado empíricamente que la probabilidad de encontrar un elemento en la matriz igual a cero es
aproximadamente 0,03125.
A) Dados los dos programas anteriores analícelos e indique cuál de los dos resulta más eficiente.
Calcule en ambos casos el tiempo medio de ejecución. Justifique su respuesta y su elección.
B) Suponga ahora que dispone de un sistema paginado con memoria virtual de 2 Ms como máximo
por proceso y marcos de páginas de 64Ks. Si el S.O. le va a dejar a este proceso como máximo 0,5
Ms ¿cómo afectará esto al rendimiento general en el programa 1? ¿Cuántos marcos de páginas se
cargarán y cuantos se tendrán que expulsar a lo largo de toda la ejecución en el programa 1?
(NOTACIÓN: Ms = Megabytes, Ks = Kilobytes, ms = milisegundos)
4) (Sep04) (0.5 punto) Imagínese un ordenador empotrado, con un sistema de memoria compuesto por
una memoria EPROM (tiempo medio de acceso de 10μs), donde residen las instrucciones
pertenecientes al único programa que ejecuta el microprocesador, y una pequeña memoria dinámica
(tiempo medio de acceso de 60ns) que se utiliza para almacenar los datos intermedios, generados en
la ejecución del programa. Sabiendo que el 60% de los accesos son a instrucciones y el 40% a datos,
¿cuál es el tiempo medio de acceso de la jerarquía de éste ordenador?
(1 punto) Imagine que se quiere implementar un caché separado serie en dicho ordenador, y que el
tiempo medio de acceso de caché para datos e instrucciones es de 5ns. Si la tasa de fallos para datos
es del 10% y para instrucciones del 5%, ¿Cuál es ahora el tiempo medio de acceso de la jerarquía de
memoria?
(1 punto) Imagine ahora que para incrementar la velocidad del ordenador, se le dota a éste de una
memoria dinámica mayor de manera que al arrancar, el programa se vuelque a memoria dinámica y a
partir de ese momento se ejecute desde ésta. Suponiendo que no varían ni las tasas de fallos ni los
tiempos de acceso citados, ¿cuál es el tiempo de acceso obtenido con esta mejora?
(0.5 punto) Partiendo de la mejora del apartado anterior, suponga que la organización interna de cada
una de las cachés es la siguiente: directamente mapeado, con 256 bloques de 4 bytes. El procesador
maneja direcciones de 16 bits. El programa se vuelca a memoria en el rango de direcciones que va
desde la 0000h hasta la 07FFh, y los datos se colocan desde la 17FFh hasta la FFFFh. Si la
probabilidad de acceder a una dirección cualquiera de los rangos anteriormente mencionados es la
misma para todas sus direcciones, ¿merecería la pena unificar el caché por un solo caché
directamente mapeado de 256 bloques de 4 bytes? ¿Porqué? En caso de que las prestaciones fueran
peores, ¿A qué tipo de error se debería este decremento en las prestaciones? En caso contrario,
indique qué tipo de error es el que se evita con el caché unificado.
5) (Julio05) (1 punto) Enumere los niveles de la jerarquía de memoria de un computador cuyo tiempo
de acceso medio a dicha jerarquía es de 44 ciclos, sabiendo que el tiempo de la memoria principal es
20 ciclos y el tiempo de transferencia es de 2 ciclos por palabra. Razone el porqué de la existencia de
cada uno de los niveles de dicho sistema. (Considere que la Tabla de Página, en caso de que exista,
no es cacheable).
6) (Julio05) (1 punto) Considere un computador con una memoria principal de capacidad 16MBytes
que utiliza memoria virtual paginada, con páginas de 256KBytes. La tabla de páginas tiene un
tamaño de 32KBytes. Cada entrada de la tabla de páginas contiene la siguiente información: bit
Válido, bit Dirty, y nº de marco en memoria principal.
a. Especifique el formato de la dirección virtual y dirección física, indicando el número de bits
que ocupa cada uno de los campos.
b. Dibuje el esquema de cómo se realiza el mecanismo de traducción.
7) (Sept05) Considere un sistema con memoria virtual en el que la dirección virtual se compone de un
número de página de 8 bits y un desplazamiento de 16 bits. Dicho sistema posee una memoria física
de 1 Gbyte y es direccionada por bytes. Cada entrada en la tabla de páginas tiene un tamaño de 4
bytes.
En este sistema, el sistema operativo ocupa los 4 primeros Mbytes de memoria física y es en esta
zona de memoria donde se almacenan las tablas de página de todos los procesos. Con estos datos
determine:
a.
b.
c.
¿Cuál es el espacio de direccionamiento virtual máximo de un proceso?
¿Cuál es el número máximo de procesos que pueden residir simultáneamente en memoria
principal si cada uno ocupa el máximo espacio posible?
¿En las circunstancias del segundo apartado, qué tamaño ocupan todas las tablas de página de los
distintos procesos?
En el sistema anterior se emplea una memoria caché accedida por direcciones físicas con un tamaño
de 256 Kbytes. Esta memoria caché está organizada en líneas de 32 bytes de longitud agrupadas en
conjuntos de dos vías. En estas circunstancias, establezca:
d.
¿Cómo se estructura la dirección que llega a la caché?
e.
¿Es necesario vaciar la caché cada vez que se produce un cambio de contexto? ¿Por qué?
8) (2parcial-05) Se dispone de un sistema con una memoria de 64KB. El sistema tiene una caché
externa asociativa por conjuntos de 2 vias, con 2KB de capacidad destinados a datos, 64 bytes por
bloque, serie, unificada, con write-through, no write allocate, y con FIFO.
c. Dibuje la conexión entre la CPU, la caché y la memoria principal.
d. Describa cómo interpreta la caché una dirección de memoria, descomponiendo ésta en los
campos correspondientes. Razone la respuesta.
e. La caché tiene una tasa de aciertos del 97%, un tiempo de acierto de 2 ciclos de reloj. La
memoria tiene un tiempo de acceso de 20 ciclos de reloj y un tiempo de transferencia de
palabra de 2 ciclos de reloj. ¿Cuál es el tiempo de acceso medio de la jerarquía? Por otro
lado, si la caché se eliminase del sistema, ¿Cuál sería el tiempo medio de acceso? Razone la
respuesta.
9) (2parcial-05) En un sistema con memoria virtual, ¿qué campo no se utiliza en la tabla de páginas?:
tache la que proceda.
f.
g.
h.
Válido
Dirty o modificado.
Etiqueta.
10) (2parcial-05) Dado un sistema dotado de memoria virtual, ¿porqué mejora cuando se le añade una
TLB?¿Dónde se implementan y cuántas hay como máximo en el sistema? Razone la respuesta.
Descargar