2.8 Interrupciones Ensamblador

 

Definición y Tipos de Interrupciones.

La primera cosa de todas, ¿qué son las interrupciones?, bien, las interrupciones son un “mecanísmo” por medio del cual hacemos que la CPU deje la tarea en la que estaba para que se vaya a ocupar de otra cosa distinta, es decir, es una forma de llamar la atención de la CPU de tal forma que cada dispositivo cuando necesita ser atendido por la CPU, emite una interrupción o señal haciendo que la CPU vaya a atenderla de inmediato. Esto es importantísimo ya que de no existir interrupciones, la CPU debería de ir preguntando, cada cierto tiempo, a los dispositivos para ver si necesitan de su intervención y como podeis suponer, eso significaría lentitud, mucha lentitud. Por tanto, quedaros con que las interrupciones sirven para controlar el hardware, ya que son las que llaman a la CPU cuando este, el hardware, necesita la intervención de la misma.

Las interrupciones se pueden dividir en 2 grupos:

1. Interrupciones de Software. También son conocidas como “falsas interrupciones” ya que se producen como consecuencia de la ejecución de otra instrucción al no ser el hardware las que las produce. Otra forma de entender estas interrupciones, es verlas desde el punto de vista de llamadas a subrutinas, lógicamente, la gracia está en que esas subrutinas no son nuestras, sino que son las propias de cada sistema operativo, driver o similar tiene. Quedaros pues, con que somos nostros los que hacemos invocamos a la interrupción. Este tipo de interrupción es el más habitual en la programación.

2. Interrupciones de Hardware. Este tipo de interrupción es invocado directamente por los dispositivos hardware de nuestro ordenador, por lo que “son bastante más auténticas” que las anteriores. Al producir algún dispositivo hardware la interrupción el controlador de interrupciones o PIC se encarga de gestionarla determinando, en el caso de producirse más de una interrupción a la vez, cual de ellas tiene más prioridad y debe de ser gestionada por la CPU. El funcionamiento de este tipo de interrupciones es bastante similar y se suele utilizar mucho para la programación de sistemas de comunicaciones.