Вы находитесь на странице: 1из 8

Nombre de la materia

Sistemas digitales y
perifricos
Nombre de la Licenciatura
Ingeniaran en sistemas Computacionales
Nombre del alumno

Matrcula

Nombre de la Tarea
Interrupciones
Unidad #5
Elementos para el manejo de
perifricos
Nombre del Tutor
Luis Manuel Ramos Sandoval
Fecha
17/11/2016
Unidad 5. Elementos para el manejo de perifricos
Interrupciones

INTERRUPCIONES
Introduccion___________________________________________________________
Las interrupciones son generadas por los dispositivos perifricos habilitando una seal del CPU (llamada IRQ
del ingls "interrupt request") para solicitar atencin del mismo. 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.
Desarrollo_______________________________________________________________________
Cul es la diferencia entre una interrupcin hardware y una llamada a subrutina? Cuando se da una
interrupcin por hardware, es porque se ha producido una seal elctrica causada por algn
dispositivo fsico del equipo, siendo este mismo un suceso que es externo al procesador, este
cambia el flujo normal de ejecucin y se convierte en un evento asncrono. Dicha seal hace un
informe al CPU de que dicho dispositivo requiere de su atencin. Gracias a esta seal el CPU
detendr el proceso que est ejecutando para que la interrupcin sea atendida. Una vez terminada la
interrupcin, el CPU reanudara la ejecucin desde donde fue interrumpida, ejecutando el proceso
que se detuvo originalmente u otro proceso.

Subrutina o subprograma (tambin llamada procedimiento, funcin o rutina), como idea general, se
presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una
tarea especfica. Algunos lenguajes de programacin, como Visual Basic .NET, utilizan el nombre
funcin para referirse a subrutinas que devuelven un valor.

(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)

2
Unidad 5. Elementos para el manejo de perifricos
Interrupciones

Una subrutina al ser llamada dentro de un programa hace que el cdigo principal se detenga y se
dirija a ejecutar el cdigo de la subrutina, en cambio cuando se llama a una macro, el compilador
toma el cdigo de la macro y lo implanta donde fue llamado, aumentando as el cdigo fuente y por
consiguiente el objeto.

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.

Cules son las diferencias bsicas entre una bifurcacin, una llamada a subrutina y una
interrupcin de programa?

Llamadas a subrutinas: salvan la posicin de retorno. Las instrucciones de salto a la subrutina y


regreso al programa principal van emparejadas. La subrutina es un proceso que sucede cuando el
CPU slo puede ejecutar una instruccin cada ciclo de mquina, la diferencia de una subrutina con
un sistema con interrupciones, es que la interrupcin no se genera con una instruccin CALL, sino en
respuesta a una llamada generada por hardware o por software. Al programa que se ejecuta al

(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)

3
Unidad 5. Elementos para el manejo de perifricos
Interrupciones

generarse una interrupcin se denomina Rutina de Atencin a interrupcin (ISR). Cuando hay una
interrupcin el programa principal se detiene y salta a atender la llamada a interrupcin (subrutina).

Bifurcacin: ocurre cuando la direccin de bsqueda no es la siguiente a la direccin previa, en el


Secuenciador de Programa la nica diferencia entre un salto y una llamada a subrutina es que antes
de ejecutar la llamada a subrutina se guarda en la Pila del PC., Subrutina: a diferencia de una
bifurcacin una llamada a subrutina almacena en la Pila del PC la direccin de retorno, por ello esta
direccin est disponible cuando ms tarde se ejecuta la instruccin de retorno de subrutina, esto da
lugar a que el procesador salte a la direccin almacenada en la cima de la Pila del PC y una
bifurcacin ocurre cuando la direccin de bsqueda no es la direccin siguiente a la direccin de bsqueda previa.
Subrutina: a diferencia de una bifurcacin una llamada a subrutina almacena en la Pila del PC la
direccin de retorno, por ello esta direccin est disponible cuando ms tarde se ejecuta la
instruccin de retorno de subrutina, esto da lugar a que el procesador salte a la direccin
almacenada en la cima de la Pila del PC

Interrupcin de programa: Las interrupciones por software son aquellas generadas por un programa
en ejecucin. Para generarlas, existen distintas instrucciones en el cdigo mquina que permiten al
programador producir una interrupcin, las cuales suelen tener nemotcnicos tales como INT (por
ejemplo, en DOS se realiza la instruccin INT 0x21 y en Unix se utiliza INT 0x80 para hacer llamadas
de sistema).

La interrupcin por software, tambin denominadas llamadas al sistema, son aquellas generadas por
un programa mientras este est ejecutndose. En general, actan de la siguiente manera:

Un programa que se vena ejecutando luego de su instruccin I5 , llama al Sistema Operativo,


por ejemplo para leer un archivo de disco (cuando un programa necesita un dato exterior , se
detiene y pasa a cumplir con las tareas de recoger ese dato).

(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)

4
Unidad 5. Elementos para el manejo de perifricos
Interrupciones

A tal efecto, luego de I5 existe en el programa, la instruccin de cdigo de mquina CD21,


simbolizada INT 21 en Assembler, que realiza el requerimiento del paso 1. Puesto que no
puede seguir le ejecucin de la instruccin I6 y siguientes del programa hasta que no se haya
ledo el disco y est en memoria principal dicho archivo, virtualmente el programa se ha
interrumpido, siendo, adems, que luego de INT 21, las instrucciones que se ejecutarn no
sern del programa, sino del Sistema Operativo. Se detiene el programa y ordena en este
caso mediante INT21 (interrupcin predefinida) que recoge el dato solicitado, para poder
seguir el programa que la orden).
La ejecucin de INT 21 permite hallar la subrutina del Sistema Operativo.
Se ejecuta la subrutina del Sistema Operativo que prepara la lectura del disco.
Luego de ejecutarse la subrutina del Sistema Operativo, y una vez que se haya ledo el disco
y verificado que la lectura es correcta, el Sistema Operativo ordenar reanudar la ejecucin
del programa auto interrumpido en espera.
La ejecucin del programa se reanuda

Indica cinco ejemplos de interrupciones externas y cinco de interrupciones internas.

Internas

Las genera la propia CPU cuando se produce una situacin anormal como puede ser una divisin
entre 0 (INT 0h), paso a paso (INT 1h), puntos de ruptura (INT 3h), desbordamiento (INT 4h),
operacin indefinida (INT 6h)

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

(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)

5
Unidad 5. Elementos para el manejo de perifricos
Interrupciones

Aunque no podemos manejar directamente esta interrupcin (no podemos controlar por software las
actualizaciones del reloj), es posible utilizar sus efectos en la computadora para nuestro beneficio,
por ejemplo para crear un "reloj virtual" actualizado continuamente gracias al contador del reloj
interno. nicamente debemos escribir un programa que lea el valor actual del contador y lo traduzca
a un formato entendible para el usuario.

Interrupciones internas

INT 0: Error de divisin, generada automticamente cuando el cociente no cabe en el registro o el


divisor es cero. Slo puede ser generada mediante DIV o IDIV. El 8088/8086 guardan en la pila la
sentencia siguiente a la que caus la excepcin, mientras que el 286 y superiores guardan la
sentencia que la gener.
INT 1: Paso a paso. Se produce tras cada instruccin cuando el procesador est en modo traza
(utilizado para la depuracin de programas).
INT 2: Interrupcin no enmascarable. Tiene prioridad absoluta y se produce incluso aunque estn
inhibidas las interrupciones para indicar un hecho muy urgente.
INT 3: Utilizada para poner puntos de ruptura en la depuracin de programas.
INT 4: Desbordamiento. Se dispara cuando se ejecuta un INTO y haba desbordamiento. Si no hay
desbordamiento INTO equivale a NOP.
INT 5: rango excedido en la instruccin BOUND (slo 186 y superiores). Ha sido incorrectamente
empleada por IBM para volcar la pantalla por impresora.

Externas

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

(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)

6
Unidad 5. Elementos para el manejo de perifricos
Interrupciones

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 vas de comunicacin
llama

Las interrupciones externas son generadas por los dispositivos perifricos, tales como teclados,
impresoras, tarjetas de la comunicacin, etc. Tambin son generadas por coprocessors. No es
posible desactivar interrupciones externas. das puertos.

AVR por el pin INT0, se le har llegar una seal la cual cambiar su estado entre altos y bajos con la
ayuda de un fotorresistor, cuando se ilumine el fotorresistor su resistencia disminuir y al pin INT0 le
llegar un alto, cuando el fotorresistor no se ilumine su resistecia ser alta y al pin INT0 le llegar un
bajo. Se programar para que la interrupcin externa AVR ocurra por flanco de bajada, esto es
cuando la seal que llega al pin INT0 pase de un alto a un bajo; cada vez que se produzca la
interrupcin se cambiar el estado del pin PB0 lo cual ser visible mediante un led

El microcontrolador tiene una rutina permanente que es hacer un blink en el led conectado a RA0 a
intervalos de 0.25 segundos. Cuando el botn haga una transicin de 0 a 1 (Rising edge) se activar
INT0, la cual activar una rutina que encender o apagar el led conectado a RA1 durante 1
segundo. Posteriormente, el microcontrolador continuar con la rutina del blink hasta que se
produzca una nueva interrupcin INT0.

Encender un LED con un flanco de bajada y apagarlo con un flanco de subida en INT0

(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)

7
Unidad 5. Elementos para el manejo de perifricos
Interrupciones

Conclusin________________________________________________________________________

Una interrupcin es un recurso del cual disponen la mayora de los procesadores y


microcontroladores en el mercado hoy en da. Permiten cambiar la continuidad de ejecucin de un
programa, para atender una necesidad, ya sea externa o interna. Las interrupciones se manejan de
distintas formas segn el procesador, fabricante, desarrollador, etc. Hablando a nivel de
microcontroladores, la mayora tienen algo en comn, y es como atienden dicha interrupcin. Al
recibirse una seal de interrupcin, se abre la brecha en la continuidad del programa en ejecucin, y
se recurre a un registro llamado Handler, el cual, dependiendo del microcontrolador, contendr el
cdigo de ejecucin para atender la interrupcin, o contendr una direccin donde se encontrar
dicho cdigo.

Entre las utilidades de las interrupciones podemos encontrar cosas tan simples como cambiar el
valor de un puerto de 0 a 1, hasta cosas tan complejas como lo es un despachador de tareas, he all,
el poder de este recurso.

Las interrupciones pueden tener fuentes internas y externas. Una fuente de interrupcin interna
puede ser por ejemplo, un error por overflow o la finalizacin de un contador; una fuente externa,
puede ser un botn de reset, tambin una seal de control o un detector de cambios de nivel como el
KBI o el IRQ.

(MORRIS, 2005)
MORRIS. (2005). FUNDAMENTOS DE DISEO LGICO Y DE COMPUTADORAS.
(CASILLAS. L GINESTA, s.f.) (CORPORATION, 2012)
(DONKO_LIBRAR11, s.f.)

Вам также может понравиться