A veces se piensa, erróneamente, que cuando la CPU recibe una interrupción se detiene inmediatamente. Tiene que
finalizar la instrucción que se está ejecutando para poder atender la interrupción, ya que dichas instrucciones no se pueden
fraccionar.
Funcionamiento
Hay muchas interrupciones y se distinguen unas de otras con un número entero (número de interrupción).
Llegan siempre a la CPU para interrumpir la ejecución del código actual:
1. La CPU finaliza la instrucción actual.
2. Se salvan todos los registros de la CPU a la pila.
3. La CPU se pone en modo supervisor.
4. Se carga el registro PC de la CPU con la dirección indicada por el vector de interrupciones Se salta a la rutina
manejadora de la interrupción.
Vector de interrupciones
Por seguridad, cuando se inicia la máquina, las rutinas apuntan a
código del Sistema Operativo para así asegurar que tomará el
control de la máquina.
Nadie, quitando el Sistema Operativo, debe tener acceso al vector
de interrupciones.
Ubicación en MP
El vector de interrupciones reside en las zonas bajas de la
memoria principal (RAM) y sólo se puede modificar con
máximos privilegios.
Las rutinas manejadoras de interrupción son código binario en
memoria principal.
Las rutinas manejadoras de interrupción deben realizar un retorno
de interrupción (instrucción IRET) para finalizar.
Finalización
Cuando una rutina manejadora de interrupción hace un IRET:
1. La CPU se pone en modo usuario
2. Se recuperan todos los valores de los registros de la pila La CPU sigue ejecutando el código que había justo
antes de la interrupción.
Tipos de interrupción
Esta información es universal para cualquier dispositivo inteligente. Hay dos grandes tipos de interrupciones:
Interrupciones hardware: Generadas por el hardware (dispositivos periféricos).
Interrupciones software: Generadas por el software (por los procesos). Hay instrucciones máquina que generan
interrupciones.
Interrupciones Hardware
Las interrupciones Hardware son señales eléctricas que llegan a la CPU. Son imprescindibles para que funcione
correctamente la multiprogramación y las envían directamente los dispositivos periféricos cuando hayan finalizado su
E/S. Además, una interrupción Hardware se recibe en un dispositivo cuando acaba la E/S.
Interrupciones Software
Las interrupciones software se subdividen en dos tipos.
Llamadas al sistema. El Sistema Operativo, para proteger la máquina, es el único que puede acceder al hardware.
Por tanto, la única manera de que un programa acceda al hardware es mediante una llamada al sistema. Entonces,