Sunteți pe pagina 1din 3

Interrupciones

Carrera: Ingeniera en Sistemas Computacionales Grupo: 5 A Materia: Lenguaje Ensamblador

1 de Septiembre de 2011

Una 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. Luego de finalizada, se reanuda la ejecucin del programa. Las interrupciones son un mecansmo 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 atencin de la CPU de tal forma que cada dispositivo cuando necesita ser atendido por la CPU, emite una interrupcin o seal haciendo que la CPU vaya a atenderla de inmediato. 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.). Pasos para el procesamiento de una IRQ("Interrupt ReQuest", peticin de interrupcin): 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. Las interrupciones se pueden dividir en: 1. Interrupciones de Software. Tambin son conocidas como falsas interrupciones ya que se producen como consecuencia de la ejecucin de otra instruccin 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, lgicamente, 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 interrupcin. Este tipo de interrupcin es el ms habitual en la programacin. Estas son asncronas a la ejecucin del procesador, es decir, se pueden producir en cualquier momento independientemente de lo que est haciendo la CPU en ese momento. Las causas que lo producen son

externas al procesador y a menudo suelen estar ligadas con distintos dispositivos de E/S. 2. Interrupciones de Hardware. Este tipo de interrupcin es invocado directamente por los dispositivos hardware de nuestro ordenador, por lo que son bastante ms autnticas que las anteriores. Al producir algn dispositivo hardware la interrupcin el controlador de interrupciones o PIC se encarga de gestionarla determinando, en el caso de producirse ms de una interrupcin a la vez, cual de ellas tiene ms 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 programacin de sistemas de comunicaciones. A menudo se tiende a confundir las interrupciones software y las trampas, ya que su naturaleza es bastante similar. Sin embargo las excepciones se producen al realizar una operacin no permitida por lo que de algn modo podemos decir que no es controlada directamente por el programador sino que, por un fallo al programar, se producen. No obstante las trampas s que son provocadas por el programador. Para provocar una trampa existen distintas instrucciones en el cdigo mquina que permiten al programador producir una interrupcin al ejecutar dicha instruccin. Suelen tener nemotcnicos tales como INT. Suelen ser de vital importancia ya que a partir de las trampas se pueden pedir al SO que realice determinadas funciones, para ello, en DOS se realiza la instruccin INT 0x21 y en Unix se utiliza INT 0x80. 3. Traps. Son aquellas que se producen de forma sncrona a la ejecucin del procesador y por tanto podran predecirse si se analiza con detenimiento la traza del programa que en ese momento estaba siendo ejecutado en la CPU. Normalmente las causas de estas interrupciones suelen ser realizaciones de operaciones no permitidas tales como la divisin por 0, el desbordamiento, el acceso a una posicin de memoria no permitida, etc.

S-ar putea să vă placă și