Una interrupción es un mecanismo que permite
ejecutar un bloque de instrucciones interrumpiendo la ejecución de un programa,
y luego restablecer la ejecución 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 ejecución como si nada
hubiera pasado.
Generalmente se aplica para realizar tareas
elementales asincrónicas en el computador tales como responder al teclado,
escribir en la pantalla, leer y escribir archivos. Podemos considerar una tarea
asincrónica como aquella que es solicitada sin previo aviso y aleatoriamente
desde el punto de vista del computador. Tomemos el caso de la operación Ctrl-Alt-Supr.
En Windows tiene el efecto de que aparece en pantalla una lista de los procesos
y ventanas en ejecución en el computador.
En cambio en el Sistema Operativo DOS cuando
el usuario presiona simultáneamente 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 consumiría mucho tiempo de proceso en ello y por ende la
capacidad de proceso se vería significativamente afectada. La solución empleada
es una interrupción.
TIPOS DE INTERRUPCIONES
Interrupciones de Programa Las interrupciones
de programa son aquellas que se producen cuando el CPU detecta una condición
extraordinaria durante la ejecución de una instrucción e programa.
Ejemplos:
ü
Desbordamiento de la Pila
ü
Desbordamiento (Overflow)
ü
Direccionamiento inválido
ü
Instrucción inválida
ü
Violación de protecció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.
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
vias de comunicación llamadas puertos.
CICLO DE RECONOCIMIENTO DE INTERRUPCION
La CPU responde a una petición de
interrupción con un ciclo de reconocimiento de interrupción. En la mayoría de
las CPUs la respuesta a una interrupción consta de los siguientes pasos:
ü
El dispositivo de hardware genera el pulso o señal de
petición de interrupción.
ü
El controlador de Interrupciones Programables prioriza la
petición de interrupción en relación con
las demás peticiones que podrían haberse emitido de forma simultánea (o estar
pendientes) y emite la petición de interrupción al procesador.
ü
Si las interrupciones están habilitadas, la CPU responde
con un ciclo de bus de reconocimiento de interrupción.
ü
En respuesta al reconocimiento de la CPU, el dispositivo
externo (o el PIC si estuviese presente) sitúa un vector de interrupción en el bus de datos.
ü
La CPU lee el vector y lo utiliza (posiblemente de forma
indirecta) para obtener la dirección de la ISR.
ü
Por último, la CPU sitúa en la pila el contexto actual,
inhabilita las interrupciones, y
ü
salta a la ISR.
No hay comentarios:
Publicar un comentario