Excepciones
4. Resumen
En el contexto del sistema operativo Linux, las interrupciones y las excepciones son dos conceptos distintos pero relacionados en el manejo de eventos imprevistos o asincrónicos que pueden ocurrir durante la ejecución de un programa. Aquí hay una descripción de las diferencias clave entre ellas:
Interrupciones (eventos generados por hardware)
- Las interrupciones son eventos externos o hardware generados por dispositivos periféricos o el propio hardware del sistema y se corresponde con señales eléctricas generadas por el hardware.
- Pueden ser síncronas o asíncronas. Las interrupciones síncronas ocurren en momentos específicos del programa, mientras que las asíncronas pueden ocurrir en cualquier momento.
- Las interrupciones pueden ser enmascarables o no enmascarables. Las enmascarables pueden ser deshabilitadas temporalmente por el sistema operativo, mientras que las no enmascarables no pueden ser deshabilitadas.
- Ejemplos de interrupciones son la interrupción del temporizador (timer interrupt), interrupciones de dispositivos de entrada/salida (I/O), interrupción de reloj en tiempo real (RTC), etc.
- Las interrupciones se manejan mediante rutinas de manejo de interrupciones (interrupt handlers), que son funciones de bajo nivel escritas específicamente para responder a eventos de interrupción.
- Las interrupciones son eventos externos o hardware generados por dispositivos periféricos o el propio hardware del sistema y se corresponde con señales eléctricas generadas por el hardware.
Excepciones (eventos generados por software)
- Las excepciones son eventos internos o software generados por el propio procesador durante la ejecución de instrucciones.
- Generalmente son causadas por condiciones anómalas durante la ejecución del programa, como divisiones por cero, acceso a memoria no válida, instrucciones ilegales, entre otros.
- Las excepciones pueden ser síncronas, ya que están directamente relacionadas con la ejecución de instrucciones del programa.
- Las excepciones son manejadas por el sistema operativo o por el propio programa, dependiendo de la naturaleza de la excepción y de cómo se haya configurado el sistema.
- En Linux, las excepciones son manejadas principalmente por el kernel del sistema operativo, que puede tomar medidas como enviar señales al proceso, abortar la ejecución del proceso o realizar otras acciones específicas para manejar la excepción.
En resumen, mientras que las interrupciones son eventos externos generados por hardware o dispositivos periféricos, las excepciones son eventos internos generados por el propio procesador debido a condiciones anómalas durante la ejecución del programa.
Ambos tipos de eventos requieren manejo especial por parte del sistema operativo para garantizar un funcionamiento adecuado del sistema.