La interrupción es una señal emitida por el hardware o el software cuando un proceso o un evento necesita atención inmediata. Alerta al procesador de un proceso de alta prioridad que requiere la interrupción del proceso de trabajo actual. En los dispositivos de E/S, una de las líneas de control del bus está dedicada a este propósito y se llama Interrupt Service Routine (ISR).
Cuando un dispositivo lanza una interrupción en digamos el proceso i, el procesador primero completa la ejecución de la instrucción i. Luego carga el Contador de Programa (PC) con la dirección de la primera instrucción de la ISR. Antes de cargar el Contador de Programa con la dirección, la dirección de la instrucción interrumpida se mueve a una ubicación temporal. Por lo tanto, después de manejar la interrupción el procesador puede continuar con el proceso i+1.
Mientras el procesador maneja las interrupciones, debe informar al dispositivo que su petición ha sido reconocida para que deje de enviar la señal de petición de interrupción. Además, al guardar los registros para que el proceso interrumpido pueda ser restaurado en el futuro, aumenta el retardo entre el momento en que se recibe una interrupción y el inicio de la ejecución de la ISR. Esto se denomina Latencia de Interrupción.
Interrupciones por hardware:
En una interrupción por hardware, todos los dispositivos están conectados a la Línea de Solicitud de Interrupción. Se utiliza una única línea de solicitud para todos los n dispositivos. Para solicitar una interrupción, un dispositivo cierra su interruptor asociado. Cuando un dispositivo solicita una interrupción, el valor de INTR es el OR lógico de las peticiones de los dispositivos individuales.
Secuencia de eventos involucrados en el manejo de una IRQ:
- Los dispositivos levantan una IRQ.
- El procesador interrumpe el programa que se está ejecutando en ese momento.
- Se informa al dispositivo que su petición ha sido reconocida y el dispositivo desactiva la señal de petición.
- Se realiza la acción solicitada.
- Se habilita la interrupción y se reanuda el programa interrumpido.
Manejo de varios dispositivos:
Cuando más de un dispositivo emite una señal de solicitud de interrupción, se necesita información adicional para decidir qué dispositivo se debe considerar primero. Los siguientes métodos se utilizan para decidir qué dispositivo seleccionar: Sondeo, Interrupciones Vectorizadas y Anidamiento de Interrupciones. Se explican a continuación.
- Polling:
En el polling, el primer dispositivo que se encuentre con el bit IRQ activado es el que se va a atender primero. Se llama al ISR apropiado para dar servicio al mismo. Es fácil de implementar pero se pierde mucho tiempo interrogando el bit IRQ de todos los dispositivos. - Interrupciones vectoriales:
En las interrupciones vectoriales, un dispositivo que solicita una interrupción se identifica directamente enviando un código especial al procesador a través del bus. Esto permite al procesador identificar el dispositivo que ha generado la interrupción. El código especial puede ser la dirección de inicio del ISR o el lugar donde se encuentra el ISR en la memoria, y se denomina vector de interrupción. - Anidamiento de interrupciones:
En este método, el dispositivo de E/S se organiza en una estructura de prioridades. Por lo tanto, la solicitud de interrupción de un dispositivo de mayor prioridad se reconoce mientras que la solicitud de un dispositivo de menor prioridad no se reconoce. Para implementar esto cada proceso/dispositivo (incluso el procesador). El procesador acepta las interrupciones sólo de los dispositivos/procesos que tienen prioridad más que él.
La prioridad de los procesadores está codificada en unos pocos bits de PS (Process Status register). Puede ser cambiado por instrucciones de programa que escriben en el PS. El procesador está en modo supervisado sólo mientras se ejecutan las rutinas del SO. Cambia a modo usuario antes de ejecutar programas de aplicación.
¡Atención lector! No deje de aprender ahora. Hazte con todos los conceptos importantes de la Teoría del CS para las entrevistas de SDE con el Curso de Teoría del CS a un precio asequible para el estudiante y prepárate para la industria.