Diferencia entre interrupción y excepción

Diferencia entre interrupción y excepción

La interrupción y la excepción son dos conceptos diferentes, pero son similares en el sentido de que ambos hacen que la CPU ponga un detención en el flujo normal de ejecución de instrucciones para ejecutar otro programa en el espacio del núcleo para manejarlas. La diferencia clave es cómo manejan los eventos inesperados que ocurren en algún lugar del sistema, el procesador o dentro del programa en sí.

Interrumpir

La interrupción es una señal enviada a la CPU desde dispositivos externos conectados a la computadora o un programa desde el sistema que requiere que el sistema operativo intervenga en el proceso continuo. Las interrupciones, como su nombre sugiere, son eventos abruptos que ponen el flujo normal de ejecución de instrucciones para detenerse. Le pide al sistema operativo que tome medidas inmediatas sobre qué hacer a continuación. Estos eventos inesperados generalmente están relacionados con un dispositivo de E/S, que se trata principalmente del mundo exterior. Por ejemplo, cuando presiona una tecla en el teclado o mueve el mouse, desencadena interrupciones de hardware que hacen que la CPU lea la tecla de tecla o el movimiento del mouse. Entonces, cuando se produce una interrupción, la CPU ejecuta una "rutina de manejo de interrupción" especial o "controlador de interrupción" para cuidar el evento que lo causó en primer lugar. El control se transfiere al sistema operativo tan pronto como se produce una interrupción, lo que lo lleva a tomar medidas inmediatas. Las interrupciones se priorizan, lo que significa que las interrupciones con una gran prioridad necesitan atención inmediata y deben manejarse primero.

Excepción

El término excepción es abrevianza de un evento excepcional y se refiere a eventos inesperados que existen en algún lugar del sistema, el procesador o dentro de un programa que requiere atención de la CPU. Las excepciones, como las interrupciones, interrumpen el flujo normal de instrucciones pero ocurren durante la ejecución del programa que son excepcionales y que no pueden manejarse dentro del programa en sí. Por ejemplo, si le ordena al procesador que divida un número por cero, dará una excepción divide por cero, haciendo que la computadora detenga el cálculo o muestre un mensaje de error. Cuando se produce una excepción, la CPU interrumpe el proceso continuo e inmediatamente responde a la excepción llamando a una función de controlador de excepción específica, dependiendo del tipo de ejecución. Las excepciones pueden clasificarse generalmente como excepciones detectadas por procesador y excepciones programadas. El primero ocurre cuando la CPU detecta cualquier tipo de anomalía mientras se ejecuta una instrucción, mientras que la segunda se genera a solicitud del programador.

Diferencia entre interrupción y excepción

Definición

- Interrupciones, como su nombre sugiere, son eventos inesperados que ponen el flujo normal de ejecución de instrucciones en detención, alterando la secuencia de instrucciones ejecutadas por un procesador. El control se transfiere al sistema operativo tan pronto como se produce una interrupción, lo que lo lleva a tomar medidas inmediatas. Las excepciones, por otro lado, son eventos excepcionales que interrumpen el flujo normal de instrucciones pero ocurren durante la ejecución del programa que son excepcionales y que no pueden manejarse dentro del programa en sí. La información sobre la excepción, incluida su fuente y su tipo, se almacena en un objeto llamado objeto excepcional.

Fuente

- Cuando se presiona una tecla en un teclado o se mueve el mouse, desencadena interrupciones de hardware que le impiden la CPU que lea a la tecla de tecla o al movimiento del mouse. Las interrupciones de software pueden activarse por errores de ejecución del programa, y ​​a menudo se denominan excepciones. Las excepciones se generan en algún lugar del sistema, el procesador o dentro de un programa que requiere atención de la CPU. Por ejemplo, si le ordena al procesador que divida un número por cero, dará una excepción divide por cero, haciendo que la computadora detenga el cálculo o muestre un mensaje de error.

Tipo

- Las interrupciones generalmente se pueden clasificar como interrupciones sincrónicas y asincrónicas. Las interrupciones sincrónicas se activan cada vez que la CPU ejecuta una instrucción y se llama sincrónica porque la CPU las emite solo después de terminar la ejecución de la instrucción. Las interrupciones asincrónicas ocurren cuando una anomalía externa interrumpe el procesador. Las excepciones pueden clasificarse generalmente como excepciones detectadas por procesador y excepciones programadas. El primero ocurre cuando la CPU detecta cualquier tipo de anomalía mientras se ejecuta una instrucción, mientras que la segunda se genera a solicitud del programador.

Manejo

- La interrupción es una clase de excepción, y la excepción se divide principalmente en cuatro clases: interrupción, falla, trampa y aborto. Las interrupciones y las excepciones, ambas abruptamente ponen al flujo de ejecución actual de instrucciones. Las interrupciones se priorizan, significado, las interrupciones con una alta prioridad necesitan atención inmediata y se manejan primero. Cuando se detecta una interrupción o una excepción, el procesador ejecutó un manejador de interrupción o manejador de excepción mientras suspendió el proceso continuo. El procesador reanuda el control del proceso interrumpido tan pronto como se realiza la ejecución del controlador.

Interrupción VS. Excepción: tabla de comparación

Resumen

Tanto las interrupciones como las excepciones son eventos inesperados que ocurren en algún lugar del sistema, el procesador o dentro de un programa que requiere atención inmediata de la CPU. Ambos abruptamente ponen al flujo actual de ejecución de instrucciones a un punto muerto. Cuando se detecta una interrupción o una excepción, el procesador ejecutó un manejador de interrupción o manejador de excepción mientras suspendió el proceso continuo. El procesador reanuda el control del proceso interrumpido tan pronto como se realiza la ejecución del controlador. Si hay múltiples interrupciones, la interrupción con la más alta prioridad debe ser manejas primero. Una diferencia clave entre las dos condiciones es que las interrupciones se activan por eventos externos, mientras que las excepciones se activan desde el procesador.