Interrumpir vs Excepción
En cualquier computadora, durante la ejecución normal de un programa, puede haber eventos que pueden hacer que la CPU se detenga temporalmente. Eventos como este se llaman interrupciones. Las interrupciones pueden ser causadas por fallas de software o hardware. Las interrupciones de hardware se denominan (simplemente) Interrupciones, mientras que las interrupciones de software se denominan Excepciones. Una vez que se levanta una interrupción (software o hardware), el control se transfiere a una subrutina especial llamada ISR (Rutina de servicio de interrupción) que puede manejar las condiciones que genera la interrupción.
Que es la interrupcion?
El término Interrupción generalmente se reserva para interrupciones de hardware. Son interrupciones del control del programa causadas por eventos de hardware externos. Aquí, los medios externos son externos a la CPU. Las interrupciones de hardware generalmente provienen de muchas fuentes diferentes, como un chip temporizador, dispositivos periféricos (teclados, mouse, etc.), puertos de E / S (serie, paralelo, etc.), unidades de disco, reloj CMOS, tarjetas de expansión (tarjeta de sonido, video tarjeta, etc). Eso significa que las interrupciones de hardware casi nunca ocurren debido a algún evento relacionado con el programa en ejecución. Por ejemplo, un evento como la pulsación de una tecla en el teclado por parte del usuario, o el tiempo de espera de un temporizador de hardware interno puede provocar este tipo de interrupción e informar a la CPU que un determinado dispositivo necesita algo de atención. En una situación como esa, la CPU dejará de hacer lo que estaba haciendo (es decir, detiene el programa actual), proporciona el servicio requerido por el dispositivo y regresará al programa normal. Cuando se producen interrupciones de hardware y la CPU inicia el ISR, otras interrupciones de hardware se desactivan (por ejemplo, en máquinas de 80 × 86). Si necesita que se produzcan otras interrupciones de hardware mientras se está ejecutando el ISR, debe hacerlo explícitamente borrando el indicador de interrupción (con la instrucción sti). En máquinas de 80 × 86, borrar el indicador de interrupción solo afectará las interrupciones de hardware.
Que es Excepciones?
La excepción es una interrupción de software, que se puede identificar como una rutina de manejador especial. La excepción se puede identificar como una trampa que ocurre automáticamente (una trampa se puede identificar como una transferencia de control, que es iniciada por el programador). En general, no hay instrucciones específicas asociadas con las excepciones (las trampas se generan utilizando una instrucción específica). Por lo tanto, se produce una excepción debido a una condición "excepcional" que se produce durante la ejecución del programa. Por ejemplo, la división por cero, la ejecución de un código de operación no válido o un fallo relacionado con la memoria podría causar excepciones. Cuando se produce una excepción, la CPU suspende temporalmente el programa que estaba ejecutando e inicia el ISR. ISR contendrá qué hacer con la excepción. Puede corregir el problema o, si no es posible, puede abortar el programa correctamente imprimiendo un mensaje de error adecuado. Aunque una instrucción específica no causa una excepción, una excepción siempre será causada por una instrucción. Por ejemplo, el error de división por cero solo puede ocurrir durante la ejecución de la instrucción de división.
¿Cuál es la diferencia entre Interrupción y Excepción??
Las interrupciones son interrupciones de hardware, mientras que las excepciones son interrupciones de software. Las ocurrencias de interrupciones de hardware generalmente deshabilitan otras interrupciones de hardware, pero esto no es cierto para las excepciones. Si necesita rechazar las interrupciones de hardware hasta que se sirva una excepción, debe borrar explícitamente el indicador de interrupción. Y, por lo general, el indicador de interrupción en la computadora afecta a las interrupciones (hardware) en lugar de a las excepciones. Esto significa que borrar esta bandera no evitará excepciones.