Interrupción para niños
Una interrupción es como una señal de "¡Alto!" que recibe el cerebro de tu computadora, el procesador. Esta señal le dice que debe dejar lo que está haciendo por un momento para atender algo importante.
Imagina que el procesador está muy ocupado haciendo una tarea. De repente, presionas una tecla en el teclado o mueves el ratón. Estos dispositivos envían una señal al procesador para avisarle que necesitan su atención. Esa señal es una interrupción.
Cuando el procesador recibe una interrupción, pausa su tarea actual y ejecuta un pequeño programa especial para atender lo que el dispositivo necesita. Una vez que termina de ayudar al dispositivo, el procesador vuelve a su tarea original, justo donde la dejó.
Antes de que existieran las interrupciones, el procesador tenía que revisar constantemente todos los dispositivos para ver si alguno necesitaba algo. Esto se llamaba polling y era muy ineficiente, ¡como si tuvieras que preguntar a cada amigo si necesita algo cada cinco segundos! Las interrupciones solucionaron esto, permitiendo que los dispositivos avisen al procesador solo cuando es necesario.
Contenido
¿Cómo funcionan las interrupciones?
Para que un dispositivo pueda avisar al procesador, necesita una línea especial de comunicación. Piensa en ella como un timbre único para cada dispositivo. Esta línea se llama IRQ (del inglés "Interrupt Request", que significa "petición de interrupción").
Todas estas líneas IRQ llegan a un componente llamado controlador de interrupciones. Este controlador es como un recepcionista que organiza todas las peticiones. Si varios dispositivos envían una señal al mismo tiempo, el controlador decide cuál es la más importante y se la pasa al procesador primero. Algunas interrupciones son tan importantes que no se pueden ignorar, se llaman interrupciones no enmascarables.
Cuando el controlador de interrupciones le avisa al procesador que hay una interrupción, el procesador busca en una lista especial (llamada tabla de vectores de interrupción) para saber qué programa especial debe ejecutar para atender a ese dispositivo.
Pasos de una interrupción
Cuando ocurre una interrupción, el procesador sigue estos pasos:
- Termina la instrucción que estaba ejecutando en ese momento.
- Guarda toda la información importante sobre lo que estaba haciendo (como los valores de sus "apuntes" o registros) en un lugar seguro llamado la pila. Esto es para que pueda recordar dónde se quedó.
- El procesador salta a la dirección donde está el programa especial para atender la interrupción (llamado "Rutina de Servicio de Interrupción" o ISR) y lo ejecuta.
- Una vez que el programa especial termina, el procesador recupera la información que guardó en la pila y vuelve a la tarea que estaba haciendo antes, como si nada hubiera pasado.
Líneas de interrupción en las computadoras
Las computadoras tienen líneas especiales en su placa base para manejar las interrupciones. Las computadoras antiguas, como las primeras IBM PC, tenían 8 líneas IRQ, numeradas del 0 al 7. Con el tiempo, se añadieron más, llegando a 16 líneas (del 0 al 15) en modelos posteriores.
Algunas de estas líneas IRQ tienen usos fijos. Por ejemplo, la IRQ0 suele estar asignada al temporizador del sistema (el reloj interno de la computadora) y la IRQ1 al teclado. Otras líneas se usan para dispositivos como el ratón, los discos duros o las impresoras.
Al principio, para asignar una IRQ a un dispositivo, se usaban pequeños interruptores o "jumpers" en la placa. Hoy en día, esto se hace de forma automática o con programas especiales.
Nombre | Descripción común |
---|---|
NMI | Para errores muy importantes, como problemas de memoria. |
IRQ0 | Reloj interno de la computadora. |
IRQ1 | Teclado. |
IRQ2 | Conecta a otras interrupciones (del 8 al 15). |
IRQ3 | Puertos de comunicación (COM2/COM4). |
IRQ4 | Puertos de comunicación (COM1/COM3). |
IRQ5 | Puerto para impresoras (LPT2) o discos duros antiguos. |
IRQ6 | Disquetera. |
IRQ7 | Puerto para impresoras (LPT1). |
IRQ8 | Reloj de tiempo real (para la fecha y hora). |
IRQ9 | Redirigido a IRQ2. |
IRQ10 | Generalmente libre. |
IRQ11 | Generalmente libre. |
IRQ12 | Ratón (PS/2). |
IRQ13 | Coprocesador (ayuda al procesador con cálculos). |
IRQ14 | Controlador de disco principal (IDE). |
IRQ15 | Controlador de disco secundario (IDE). |
Tipos de interrupciones
Las interrupciones se pueden clasificar según quién las produce:
- Interrupciones de hardware: Son las que vienen de los dispositivos externos de la computadora, como el teclado, el ratón o el disco duro. Ocurren en cualquier momento, sin importar lo que el procesador esté haciendo. Por ejemplo, cuando el disco duro termina de leer un archivo, envía una interrupción para avisar al procesador. Esto permite que el procesador haga otras cosas mientras espera.
- Excepciones: Son interrupciones que ocurren cuando un programa intenta hacer algo que no está permitido o que causa un error. Por ejemplo, si un programa intenta dividir un número entre cero o acceder a una parte de la memoria que no le corresponde. La computadora las usa para protegerse y evitar que los programas dañen la información. Si no se pueden solucionar, el programa se detiene.
- Interrupciones por software: Son interrupciones que un programa genera a propósito. Un programa puede usar estas interrupciones para pedirle ayuda al sistema operativo para realizar tareas especiales, como abrir un archivo o mostrar algo en la pantalla. Es como si el programa dijera: "¡Necesito que el sistema operativo haga esto por mí!".
¿Cómo se sabe qué interrupción es?
Para que el procesador sepa qué dispositivo envió la interrupción, hay varias formas:
- Revisión (Polling): El procesador revisa uno por uno todos los dispositivos para ver cuál fue el que envió la señal. Es como preguntar a cada persona en una fila si te llamó. Es sencillo, pero puede ser lento si hay muchos dispositivos.
- Interrupciones vectorizadas: Cada interrupción tiene un número especial. Cuando un dispositivo envía una interrupción, también envía este número. El procesador usa ese número para encontrar rápidamente el programa especial que necesita ejecutar para ese dispositivo. Es como si cada persona que te llama te diera su número de teléfono para que sepas quién es.
Sistemas de prioridad
A veces, varias interrupciones ocurren al mismo tiempo. El sistema operativo necesita decidir cuál es la más urgente. Para esto, existen sistemas de prioridad:
- Interrupciones simultáneas: Si varias interrupciones llegan a la vez, el controlador de interrupciones decide cuál tiene mayor prioridad y se la pasa primero al procesador.
- Interrupciones anidadas: Puede que el procesador esté atendiendo una interrupción y, de repente, llegue otra más importante. En ese caso, el procesador puede pausar la primera interrupción para atender la más urgente y luego volver a la primera.
- Inhibición de interrupciones: A veces, el procesador necesita concentrarse en una tarea muy importante y no quiere ser interrumpido. Puede "desactivar" temporalmente otras interrupciones para asegurarse de que su tarea se complete sin interrupciones. Sin embargo, no es bueno hacer esto por mucho tiempo, ya que podría causar problemas.
Galería de imágenes
Véase también
En inglés: Interrupt Facts for Kids
- Llamada de interrupción del BIOS