viernes, 16 de octubre de 2015

INTERRUPCIONES DEL SISTEMA



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