Interrupción
Las interrupciones, también conocida como
interrupción hardware es una señal
recibida por el procesador
de un ordenador, indicando que debe "interrumpir" el
curso de ejecución actual y pasar a ejecutar código
específico para tratar esta situación.
- Interrupciones internas de
hardware
Las interrupciones internas son generadas por ciertos
eventos que
surgen durante la ejecución 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
interrupción varias veces durante un segundo para mantener
la hora actualizada.
Aunque no podemos manejar directamente esta
interrupción (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 externas de
hardware
Las interrupciones externas las generan los dispositivos
periféricos, como pueden ser: teclado,
impresoras,
tarjetas de
comunicaciones, etc. También 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 función 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 vías de comunicación llamadas puertos.
- Interrupciones de software
Las interrupciones de software pueden ser activadas
directamente por el ensamblador
invocando al número de interrupción deseada con la
instrucción INT.
El uso de las interrupciones nos ayuda en la
creación de programas,
utilizándolas nuestros programas son más cortos, es
más fácil entenderlos y usualmente tienen un mejor
desempeño debido en gran parte a su menor
tamaño.
Este tipo de interrupciones podemos separarlas en dos
categorías: las interrupciones del sistema operativo
DOS y las interrupciones del BIOS.
La diferencia entre ambas es que las interrupciones del
sistema operativo
son más fáciles de usar pero también son
más lentas ya que estas interrupciones hacen uso del BIOS
para lograr su cometido, en cambio las
interrupciones del BIOS son mucho más rápidas pero
tienen la desventaja que, como son parte del hardware son muy
específicas y pueden variar dependiendo incluso de la
marca del
fabricante del circuito.
La elección del tipo de interrupción a
utilizar dependerá únicamente de las
características que le quiera dar a su programa: velocidad
(utilizando las del BIOS) o portabilidad (utilizando las del
DOS).
Motivación
Las interrupciones surgen de la necesidades que tienen
los dispositivos periféricos de enviar información al procesador principal de un
sistema de computación. La primera técnica que
se empleó fue que el propio procesador se encargara de
sondear (polling) el dispositivo cada cierto tiempo para
averiguar si tenía pendiente alguna comunicación
para él.
Este método
presentaba el inconveniente de ser muy ineficiente, ya que el
procesador constantemente consumía tiempo en realizar
todas las instrucciones de sondeo.
El mecanismo de interrupciones fue la solución
que permitió al procesador desentenderse de esta
problemática, y delegar en el dispositivo la responsabilidad de comunicarse con el procesador
cuando lo necesitaba. El procesador, en este caso, no sondea a
ningún 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
información, una condición de error,
etc.).
Página siguiente |