Você está na página 1de 3

En computacin, una interrupcin es una seal asincrnica desde el hardware que indica la necesidad de atencin, o un evento sincrnico en software

que indica la necesidad de un cambio en ejecucin. Una interrupcin de hardware (hardware interrupt) provoca que el procesador salve su estado de ejecucin a travs de una conmutacin de contexto (context switch) y comience la ejecucin de un manejador de interrupcin (interrupt handler). La interrupcin de software es generalmente implementada como una instruccin en un conjunto de instrucciones, que causa una conmutacin de contexto (context switch) a un manejador de interrupcin similar a una interrupcin de hardware. Las interrupciones son una tcnica comnmente usada en la multitarea, especialmente en la computacin en tiempo real. El acto de interrupcin es usualmente llamado IRQ (o interrupt request).

INTERRUPCIONES Que es una interrupcion? Una interrupcin es una seal de hardware, esta dice al procesador que pare temporalmente lo que esta haciendo y que haga alguna otra cosa. Sin interrupciones el procesador tendra que hacer un chequeo constante de eventos externos; con interrupciones el procesador puede trabajar sobre alguna otra cosa y responder a un evento tan pronto como este ocurra. El vector de Interrupciones El controlador de interrupciones acompana a cada senal de interrupcion de su identificador. Este identificador se utiliza para acceder al vector de interrupciones. En los equipos actuales, el numero de dispositivos suele ser mayor que el de interrupciones que acepta el controlador. Este problema se soluciona agrupando varios dispositivos con igual identificador de interrupcion, e incorporando en el codigo de servicio de la interrupcion la posibilidad de identificar el dispositivo que realmente requiere el servicio. Cuando se produce una de estas interrupciones se invocan los manejadores de interrupcion de la lista hasta que uno de ellos sirve al dispositivo adecuado. Esta es una solucion de compromiso entre vectores de interrupcion enormes y tiempos de servicio elevados. Invocacion de Interrupciones Las interrupciones del procesador, hardware y software son invocadas de diferente manera: Procesador: Las interrupciones del procesador o interrupciones lgicas son invocadas por el procesador como consecuencia de un resultado inusual del programa, tal como un intento de divisin por cero. Hardware: Las interrupciones de hardware son invocadas por mecanismos perifricos estos fijan sus respectivas lneas de peticin de interrupcin (IRQ). Cada vez que una tecla es presionada, por ejemplo, el teclado genera una interrupcin. Las interrupciones de hardware son vectoreadas a rutinas de servicio de interrupcin (ISRs) estas generalmente residen en el BIOS. Software: Las interrupciones de software son invocadas a travs de la instruccin INT del 8086. La mayora de las interrupciones de software son vectoreadas a (DSRs) localizado en el BIOS, o en programas de aplicacin. Apndice II TABLA DE INTERRUPCIONES DEL SISTEMA INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT 00: Divisin por cero 01: Ejecucin paso a paso 02: No Enmascarable (NMI) 03: Puntos de ruptura 04: Desbordamiento (INTO) 05: Volcar pantalla por impresora (BIOS) 06: Cdigo de operacin incorrecto 07: Reservada 08: IRQ 0: Contador de hora del sistema (BIOS) 09: IRQ 1: Interrupcin de teclado (BIOS) 0A: IRQ 2: canal E/S, segundo 8259 del AT 0B: IRQ 3: COM2 0C: IRQ 4: COM1 0D: IRQ 5: disco duro XT, LPT2 en AT, retrazo vertical PCjr 0E: IRQ 6: Controlador del disquete 0F: IRQ 7: LPT1 10: Servicios de vdeo (BIOS) 11: Listado del equipo (BIOS) 12: Tamao de memoria (BIOS) 13: Servicios de disco (BIOS) 14: Comunicaciones en serie (BIOS)

INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT INT

15: Servicios del sistema (BIOS) 16: Servicios de teclado (BIOS) 17: Servicios de impresora (BIOS) 18: IBM Basic (ROM del BASIC) 19: Arranque del sistema (BIOS) 1A: Fecha/hora del sistema 1B: Accin de CTRL-BREAK (BIOS) 1C: Proceso peridico del usuario (Usuario) 1D: Parmetros de vdeo (BIOS) 1E: Parmetros del disquete (BIOS) 1F: Tabla de caracteres grficos (BIOS) 20: Fin de programa (DOS) 21: Servicio del sistema operativo (DOS) 22: Direccin de terminacin (DOS) 23: DOS CTRL-BREAK (DOS) 24: Manipulador de errores crticos (DOS) 25: Lectura absoluta de disco (DOS) 26: Escritura absoluta en disco (DOS) 27: Terminar permaneciendo residente (DOS) 28: DOS Idle (programas residentes que usan funciones DOS) 29: DOS TTY (impresin en pantalla) 2A: Red local MS net 2B-2D: Uso interno del DOS 2E: Procesos Batch (DOS) 2F: Multiplex (DOS) 30: Compatibilidad CP/M-80 (xx:YYyy en JMP XXxx:YYyy) 31: Compatibilidad CP/M-80 (XX en JMP XXxx:YYyy) 32: Reservada 33: Controlador del ratn 34-3F: Reservadas 40: Interrupcin de disquete (BIOS) 41: Parmetros del disco duro 1 (BIOS) 42: Apunta a la INT 10h original del BIOS si existe VGA 43: Caracteres grficos EGA (BIOS) 44-45: Reservadas 46: Parmetros del disco duro 2 (BIOS) 47-49: Reservadas 4A: Alarma del usuario 4B-5F: Reservadas 60-66: Para uso de los programas 67: Interrupcin de EMS (controlador EMS) 68-6F: Reservadas 70: IRQ 8: Reloj de tiempo real AT (2 chip 8259-AT) 71: IRQ 9: IRQ 2 redireccionada (2 chip 8259-AT) 72: IRQ 10: reservada (2 chip 8259-AT) 73: IRQ 11: reservada (2 chip 8259-AT) 74: IRQ 12: interrupcin de ratn IBM (2 chip 8259-AT) 75: IRQ 13: error de coprocesador matemtico (2 chip 8259-AT) 76: IRQ 14: controlador disco fijo (2 chip 8259-AT) 77: IRQ 15: reservada (2 chip 8259-AT) 78-7F: Reservadas 80-85: Reservadas para el Basic 86-F0: Usadas por el Basic F1-FF: Para uso de los programas

Interrupciones Un dispositivo perifrico puede generar una se al elctrica llamada interrupcin que modifica ciertas banderas que se encuentran en el CPU. La deteccin de una interrupcin es parte del ciclo de instruccin. En cada ciclo de instruccin, el CPU chequea las banderas hw para ver si algn dispositivo necesita atencin. Las interrupciones generadas por los dispositivos perifricos son generalmente asncronos con respecto al programa que se est ejecutando. Un evento es asncrono a una entidad si el momento cuando ocurre no est determinado por la entidad. Las interrupciones no siempre ocurren en el mismo punto dentro de la ejecucin de un programa. En contraste, un evento de error como la divisin por cero es sncrono en el sentido de que siempre ocurre durante la ejecucin de una instruccin particular si el mismo dato es presentado a la instruccin. Las rutinas del Sistema de Operacin llamadas manejadores de dispositivos usualmente manejan las interrupciones generadas por el dispositivo. Los Sistemas de Operacin usan interrupciones pare implementer el tiempo compartido. Tienen un dispositivo llamado timer que genera una interrupcin despus de un intervalo especfico de tiempo. El Sistema de Operacin inicializa el timer antes de

actualizar el Program Counter pare ejecutar un programa de un usuario. Cuando el timer expira, genera una interrupcin causando que el CPU ejecute la rutina de servicio de la interrupcin timer. Un se al o signal es la notificacin por software de que un evento ocurri. Por lo general es la respuesta del Sistema de Operacin. Por ejemplo, ctrl-C genera una interrupcin para el manejador de dispositivo que maneja el teclado. El manejador notifica al proceso apropiado mandando un signal. El Sistema de Operacin tambien puede enviar signals a un proceso para notificar la finalizacin de una E/S o de un error.

Las interrupciones pueden ser producidas por Hardware o por Software Las interrupciones por Hw son producidas por un dispositivo y viajan por el mismo bus del sistema. Las interrupciones por Sw son producidas por medio de la ejecucin de una operacin especial que se conoce como "llamada al sistema" (system call) o por errores producidos dentro de un proceso, tambin conocidas como excepciones.

Hay muchos tipos de interrupciones y pare cada uno de estas existe una rutina en el sistema de operacin que le da servicio. Los sistemas de operacin actuales permiten a los dispositivos tales como E/S o reloj del sistema interrumpir el CPU asncronamente.

Pasos durante una interrupcin

El CPU suspende lo que estaba realizando. El hw transfiere el control al sistema de operacin. Deshabilita las interrupciones. Mientras se atiende una interrupcin no se puede atender otra que llegue. Algunas arquitecturas con manejo de interrupciones sofisticadas permiten, mediante un esquema de prioridades, interrumpir un servicio de interrupcin para atender otra de mayor prioridad. Aquellas interrupciones de menor o igual prioridad son deshabilitadas. El kernel del sistema de operacin salva el estado actual del proceso interrumpido Transfiere su ejecucin a una direccin fija. Esta direccin por lo general contiene la direccin de comienzo donde la rutina de servicio de la interrupcin se encuentra. Cada dise o de computador tiene su propio mecanismo de interrupciones. Una forma de manejar las interrupciones es invocando una rutina general que examine la informacin de la interrupcin y determine el tipo de interrupcin ocurrida, y de alli llama a la rutina que se encarga de atender dicha interrupcin. Por lo general se maneja mediante un vector de interrupciones, indexado por el tipo de interrupcin. En este vector se encuentra la direccin de comienzo de la rutina que da servicio a dicho tipo. Se le conoce como vector de interrupcin. Otra forma de localizar la rutina apropiada es mediante el pooling, es decir, preguntando a cada dispositivo pare ver quien requiri el servicio. Se ejecuta la rutina de interrupcin Se restaura el estado anterior Se habilitan las interrupciones. La arquitectura de interrupciones debe tambin almacenar la direccin de la instruccin interrumpida.

Los sistemas de operacin modernos operan por interrupciones (interrupt driven). Es decir, el sistema de operacin estar ocioso esperando a que algn evento ocurra (proceso a ejecutar, servicio de E/S, etc). Los eventos son indicados por la ocurrencia de una interrupcin o trap. Un trap es una excepcin causada por software.