Interrupción VS Excepción
En cualquier computadora, durante su ejecución normal de un programa, podría 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 llaman (simplemente) interrupciones, mientras que las interrupciones de software se denominan excepciones. Una vez que se plantea 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 planteadas por la interrupción.
Que es la interrupción?
El término interrupción generalmente se reserva para interrupciones de hardware. Son interrupciones de control de programas causadas por eventos de hardware externos. Aquí, los medios externos externos a la CPU. Las interrupciones de hardware generalmente provienen de muchas fuentes diferentes, como chip de 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, tarjeta de video, etc.). Eso significa que las interrupciones de hardware casi nunca ocurren debido a algún evento relacionado con el programa de ejecución. Por ejemplo, un evento como una tecla Presione en el teclado por parte del usuario, o un tiempo de tiempo de temporizador de hardware interno puede elevar este tipo de interrupción y puede informar a la CPU que un determinado dispositivo necesita atención. En una situación como esa, la CPU detendrá lo que estuviera haciendo (yo.mi. Pausa el programa actual), proporciona el servicio requerido por el dispositivo y volverá al programa normal. Cuando se producen interrupciones de hardware y la CPU inicia el ISR, otras interrupciones de hardware están deshabilitadas (e.gramo. en 80 × 86 máquinas). Si necesita que ocurran otras interrupciones de hardware mientras se ejecuta el ISR, debe hacerlo explícitamente limpiando el indicador de interrupción (con instrucción de ITS). En 80 × 86 máquinas, la limpieza de la bandera de interrupción solo afectará las interrupciones de hardware.
¿Qué son las excepciones??
La excepción es una interrupción de software, que se puede identificar como una rutina de controladores especiales. La excepción se puede identificar como una trampa automáticamente que ocurre (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 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 ocurre durante la ejecución del programa. Por ejemplo, la división por cero, la ejecución de un código de operación ilegal o falla relacionada con la memoria podría causar excepciones. Cada vez que se plantea 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 con gracia 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, la división por error 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 desactivan otras interrupciones de hardware, pero esto no es cierto para las excepciones. Si necesita rechazar interrupciones de hardware hasta que se sirva una excepción, debe eliminar explícitamente el indicador de interrupción. Y generalmente el indicador de interrupción de la computadora afecta (hardware) interrumpir en lugar de excepciones. Esto significa que limpiar esta bandera no evitará excepciones.