Está en la página 1de 3

INTERRUPCIONES Una interrupcin es un mecanismo que permite ejecutar un bloque de instrucciones interrumpiendo la ejecucin de un programa, y luego restablecer la ejecucin

del mismo sin afectarlo directamente. De este modo un programa puede ser interrumpido temporalmente para atender alguna necesidad urgente del computador y luego continuar su ejecucin como si nada hubiera pasado. Generalmente se aplica para realizar tareas elementales asincrnicas en el computador tales como responder al teclado, escribir en la pantalla, leer y escribir archivos. Podemos considerar una tarea asincrnica como aquella que es solicitada sin previo aviso y aleatoriamente desde el punto de vista del computador. Tomemos el caso de la operacin Ctrl-Alt-Supr. En Windows tiene el efecto de que aparece en pantalla una lista de los procesos y ventanas en ejecucin en el computador. En cambio en el Sistema Operativo DOS cuando el usuario presiona simultneamente dichas teclas el computador procede a reinicializarse, aunque pueda estar ocupado ejecutando un programa en ese instante. Vale decir fuerza obligadamente a que el computador se reinicialice. Ya sea en el sistema Windows o en DOS, el computador no est constantemente monitoreando el teclado para ver si el usuario ha solicitado un Ctrl-Alt-Del, ya que en ese caso consumira mucho tiempo de proceso en ello y por ende la capacidad de proceso se vera significativamente afectada. La solucin empleada es una interrupcin. Luego cada vez que el usuario presiona una tecla, la CPU es advertida a travs de una seal especial de interrupcin. Cuando la CPU advierte/recibe una seal de interrupcin suspende temporalmente el proceso actual almacenando en memoria RAM un bloque con toda la informacin necesaria para restablecer posteriormente la ejecucin del programa si es que procede. Enseguida la CPU determina qu elemento ha solicitado la interrupcin y para cada caso existe un bloque de instrucciones que realiza la tarea correspondiente que es ejecutada a continuacin. Terminada la ejecucin se restablece el programa original en el mismo punto en que fue interrumpido usando para ello la informacin almacenada previamente. Cada interrupcin tiene asignada un nmero nico. El PC est diseado de manera que la interrupcin tiene asignada 4 bytes de memoria RAM. La direccin de los cuatro bytes en la memoria corresponde al nmero de la interrupcin multiplicado por 4. Por ejemplo la interrupcin IRQ 5 tiene asignada 4 bytes en la direccin 0x00014 (0000:0014). El contenido de los 4 bytes de memoria RAM asignados a una interrupcin contiene a su vez una direccin que es un puntero a un bloque de instrucciones de mquina que realiza el procedimiento correspondiente. De este modo al iniciar la ejecucin de una interrupcin de los cuatro bytes que tiene asignados se obtiene la direccin del bloque de instrucciones que efectivamente se ejecutan. Por ejemplo si en la direccin 0000:0014 estuviera almacenado el valor 0xFFF00, ello significa que en dicha direccin ( (F000:FF00) se encuentra el bloque de instrucciones a ejecutar cuando la interrupcin IRQ 5 sea requerida.

Existen tres tipos de interrupciones : Interrupciones internas de hardware Las interrupciones internas son generadas por ciertos eventos que surgen durante la ejecucin de un programa. Este tipo de interrupciones son manejadas en su totalidad por el hardware y no es posible modificarlas. Un ejemplo claro de este tipo de interrupciones es la que actualiza el contador del reloj interno de la computadora, el hardware hace el llamado a esta interrupcin varias veces durante un segundo para mantener la hora actualizada.

Interrupciones externas de hardware Las interrupciones externas las generan los dispositivos perifricos, como pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc. Tambin son generadas por los coprocesadores.

No es posible desactivar a las interrupciones externas. Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito integrado cuya funcin es exclusivamente manejar este tipo de interrupciones. El circuito, llamado PIC 8259A, si es controlado por la UCP utilizando para tal control una serie de vias de comunicacin llamadas puertos. Una lista de las interrupciones generadas por hardware es la siguiente:

IRQ 0 1 2

Prioridad 1 2 Timer

Funcin

Teclado Hardware

Reservada 3 4 11 12 COM 2 COM 1

5 6 7 8 9 10 11 12 13 14 15

13 14 15 3 4 5 6 7 8 9 10

Tarjeta de Sonido Controlador Floppy Puerta Paralela Reloj (tics) Libre para tarjeta de red, sonido, puerta SCSI idem idem PS-mouse Co-procesador matemtico Canal IDE primario Canal IDE secundario

Interrupciones de software Las interrupciones de software pueden ser activadas directamente por el ensamblador invocando al nmero de interrupcin deseada con la instruccin INT. El uso de las interrupciones nos ayuda en la creacin de programas, utilizandolas nuestros programas son ms cortos, es ms fcil entenderlos y usualmente tienen un mejor desempeo debido en gran parte a su menor tamao. Este tipo de interrupciones podemos separarlas en dos categoras: las interrupciones del sistema operativo DOS y las interrupciones del BIOS. La diferencia entre ambas es que las interrupciones del sistema operativo son ms fciles de usar pero tambin son ms lentas ya que estas interrupciones hacen uso del BIOS para lograr su cometido, en cambio las interrupciones del BIOS son mucho ms rpidas pero tienen la desventaja que, como son parte del hardware son muy especficas y pueden variar dependiendo incluso de la marca del fabricante del circuito. La eleccin del tipo de interrupcin a utilizar depender nicamente de las caractersticas que le quiera dar a su programa: velocidad (utilizando las del BIOS) o portabilidad (utilizando las del DOS).

También podría gustarte