El segundo mecanismo de gestión de E/S es la gestión mediante interrupciones. En este caso no existe ningún tipo de bucle de espera. Es el periférico el que avisa al procesador cuándo está listo para la transferencia. Este aviso se realiza activando la línea de petición de interrupción.
Cuando el procesador recibe esta señal de petición salta a ejecutar una Rutina de Tratamiento de Interrupción (RTI). Esta rutina se encarga de atender al periférico que interrumpió y de realizar la operación de E/S. La secuencia típica de eventos que se produce en el tratamiento de una interrupción es la siguiente:
Cuando el procesador recibe esta señal de petición salta a ejecutar una Rutina de Tratamiento de Interrupción (RTI). Esta rutina se encarga de atender al periférico que interrumpió y de realizar la operación de E/S. La secuencia típica de eventos que se produce en el tratamiento de una interrupción es la siguiente:
- Un periférico activa la línea de petición de interrupción (IRQ).
- Cuando el procesador termina de ejecutar la instrucción en curso (de momento supondremos un procesador sin segmentar), comprueba si tiene alguna petición de interrupción pendiente.
- Se guarda el contexto en la pila de ejecución, se descapacitan las interrupciones y salta a la RTI.
- El procesador ejecuta la RTI durante la cual se realiza la operación de E/S con el periférico.
- El procesador vuelve a capacitar las interrupciones, restaura el contexto y retorna al programa que estaba ejecutando antes de pasar a atender a la interrupción.
- Se continúa con la ejecución normal del programa.
Este es el mecanismo tradicional que se utiliza con el teclado, el ratón y otro tipo de dispositivos que realizan operaciones de E/S frecuentemente pero que implican la transferencia de poca información.
ss
No hay comentarios:
Publicar un comentario