Hardware: ciclo, interrupciones y memoria
Este capítulo trata del hardware que el SO administra, no del SO. Todo lo que viene después se apoya aquí: el cambio de contexto guarda lo que guarda una interrupción, la memoria virtual es una jerarquía de dos niveles y los spinlocks existen porque hay varios núcleos.
Los 4 elementos de un computador
Sección titulada «Los 4 elementos de un computador»| Elemento | Qué hace |
|---|---|
| Procesador (CPU) | Controla el computador y procesa datos |
| Memoria principal | Guarda datos y programas. Es volátil; también se llama real o primaria |
| Módulos de E/S | Mueven datos entre el computador y el exterior (discos, red, terminales) |
| Bus del sistema | Comunica procesador, memoria y E/S |
Registros clave del procesador:
- PC (Program Counter): dirección de la siguiente instrucción.
- IR (Instruction Register): instrucción en ejecución.
- MAR / MBR (Memory Address / Buffer Register): dirección y dato de la próxima lectura o escritura en memoria. I/O AR / I/O BR son su equivalente para E/S.
- PSW (Program Status Word): códigos de condición, bit de habilitar/deshabilitar interrupciones y bit de modo usuario/kernel.
Ciclo de instrucción
Sección titulada «Ciclo de instrucción»- Fetch: el procesador lee la instrucción apuntada por el PC, y el PC se incrementa (salvo que sea un salto).
- Execute: ejecuta la instrucción, que es de alguno de estos tipos:
- processor–memory: mover datos entre la CPU y la memoria;
- processor–I/O: mover datos entre la CPU y un módulo de E/S;
- data processing: operación aritmética o lógica;
- control: salto o branch.
- Interrupt (etapa añadida): si hay una interrupción pendiente y están habilitadas, se salta al handler.
Ejemplo del libro: una máquina de 16 bits con acumulador (4 bits de opcode, lo que da 16 operaciones, y 12 bits de dirección, lo que da 4096 palabras). Sumar las direcciones 940 y 941 cuesta 3 ciclos: Load AC, Add y Store AC.
Interrupciones
Sección titulada «Interrupciones»¿Por qué existen? La E/S es millones de veces más lenta que la CPU. Sin interrupciones, la CPU se queda sondeando (polling) hasta que la E/S termine. Con interrupciones, lanza la E/S, sigue trabajando y el dispositivo le avisa al terminar, así que la E/S se solapa con el cómputo.
| Clase | Origen | Ejemplo |
|---|---|---|
| Program | la ejecución de una instrucción | overflow, división por cero, instrucción ilegal, acceso fuera de la memoria permitida |
| Timer | reloj interno | le permite al SO recuperar el control periódicamente (base del time slicing) |
| I/O | controlador de E/S | la operación terminó, o hubo un error |
| Hardware failure | falla física | corte de energía, error de paridad de memoria |
Secuencia completa (fig. 1.10)
Sección titulada «Secuencia completa (fig. 1.10)»Hardware:
- El dispositivo levanta la señal de interrupción.
- La CPU termina la instrucción actual; nunca interrumpe a media instrucción.
- Detecta la interrupción y envía un acknowledge al dispositivo.
- Guarda lo mínimo en la pila de control: el PSW y el PC.
- Carga el PC con la dirección del interrupt handler.
Software (el handler, que es parte del SO):
- Guarda el resto de los registros, porque los va a usar.
- Procesa la interrupción.
- Restaura los registros.
- Restaura el PSW y el PC, y el programa interrumpido continúa como si nada hubiera pasado.
Interrupciones múltiples
Sección titulada «Interrupciones múltiples»- Deshabilitarlas durante una ISR: procesamiento secuencial estricto. Es simple, pero ignora la urgencia y se pueden perder datos si un buffer se llena.
- Prioridades: una interrupción de mayor prioridad anida sobre una ISR de menor prioridad.
Interrupciones múltiples (Stallings fig. 1.12–1.13)
Impresora (prioridad 2) en t = 10, comunicaciones (5) en t = 15 y disco (4) en t = 20; cada ISR dura 10. Compara las dos políticas.
Jerarquía de memoria
Sección titulada «Jerarquía de memoria»¿Cuánta memoria, qué tan rápida, qué tan cara? Hay un triple compromiso: más velocidad implica más costo por bit; más capacidad implica menos costo por bit, pero más lentitud.
Registros → caché → memoria principal → disco (outboard) → cinta (off-line). Al bajar en la jerarquía: (a) baja el costo por bit, (b) sube la capacidad, (c) sube el tiempo de acceso y (d) baja la frecuencia de acceso de la CPU. El punto (d) es el que hace funcionar todo, y se logra gracias a la localidad de referencia (Denning 1968): las referencias se agrupan en bucles, subrutinas y arreglos.
- Localidad temporal: lo que usé hace poco lo volveré a usar pronto.
- Localidad espacial: usaré lo que está al lado de lo que acabo de usar.
Hit ratio y tiempo medio de acceso
. Con localidad fuerte, H es alto y el sistema se comporta casi como si toda la memoria fuera rápida.
Costo medio combinado: . Se quiere (el costo del nivel barato), así que . Una eficiencia aceptable () necesita H ≈ 0.8–0.9. Sin localidad, H sería proporcional al tamaño relativo: si M₁ es la mitad de M₂, H = 0.5.
- Es una copia pequeña y rápida de una porción de la memoria principal. En un miss se trae un bloque completo (localidad espacial). Hay varios niveles: L1 (por núcleo), L2 y L3 (compartida).
- La memoria tiene bloques de K palabras; la caché tiene C líneas (slots) con . Cada línea tiene un tag que dice qué bloque contiene.
- Diseño: tamaño de la caché, tamaño de bloque (mayor ayuda hasta cierto punto y luego perjudica), función de mapeo, reemplazo (LRU), política de escritura (write-through o write-back; esta última deja la RAM desactualizada, lo que complica el multiprocesador y el DMA) y número de niveles.
- Coherencia de caché: con varias CPUs, escribir en una caché invalida las copias de las otras. Se resuelve en hardware (MESI). Por eso existe el false sharing.
Tres técnicas de E/S
Sección titulada «Tres técnicas de E/S»| Técnica | ¿Quién mueve cada palabra? | ¿La CPU espera? |
|---|---|---|
| Programmed I/O | la CPU | Sí: hace polling del estado |
| Interrupt-driven I/O | la CPU (una interrupción por palabra o bloque) | No, pero sigue ejecutando instrucciones por cada transferencia |
| DMA | el módulo DMA, directo entre dispositivo y memoria | No: solo recibe una interrupción al final |
Para el DMA, la CPU le indica: lectura o escritura, la dirección del dispositivo, la dirección inicial en memoria y el número de palabras. Cuando el DMA usa el bus, la CPU solo pausa un ciclo de bus (cycle stealing); no es una interrupción y no se guarda contexto.
Multiprocesador y multicore
Sección titulada «Multiprocesador y multicore»SMP (Symmetric Multiprocessor):
- Dos o más procesadores similares.
- Comparten memoria y E/S, con tiempo de acceso ≈ igual para todos.
- Todos acceden a los dispositivos de E/S.
- Todos pueden hacer las mismas funciones (de ahí simétrico).
- Un solo SO integrado los controla.
Sus beneficios potenciales (no automáticos: el SO debe explotarlos) son rendimiento, disponibilidad (si cae una CPU, el sistema sigue más lento), crecimiento incremental y escalado de la línea de productos.
Multicore (chip multiprocessor): varios núcleos en un mismo die, cada uno con sus registros, ALU y L1, y cachés L2/L3 compartidas. Surge porque ya no rendía seguir complicando un solo núcleo. Ejemplo: Intel Core i7-5960X, con prefetching, controlador DDR4 integrado y PCIe.
Autoevaluación
0/6 correctas · 0 respondidasFuente ·Stallings, Operating Systems 9e, cap. 1 (lab2/Stallings.pdf) · lab 1/Resumenes/Stallings/Stallings-Cap1-Computer-System-Overview.md