Interrupciones y excepciones

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

Tipos de interrupciones y excepciones

  • Una interrupción por hardware es un mecanismo de comunicación entre el procesador y los dispositivos de E/S. Sirve para indicar que un dispositivo de E/S tiene datos pendientes de ser tratados. Las interrupciones por hardware evitan que el sistema operativo tenga que muestrear periódicamente el estado de los dispositivos de E/S, de manera que son ellos mismos los que indican que hay datos a ser tratados.
  • Una interrupción por software, es un mecanismo de comunicación entre un proceso (que se ejecuta en modo usuario) y el sistema operativo (que se ejecuta en modo supervisor). El proceso emplea las interrupciones por software para notificar al sistema operativo que requiere de su intervención. Para lanzar una interrupción por software un proceso ejecuta la instrucción int seguida de un número de 16 bits que indica el tipo de interrupción por software. Por ejemplo, las llamadas al sistema en x86 se implementan mediante interrupciones por software, por medio de la instrucción int 0x80 (Sin embargo, hoy día las arquitectura de procesadores viene con instrucciones especializadas para la invocación de llamadas al sistema, por tanto esta técnica ha caído en desuso).

Las excepciones son un tipo de interrupción por software que emplea el sistema operativo para indicar al proceso de un evento externo que debe ser tratado inmediatamente.

El tratamiento de interrupciones es prioritario, por tanto, en caso de interrupción se deja de ejecutar el proceso para dar paso al manejador de la interrupciones.

Tratamiento de interrupciones y excepciones

Cuando se produce una interrupción:

1. Almacena el estado de la ejecución del proceso en el Bloque de Control de procesos (PCB).

2. Se pasa la CPU a modo supervisor.

3. Se ejecuta el código del sistema operativo que realiza el tratamiento de la interrupción. Este decide la acción correspondiente dependiendo del tipo de interrupción.

4. Se devuelve el control de la ejecución al planificador del sistema operativo.


2.4. Arranque del sistema