Simulador EGEL Ciencias Computacionales

🖥️ Arquitectura de computadoras y sistemas operativos

Arquitectura de computadoras y sistemas operativos

Representación numérica. Un binario sin signo se convierte a decimal por notación posicional (valor = suma de b_i × 2^i, empezando en 2^0 a la derecha). En complemento a dos el MSB es el bit de signo (0 positivo, 1 negativo, con peso -2^(n-1)); con n bits el rango va de -2^(n-1) a 2^(n-1)-1, o sea -128 a +127 con 8 bits y -32768 a +32767 con 16 bits. El complemento a dos se obtiene invirtiendo todos los bits y sumando 1; para ampliar a más bits se replica el MSB (extensión de signo). Hay overflow solo al sumar dos operandos del mismo signo cuyo resultado sale con signo contrario. Recuerda: 1 dígito hex = 4 bits y 1 octal = 3 bits; un bus de n líneas direcciona 2^n localidades (20 líneas → 2^20 = 1 MiB).

Punto flotante IEEE 754. Precisión simple (32 bits): 1 signo + 8 exponente + 23 mantisa, con sesgo 127. Doble precisión (64 bits): 1 signo + 11 exponente + 52 mantisa, con sesgo 1023.

Rendimiento, memoria y pipeline. El tiempo de CPU = IC × CPI × T_ciclo; el periodo T = 1/f (2 GHz → 0.5 ns); MIPS = f / (CPI × 10^6). Ley de Amdahl: Speedup = 1/((1-f)+f/s). Tiempo medio de acceso a memoria: AMAT = Hit time + Miss rate × Miss penalty, clave en la jerarquía de memoria y caché. La segmentación (pipeline) solapa las etapas de las instrucciones para elevar el rendimiento; la ISA define el repertorio de instrucciones visible al programador.

Sistemas operativos. Un proceso transita entre estados (nuevo, listo, en ejecución, bloqueado/espera y terminado); los hilos comparten el espacio de direcciones del proceso. En planificación de CPU (diagramas de Gantt):

Memoria virtual y concurrencia. La paginación divide el espacio lógico en páginas y la memoria física en marcos, con traducción por tabla de páginas. El interbloqueo requiere cuatro condiciones simultáneas: exclusión mutua, retención y espera, no expropiación y espera circular; el algoritmo del banquero lo evita concediendo recursos solo si el estado resultante queda seguro. La sincronización usa semáforos (wait/signal), mutex (exclusión mutua) y monitores (abstracción de alto nivel con variables de condición).

Practica el banco completo y haz simulacros gratis

Preguntas de muestra (35)

1. En una computadora que utiliza complemento a dos con palabras de 8 bits, ¿cuál es el rango completo de valores enteros con signo que se pueden representar?

  1. De -127 a +127
  2. De -256 a +255
  3. De -128 a +127
  4. De -128 a +128

Con n=8 bits en complemento a dos el rango es -2^(n-1) a 2^(n-1)-1, es decir -128 a +127; los demás rangos ignoran la asimetría propia de este sistema. (W. Stallings, Organización y Arquitectura de Computadores, cap. Aritmética del computador)

2. ¿Cuál es el procedimiento correcto para obtener el complemento a dos de un número binario?

  1. Invertir todos los bits y sumar 1 al resultado
  2. Invertir todos los bits y restar 1 al resultado
  3. Desplazar todos los bits una posición a la izquierda
  4. Invertir únicamente el bit más significativo

El complemento a dos se obtiene invirtiendo todos los bits (complemento a uno) y sumando 1; restar 1, desplazar bits o invertir solo el signo son errores comunes de confusión con otras operaciones. (Patterson & Hennessy, Computer Organization and Design, cap. 2/3)

3. En un registro de 8 bits en complemento a dos se suman los valores +100 y +50. El resultado binario obtenido, interpretado en complemento a dos, corresponde a un número negativo. ¿Qué explica correctamente esta situación?

  1. El resultado es correcto: el acarreo de salida del bit de signo se descarta con normalidad
  2. Hubo desbordamiento porque los operandos tienen signos distintos
  3. El resultado es correcto: sumar dos positivos en complemento a dos puede dar un negativo válido
  4. Hubo desbordamiento: ambos operandos son positivos y el resultado real (150) supera el máximo de +127

El overflow ocurre cuando dos operandos del mismo signo producen un resultado de signo contrario; aquí 100+50=150 excede +127. Sumar operandos de distinto signo nunca produce overflow. (Patterson & Hennessy, Computer Organization and Design, cap. 3)

4. En la representación en complemento a dos, ¿qué indica que el bit más significativo (MSB) de un número tenga el valor 1?

  1. Que ocurrió un acarreo en la suma anterior
  2. Que el número representado es negativo
  3. Que el número representado es positivo
  4. Que el número es par

El MSB es el bit de signo en complemento a dos: 1 indica valor negativo (con peso -2^(n-1)) y 0 indica valor positivo; la paridad la determina el bit menos significativo, no el MSB. (W. Stallings, Organización y Arquitectura de Computadores)

5. Un procesador debe mover un valor almacenado en un registro de 8 bits en complemento a dos, cuyo contenido es 11110110 (-10 en decimal), hacia un registro de 16 bits, conservando su valor. ¿Qué procedimiento debe aplicar?

  1. Rellenar con ceros los 8 bits añadidos a la izquierda, obteniendo 0000000011110110
  2. Replicar el bit menos significativo en los 8 bits añadidos a la izquierda
  3. Replicar el bit de signo (1) en los 8 bits añadidos a la izquierda, obteniendo 1111111111110110
  4. Invertir los 8 bits originales y anteponerlos como relleno

La extensión de signo replica el MSB en las posiciones añadidas para conservar el valor; rellenar con ceros es el error típico al confundir esta operación con la de números sin signo. (Patterson & Hennessy, Computer Organization and Design, cap. 2)

6. ¿Cuál es el valor decimal del número binario sin signo 101101?

  1. 45
  2. 43
  3. 53
  4. 46

El valor se obtiene sumando cada bit por su peso posicional: 32+8+4+1=45. (A. Tanenbaum, Structured Computer Organization, apéndice A)

7. El dígito hexadecimal 'B' se debe representar en binario dentro de un byte. ¿Cuál es la secuencia de 4 bits correspondiente?

  1. 1101
  2. 1010
  3. 1110
  4. 1011

Cada dígito hexadecimal equivale a un nibble de 4 bits (16=2^4); B equivale a 11 decimal, es decir 1011. (A. Tanenbaum, Structured Computer Organization, apéndice A)

8. Una computadora cuenta con un bus de direcciones de 24 líneas. ¿Cuántas localidades de memoria distintas puede direccionar como máximo?

  1. 33,554,432 (2^25)
  2. 16,777,216 (2^24)
  3. 16,777,215 (2^24 − 1)
  4. 8,388,608 (2^23)

Un bus de direcciones de n líneas direcciona 2^n localidades; con n=24, 2^24=16,777,216. El valor 2^24−1 es la dirección más alta, no el número de localidades. (W. Stallings, Organización y Arquitectura de Computadores, cap. Memoria)

9. Un programador migra una variable del formato IEEE 754 de precisión simple (float, 32 bits) al formato de precisión doble (double, 64 bits) para reducir el error de redondeo. ¿Cuántos bits adicionales de mantisa (fracción) gana la variable?

  1. 3 bits (de 8 a 11 bits)
  2. 20 bits (de 32 a 52 bits)
  3. 29 bits (de 23 a 52 bits)
  4. 32 bits (de 32 a 64 bits)

La mantisa pasa de 23 bits en precisión simple a 52 bits en precisión doble, una ganancia de 29 bits; las otras opciones confunden la mantisa con el campo de exponente (8 a 11) o con el tamaño total de la palabra (32 a 64). (IEEE Std 754-2019, formatos binary32 y binary64)

10. Un proceso que está esperando a que el sistema operativo le asigne la CPU, pero que cuenta con todos los recursos necesarios para ejecutarse en cuanto se le asigne, se encuentra en el estado:

  1. Listo (ready)
  2. Bloqueado (waiting)
  3. Nuevo (new)
  4. Terminado

El estado listo significa que el proceso tiene todos los recursos salvo la CPU y solo espera ser despachado; bloqueado implica esperar un evento o E/S, no solo la CPU. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Procesos)

11. Un proceso en ejecución solicita una operación de lectura de disco y debe esperar a que el controlador de E/S complete la transferencia antes de continuar. ¿A qué estado pasa el proceso inmediatamente después de realizar esta solicitud?

  1. Listo (ready)
  2. Nuevo (new)
  3. Terminado
  4. Bloqueado o en espera (waiting)

Al solicitar E/S y no poder continuar, el proceso pasa de ejecución a espera; solo regresará a listo cuando el evento de E/S concluya. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Procesos)

12. ¿Cuál de los siguientes elementos forma parte del bloque de control de proceso (PCB) que el sistema operativo mantiene para cada proceso?

  1. El texto fuente del programa antes de ser compilado
  2. El estado actual del proceso y el valor de su contador de programa
  3. La tabla de páginas global de todo el sistema operativo
  4. El historial completo de todos los procesos ya terminados

El PCB guarda datos de ejecución del proceso como su estado y contador de programa; el código fuente y las estructuras globales del sistema no forman parte de él. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Procesos)

13. En un sistema operativo moderno, ¿qué recurso comparten obligatoriamente todos los hilos (threads) que pertenecen a un mismo proceso?

  1. El conjunto de registros de cada hilo
  2. La pila (stack) de ejecución de cada hilo
  3. El espacio de direcciones de memoria del proceso
  4. El contador de programa de cada hilo

Los hilos de un mismo proceso comparten el espacio de direcciones, código y datos, pero cada uno mantiene su propia pila, contador de programa y registros. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Hilos)

14. Una aplicación crea varios hilos de nivel de usuario, pero el sistema operativo asigna la CPU únicamente al proceso completo, sin que el núcleo (kernel) tenga conocimiento individual de cada hilo. ¿Qué modelo de multihilo describe esta situación?

  1. Modelo muchos a uno (many-to-one)
  2. Modelo uno a uno (one-to-one)
  3. Modelo muchos a muchos (many-to-many)
  4. Modelo de hilos exclusivamente de kernel

En el modelo muchos a uno, varios hilos de usuario se mapean a un solo hilo de kernel, que es la unidad que realmente planifica la CPU. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Hilos)

15. Un desarrollador necesita que varias tareas concurrentes de un servidor compartan la misma memoria y se comuniquen con baja sobrecarga, y busca minimizar el costo del cambio de contexto entre ellas. ¿Qué alternativa de diseño es más adecuada?

  1. Ejecutar cada tarea como un proceso hijo creado mediante llamadas repetidas a fork sin compartir memoria
  2. Implementar cada tarea como un proceso independiente con su propio espacio de direcciones
  3. Ejecutar todas las tareas de manera secuencial dentro de un solo hilo
  4. Implementar las tareas como hilos (threads) dentro de un mismo proceso

Los hilos comparten memoria y su cambio de contexto es más económico que el de procesos completos con espacios de direcciones separados. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Hilos)

16. En un sistema con planificación por lotes, un proceso llega al sistema en el instante 2 (en milisegundos), tiene una ráfaga de CPU de 6 ms, y su ejecución concluye en el instante 10. ¿Cuáles son, respectivamente, su tiempo de retorno (turnaround) y su tiempo de espera?

  1. Retorno = 6 ms, Espera = 0 ms
  2. Retorno = 8 ms, Espera = 2 ms
  3. Retorno = 10 ms, Espera = 4 ms
  4. Retorno = 8 ms, Espera = 6 ms

Turnaround = fin - llegada = 10-2 = 8 ms; Espera = turnaround - ráfaga = 8-6 = 2 ms; usar el instante de fin directamente como turnaround es un error común. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Planificación de CPU)

17. ¿Cuál de los siguientes estados NO forma parte del modelo clásico de cinco estados de un proceso (nuevo, listo, en ejecución, en espera y terminado)?

  1. Nuevo (new)
  2. En espera (waiting)
  3. Listo suspendido (ready suspended)
  4. Terminado (terminated)

El modelo clásico define solo cinco estados; el estado 'listo suspendido' aparece únicamente en modelos extendidos que incorporan intercambio (swapping) a memoria secundaria. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Procesos)

18. ¿Cuáles son las cuatro condiciones necesarias que deben cumplirse simultáneamente para que ocurra un interbloqueo (deadlock), según el modelo clásico de Coffman?

  1. Exclusión mutua, retención y espera, no expropiación (no preemption) y espera circular
  2. Exclusión mutua, prioridad fija, apropiación de recursos y espera circular
  3. Retención y espera, expropiación de recursos, sincronización y exclusión mutua
  4. Espera circular, planificación FIFO, exclusión mutua y retención y espera

Las cuatro condiciones de Coffman son exactamente exclusión mutua, retención y espera, no expropiación y espera circular; las otras opciones sustituyen alguna condición por conceptos de planificación no relacionados. (E.G. Coffman, M. Elphick, A. Shoshani (1971), System Deadlocks; Silberschatz, cap. Interbloqueos)

19. Un proceso mantiene asignada una impresora que ya le fue otorgada y, al mismo tiempo, solicita un escáner adicional sin liberar la impresora mientras espera. ¿Cuál de las cuatro condiciones de interbloqueo ejemplifica directamente esta situación?

  1. Exclusión mutua (mutual exclusion)
  2. No expropiación (no preemption)
  3. Espera circular (circular wait)
  4. Retención y espera (hold and wait)

Mantener un recurso asignado mientras se solicita otro adicional es exactamente la condición de retención y espera. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Interbloqueos)

20. Los procesos P1, P2 y P3 forman una cadena en la que P1 posee un recurso que necesita P2, P2 posee un recurso que necesita P3, y P3 posee un recurso que necesita P1, cerrando así un ciclo de dependencias. ¿Qué condición de interbloqueo se manifiesta en este escenario?

  1. Exclusión mutua (mutual exclusion)
  2. Espera circular (circular wait)
  3. No expropiación (no preemption)
  4. Retención y espera (hold and wait)

Un ciclo de procesos donde cada uno espera un recurso retenido por el siguiente es la definición de espera circular. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Interbloqueos)

21. El algoritmo del banquero, propuesto por Dijkstra, se utiliza en los sistemas operativos principalmente para:

  1. Detectar interbloqueos ya ocurridos mediante un grafo de espera (wait-for graph)
  2. Recuperar el sistema de un interbloqueo terminando procesos de menor prioridad
  3. Evitar el interbloqueo concediendo recursos solo si el sistema permanece en estado seguro
  4. Prevenir el interbloqueo eliminando la condición de exclusión mutua en todos los recursos

El algoritmo del banquero es una técnica de evitación: antes de conceder cualquier solicitud verifica que el sistema permanezca en estado seguro; detección, recuperación y prevención son estrategias distintas. (E.W. Dijkstra (1965); Silberschatz, Galvin & Gagne, cap. Interbloqueos, sección Evitación)

22. En el contexto del algoritmo del banquero, se dice que un sistema se encuentra en un estado seguro cuando:

  1. Existe una secuencia de ejecución en la que cada proceso obtiene los recursos que le faltan y termina
  2. Todos los procesos tienen asignados simultáneamente el máximo de recursos que podrían llegar a solicitar
  3. No hay ningún recurso disponible libre en el sistema en ese instante
  4. Ningún proceso ha solicitado todavía recursos adicionales a los ya asignados

Un estado seguro exige que exista una secuencia segura en la que cada proceso pueda completar su ejecución con los recursos que eventualmente estarán disponibles; no implica máxima asignación ni ausencia de disponibilidad. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Interbloqueos, algoritmo del banquero)

23. En un sistema con un solo tipo de recurso, el proceso P1 tiene 2 unidades asignadas y una necesidad máxima de 5 unidades; en este momento el sistema tiene 1 unidad disponible. Si P1 solicita 2 unidades adicionales, ¿qué debe responder el algoritmo del banquero?

  1. Conceder la solicitud de inmediato, porque no excede la necesidad máxima restante de P1
  2. Conceder la solicitud y recalcular la necesidad máxima de P1 a 3 unidades
  3. Poner en espera únicamente a los demás procesos hasta que P1 libere recursos
  4. Hacer que P1 espere, porque la solicitud excede las unidades disponibles en el sistema

El algoritmo exige que la solicitud sea menor o igual a lo disponible antes de evaluar la seguridad; como 2 supera la 1 unidad disponible, P1 debe esperar aunque su necesidad restante (3) sí sería suficiente. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Interbloqueos, algoritmo del banquero)

24. Un sistema operativo decide asignar a cada proceso, antes de iniciarlo, todos los recursos que necesitará durante toda su ejecución, para que nunca tenga que solicitar recursos adicionales mientras retiene otros. ¿Qué estrategia frente al interbloqueo está aplicando?

  1. Evitación del interbloqueo, mediante el algoritmo del banquero
  2. Prevención del interbloqueo, al negar la condición de retención y espera
  3. Detección del interbloqueo, mediante un grafo de espera
  4. Recuperación del interbloqueo, mediante la expropiación de recursos

Asignar todos los recursos por adelantado elimina la posibilidad de retener unos mientras se solicitan otros, negando la condición de retención y espera; esto corresponde a prevención, no a evitación dinámica. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Interbloqueos, sección Prevención)

25. En sistemas que permiten que ocurra el interbloqueo y posteriormente lo detectan, ¿qué estructura se utiliza típicamente para identificar la existencia de un ciclo entre procesos y recursos?

  1. La tabla de páginas del proceso
  2. La cola de listos (ready queue) del planificador
  3. El grafo de asignación de recursos o grafo de espera (wait-for graph)
  4. El vector de disponibilidad de recursos del algoritmo del banquero

La detección de interbloqueos utiliza el grafo de asignación de recursos o el grafo de espera para localizar ciclos entre procesos; el vector de disponibilidad pertenece al algoritmo del banquero, usado para evitación, no detección. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Interbloqueos, sección Detección)

26. Una vez que el sistema operativo ha detectado un interbloqueo entre varios procesos, ¿cuál de las siguientes es una estrategia válida de recuperación?

  1. Terminar uno o varios de los procesos involucrados en el ciclo hasta romperlo
  2. Aumentar la prioridad de todos los procesos involucrados por igual
  3. Ejecutar nuevamente el algoritmo del banquero sobre los procesos ya bloqueados
  4. Ignorar el interbloqueo, ya que se resolverá automáticamente en el siguiente cambio de contexto

La recuperación típica consiste en terminar procesos del ciclo o expropiar recursos; el algoritmo del banquero es una herramienta de evitación previa a la asignación, no de recuperación posterior, y los interbloqueos no se resuelven solos. (Silberschatz, Galvin & Gagne, Fundamentos de Sistemas Operativos, cap. Interbloqueos, sección Recuperación)

27. En la jerarquía de memoria de una computadora, ordenada de mayor a menor velocidad de acceso, ¿cuál de los siguientes niveles ocupa el primer lugar, siendo el más rápido y de menor capacidad?

  1. Memoria caché de nivel 1 (L1)
  2. Registros del procesador
  3. Memoria principal (RAM)
  4. Memoria secundaria (disco o SSD)

Los registros del procesador están integrados en el propio núcleo y ofrecen el acceso más rápido de toda la jerarquía, aunque con capacidad mínima; la caché L1 es el siguiente nivel, más lento que los registros pero más rápido que la RAM. (Hennessy & Patterson, 'Computer Architecture: A Quantitative Approach', cap. Jerarquía de memoria)

28. Un sistema de memoria caché tiene un tiempo de acierto (hit time) de 2 ns, una tasa de fallos (miss rate) de 5% y una penalización por fallo (miss penalty) de 40 ns. Con la fórmula AMAT = tiempo de acierto + tasa de fallos × penalización por fallo, calcule el tiempo promedio de acceso a memoria.

  1. 4 ns
  2. 42 ns
  3. 40 ns
  4. 2 ns

AMAT = 2 ns + (0.05 × 40 ns) = 2 + 2 = 4 ns; 42 ns resulta de sumar sin ponderar la penalización por la tasa de fallos, y 40 ns de usar por error la tasa de aciertos (95%) en vez de la de fallos. (Hennessy & Patterson, 'Computer Architecture: A Quantitative Approach', fórmula AMAT = Hit time + Miss rate × Miss penalty)

29. Según la clasificación clásica de fallos de caché en fallos forzosos (de arranque), de capacidad y de conflicto, un fallo de conflicto ocurre cuando:

  1. El bloque solicitado fue invalidado por una operación de escritura reciente en memoria principal
  2. La caché carece de capacidad suficiente para contener todos los bloques que el programa necesita durante su ejecución
  3. Dos bloques de memoria distintos compiten por el mismo conjunto de la caché y se desalojan mutuamente, aunque la caché no esté llena
  4. Un bloque se solicita por primera vez y nunca había sido cargado previamente en la caché

El fallo de conflicto se debe a las restricciones del mapeo (no a la capacidad total ni a la primera referencia), cuando bloques distintos mapean al mismo conjunto y se desplazan entre sí aunque haya espacio libre en otros conjuntos. (Hennessy & Patterson, 'Computer Architecture: A Quantitative Approach', modelo de los tres tipos de fallos de caché)

30. En una caché de mapeo directo (direct-mapped), cada bloque de memoria principal puede almacenarse en:

  1. Una única línea específica de la caché, determinada por los bits de índice de la dirección
  2. Cualquier línea disponible de la caché, sin restricción alguna
  3. Un conjunto de dos líneas específicas, entre las cuales se elige mediante un algoritmo de reemplazo
  4. Un conjunto de cuatro líneas específicas, determinado por los bits de la etiqueta (tag)

En el mapeo directo, los bits de índice de la dirección determinan una sola línea posible para cada bloque; la opción de 'cualquier línea' describe la caché totalmente asociativa y las de conjuntos de 2 o 4 líneas describen cachés de conjuntos asociativos. (A. Tanenbaum, 'Structured Computer Organization', cap. Organización de la memoria caché)

31. Un ingeniero diseña la caché de un procesador para una aplicación con alta frecuencia de escrituras en memoria. Su prioridad es minimizar el tráfico hacia la memoria principal, aun a costa de mayor complejidad para mantener la coherencia de los datos. ¿Qué política de escritura debe elegir?

  1. Escritura inmediata (write-through), que actualiza la memoria principal en cada operación de escritura
  2. Escritura sin asignación (no-write-allocate), que omite la caché y escribe siempre en memoria principal
  3. Escritura diferida (write-back), que actualiza la memoria principal solo cuando el bloque modificado se reemplaza
  4. Acceso directo a memoria en cada ciclo, evitando el uso de la caché para las escrituras

La escritura diferida (write-back) acumula las modificaciones en la caché y solo las propaga a memoria principal al desalojar el bloque, reduciendo el tráfico de escritura frente al write-through, que actualiza memoria en cada operación. (Hennessy & Patterson, 'Computer Architecture: A Quantitative Approach', políticas de escritura en caché)

32. Comparada con la memoria caché de nivel 2 (L2), la caché de nivel 1 (L1) se caracteriza por:

  1. Sustituir por completo la necesidad de una memoria principal (RAM) en el sistema
  2. Tener menor capacidad y tiempo de acceso más rápido, al estar integrada más cerca del núcleo del procesador
  3. Compartir siempre su contenido con todos los núcleos del procesador en sistemas multinúcleo
  4. Tener mayor capacidad y tiempo de acceso más lento, al ubicarse fuera del procesador

L1 está más próxima al núcleo, por lo que es más pequeña pero más veloz que L2; la relación descrita en otra opción (mayor capacidad y más lenta) corresponde precisamente a L2 respecto de L1. (W. Stallings, 'Organización y Arquitectura de Computadores', jerarquía de caché multinivel)

33. Un procesador tiene una caché L1 con tiempo de acierto de 1 ns y tasa de fallos de 10%. Los fallos de L1 pasan a una caché L2 con tiempo de acierto de 8 ns y tasa de fallos de 20% (respecto a los accesos que llegan a L2), cuya penalización por fallo hacia memoria principal es de 100 ns. Calcule el tiempo promedio de acceso a memoria (AMAT) total del sistema.

  1. 28 ns
  2. 9 ns
  3. 3.8 ns
  4. 26.2 ns

AMAT(L2) = 8 + 0.20×100 = 28 ns; AMAT total = 1 + 0.10×28 = 3.8 ns. El valor 28 ns omite ponderar el resultado de L2 por la tasa de fallos de L1, y 26.2 ns surge de usar por error la tasa de aciertos de L1 (90%) en vez de la de fallos. (Hennessy & Patterson, 'Computer Architecture: A Quantitative Approach', AMAT en jerarquías de memoria multinivel)

34. ¿Cuál de las siguientes afirmaciones sobre la memoria caché NO es correcta?

  1. Ofrece tiempos de acceso más rápidos que la memoria principal
  2. Es administrada explícitamente por el programador mediante instrucciones de la aplicación
  3. Aprovecha el principio de localidad de referencia para mejorar el rendimiento
  4. Tiene menor capacidad que la memoria principal

La caché es gestionada de manera transparente por el hardware, no mediante instrucciones explícitas del programador; las otras tres afirmaciones sí describen correctamente a la memoria caché. (W. Stallings, 'Organización y Arquitectura de Computadores', principios de la memoria caché)

35. Un programa recorre repetidamente un arreglo cuyo tamaño excede la capacidad total de la caché. Aunque el programa reutiliza los mismos datos en iteraciones sucesivas y no existe competencia entre bloques por el mismo conjunto de la caché, se observa un alto número de fallos. ¿A qué tipo de fallo de caché corresponde esta situación?

  1. Fallo de capacidad
  2. Fallo forzoso (de arranque)
  3. Fallo de conflicto
  4. Fallo de coherencia

Cuando el conjunto de datos activo (working set) excede la capacidad total de la caché, se producen fallos de capacidad independientemente del mapeo de bloques; esto se distingue del fallo de conflicto, que ocurre por restricciones de mapeo aun con espacio disponible. (Hennessy & Patterson, 'Computer Architecture: A Quantitative Approach', modelo de los tres tipos de fallos de caché)

Comienza gratis