Está en la página 1de 2

Interrupciones

Interrupcin (tambin conocida como interrupcin hardware o peticin de


interrupcin) es una seal recibida por el procesador de un ordenador,
indicando que debe "interrumpir" el curso de ejecucin actual y pasar a
ejecutar cdigo especfico para tratar esta situacin.
Una interrupcin supone la ejecucin temporaria de un programa, para pasar a
ejecutar una "subrutina de servicio de interrupcin", que pertenece al BIOS
(Basic Input Output System).
Las interrupciones surgen de las necesidades que tienen los dispositivos
perifricos de enviar informacin al procesador principal de un sistema de
computacin. La primera tcnica que se emple fue que el propio procesador
se encargara de sondear (polling) el dispositivo cada cierto tiempo para
averiguar si tena pendiente alguna comunicacin para l. Este mtodo
presentaba el inconveniente de ser muy ineficiente, ya que el procesador
constantemente consuma tiempo en realizar todas las instrucciones de
sondeo.
El mecanismo de interrupciones fue la solucin que permiti al procesador
desentenderse de esta problemtica, y delegar en el dispositivo la
responsabilidad de comunicarse con el procesador cuando lo necesitaba. El
procesador, en este caso, no sondea a ningn dispositivo, sino que queda a la
espera de que estos le avisen (le "interrumpan") cuando tengan algo que
comunicarle (ya sea un evento, una transferencia de informacin, una
condicin de error, etc.).
Funcionamiento del mecanismo de interrupciones

Cada dispositivo que desea comunicarse con el procesador por interrupciones


debe tener asignada una lnea nica capaz de avisar a ste de que le requiere
para una operacin. Esta lnea es la llamada IRQ ("Interrupt ReQuest", peticin
de interrupcin).
Las IRQ son lneas que llegan al controlador de interrupciones, un componente
hardware dedicado a la gestin de las interrupciones, y que puede estar
integrado en el procesador principal o ser un circuito separado conectado al
procesador principal. El controlador de interrupciones debe ser capaz de
habilitar o inhibir lneas de interrupcin (operacin llamada comnmente
enmascarar por la utilizacin de una mscara), y establecer prioridades entre
las distintas interrupciones habilitadas. Cuando varias lneas de peticin de
interrupcin se activan a la vez, el controlador de interrupciones utilizar estas
prioridades para escoger la interrupcin sobre la que informar al procesador

principal. Sin embargo hay interrupciones que no se pueden enmascarar o


deshabilitar, las conocidas como interrupciones no enmascarables o NMI.
Un procesador principal (sin controlador de interrupciones integrado) suele
tener una nica lnea de interrupcin llamada habitualmente INT. Esta lnea es
activada por el controlador de interrupciones cuando tiene una interrupcin
que servir. Al activarse esta lnea, el procesador consulta los registros del
controlador de interrupciones para averiguar qu IRQ es la que ha de atender.
A partir del nmero de IRQ busca en el vector de interrupciones qu rutina
debe llamar para atender una peticin del dispositivo asociado a dicha IRQ.
Las rutinas de interrupcin generalmente toman un pequeo tiempo de
ejecucin y la mayora no pueden ser interrumpidas cuando se estn
atendiendo, porque al entrar en ellas se almacena el estado de los registros en
una pila y si se interrumpen muchas veces, la pila se puede desbordar.
Pasos para el procesamiento de una IRQ:
1) Terminar la ejecucin de la instruccin mquina en curso.
2) Salva el valor de contador de programa, IP, en la pila, de manera que en la
CPU, al terminar el proceso, pueda seguir ejecutando el programa a partir de la
ltima instruccin.
3) La CPU salta a la direccin donde est almacenada la rutina de servicio de
interrupcin (ISR, Interrupt Service Routine) y ejecuta esa rutina que tiene
como objetivo atender al dispositivo que gener la interrupcin.
4) Una vez que la rutina de la interrupcin termina, el procesador restaura el
estado que haba guardado en la pila en el paso 2 y retorna al programa que se
estaba usando anteriormente.

También podría gustarte