La entrada/salida (E/S) controlada por interrupción es un mecanismo en el que el dispositivo de E/S indica a la CPU cuando tiene datos o está listo para recibir datos, en lugar de que la CPU verifique constantemente el estado del dispositivo de E/S.
De esta manera, la CPU puede continuar ejecutando instrucciones mientras se produce la transferencia de E/S, lo que reduce significativamente los tiempos de espera y aumenta la eficiencia general del sistema.
Cómo funciona:
- El dispositivo de E/S funciona independientemente de la CPU y mantiene un búfer para almacenar datos.
- Cuando el búfer se llena (para entrada) o se vacía (para salida), el dispositivo genera una señal de interrupción a la CPU.
- Al recibir la interrupción, la CPU pausa temporalmente su ejecución actual y la rutina de servicio de interrupción (ISR) correspondiente maneja la transferencia de datos hacia/desde el búfer de E/S.
- Una vez completada la transferencia de datos, el ISR devuelve el control al programa principal y la CPU reanuda su tarea anterior.
2. Entrada/Salida programada
La entrada/salida programada es un mecanismo de E/S más simple en el que la CPU asume un papel proactivo en la gestión de las transferencias de datos con los dispositivos de E/S. Sondea continuamente el dispositivo de E/S a intervalos predefinidos para comprobar si está listo para intercambiar datos.
Cómo funciona:
- La CPU verifica periódicamente un registro de estado del dispositivo de E/S para determinar si está listo para enviar o recibir datos.
- Si el dispositivo está listo, la CPU inicia la transferencia enviando o recibiendo datos desde el puerto de E/S o la dirección asignada en memoria.
- La CPU repite continuamente este proceso hasta que se hayan transferido todos los datos necesarios.
En términos de eficiencia, las E/S controladas por interrupciones generalmente se prefieren a las E/S programadas porque permiten una mejor utilización de la CPU al eliminar el sondeo repetido e innecesario del dispositivo de E/S. Sin embargo, la E/S programada es más sencilla de implementar y podría ser adecuada para aplicaciones en las que el tiempo es menos crítico.