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).
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?
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?
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?
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?
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?
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?
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?
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?
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?
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:
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?
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?
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?
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?
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?
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?
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)?
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?
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?
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?
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:
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:
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?
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?
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?
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?
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?
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.
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:
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:
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?
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:
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.
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?
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?
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é)