Las interrupciones son uno de los mecanismos más importantes en la arquitectura de los sistemas de cómputo, ya que permiten que el procesador gestione eventos internos o externos de manera eficiente, evitando que el CPU esté constantemente verificando si ocurren ciertas condiciones (técnica llamada polling). Gracias a las interrupciones, los sistemas pueden trabajar en tiempo real, responder rápidamente a sucesos inesperados y optimizar el uso de los recursos.
Una interrupción es una señal que se envía al procesador para indicarle que debe detener temporalmente la ejecución de su tarea actual y atender un evento específico.
Cuando ocurre:
El CPU guarda su estado actual (contexto de ejecución).
Se transfiere el control a una rutina especial llamada manejador de interrupción o ISR (Interrupt Service Routine).
Una vez atendida la interrupción, el procesador restaura su estado y continúa con el programa original.
De esta forma, el procesador puede responder rápidamente a sucesos imprevistos, como la llegada de datos desde un dispositivo de entrada o la finalización de una operación en memoria.
Eficiencia: El CPU no pierde tiempo consultando continuamente dispositivos periféricos.
Tiempo de respuesta: Permite reaccionar de inmediato a eventos importantes.
Paralelismo lógico: Da la impresión de que el sistema atiende múltiples tareas a la vez.
Flexibilidad: Facilita la comunicación entre hardware y software.
Soporte al sistema operativo: Las interrupciones son la base de la multitarea y del control de recursos.
Las interrupciones se pueden clasificar según su origen, prioridad y manejo.
Interrupciones de hardware:
Generadas por dispositivos externos al procesador. Ejemplos:
Teclado (cuando se presiona una tecla).
Ratón (movimiento o clic).
Disco duro (cuando termina de leer/escribir).
Temporizador (para mantener el reloj del sistema).
Interrupciones de software:
Generadas por instrucciones del propio programa en ejecución. Ejemplos:
Llamadas al sistema operativo (system calls).
Excepciones como división por cero o instrucción inválida.
Máscaras (maskable): El CPU puede habilitarlas o deshabilitarlas según convenga.
No enmascarables (NMI – Non Maskable Interrupt): No pueden ignorarse, ya que indican fallos graves como errores de hardware o pérdida de energía.
Alta prioridad: Eventos críticos como fallos de memoria o temporizadores de hardware.
Baja prioridad: Señales menos urgentes, como una entrada de teclado.
El procedimiento típico para manejar una interrupción incluye:
Detección: El hardware o software genera la señal de interrupción.
Reconocimiento: El procesador identifica la fuente de la interrupción.
Salvaguarda del contexto: Se guarda el estado del CPU (registros, contador de programa).
Ejecución del ISR: Se ejecuta la rutina de servicio correspondiente.
Restauración: Se restaura el contexto del procesador.
6.Reanudación: El CPU vuelve a la tarea interrumpida como si nada hubiera pasado.
En arquitecturas modernas como x86, ARM o RISC-V, las interrupciones han evolucionado:
Se emplean vectores de interrupción: direcciones predefinidas en memoria donde están las rutinas de servicio.
Se usan controladores de interrupciones programables (PIC / APIC / GIC) para manejar múltiples señales simultáneamente.
Se integran con técnicas de virtualización y multinúcleo, distribuyendo las interrupciones entre procesadores.
Soportan interrupciones anidadas, donde una interrupción de mayor prioridad puede interrumpir a otra que ya estaba siendo atendida.
Teclado: Cada tecla presionada envía una señal al procesador.
Reloj del sistema: Genera interrupciones periódicas para mantener actualizado el tiempo y coordinar la multitarea.
Dispositivos de E/S: Notifican la finalización de operaciones de lectura/escritura.
Errores de hardware: Problemas en memoria o fallos eléctricos.
Excepciones del software: División por cero, desbordamientos, acceso indebido a memoria.
Las interrupciones son esenciales porque:
Hacen posible la interactividad en sistemas informáticos.
Son la base del tiempo compartido y la multitarea.
Mejoran la eficiencia y el rendimiento del CPU.
Permiten que los sistemas trabajen en tiempo real.
El sistema operativo (SO) es el principal encargado de administrar interrupciones:
Define qué rutina atenderá cada interrupción (tabla de vectores de interrupción).
Establece prioridades entre múltiples interrupciones.
Permite la multitarea, asignando tiempo de CPU a varios procesos.
Proporciona mecanismos de seguridad para evitar que programas maliciosos usen interrupciones de forma indebida.