Una interrupción es una suspensión temporal de la ejecución de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por lo general, no forma parte del programa (generalmente perteneciente al sistema operativo, o al BIOS). Luego de finalizada dicha subrutina, se reanuda la ejecución del programa.
Las interrupciones surgen de las 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) los dispositivos 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 necesitara. 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.
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 de la
computadora y luego continuar su ejecución de manera normal y como si nada
hubiera pasado.
Las interrupciones
son un método del que disponen los dispositivos e incluso los procesos para
hacer notar a la CPU la aparición de alguna circunstancia que requiera su
intervención. De este modo, los dispositivos pueden provocar que la CPU deje
por el momento la tarea que estaba realizando y atienda la interrupción. Una
vez atendida, seguirá con su labor anterior.
Cuando no
existían interrupciones, era el procesador el que tenía que estar continuamente
comprobando el estado del dispositivo cuando lo necesitaba. Todo ese tiempo que
el procesador estaba sondeando el estado de los dispositivos era tiempo que no
se podía dedicar a otros procesos, lo que significa esto una afectación al
rendimiento.
Por todo ello se. Pensó que lo mejor era que
existiera una línea especial entre el procesador y los dispositivos, por la que
los dispositivos indicaban al procesador que ya estaban listos.
Interrupciones
generadas por los dispositivos periféricos son generalmente asíncronos con
respecto al programa que se está ejecutando. Un evento es asíncrono a
una entidad si el momento cuando ocurre no está determinado por la entidad. Las
interrupciones no siempre ocurren en el mismo punto dentro de la ejecución de
un programa. En contraste, un evento de error como la división por cero es síncrono en el sentido de que siempre ocurre durante la ejecución de una instrucción
particular si el mismo dato es presentado a la instrucción.
Pasos durante una interrupción
El CPU
suspende lo que estaba realizando. El hw transfiere el control al sistema de
operación.
Des habilita
las interrupciones, mientras se atiende una interrupción no se puede atender
otra que llegue, algunas arquitecturas con manejo de interrupciones
sofisticadas permiten, mediante un esquema de prioridades, interrumpir un
servicio de interrupción para atender otra de mayor prioridad, por lo que,
aquellas interrupciones de menor o igual prioridad son des habilitadas.
Interrupción de E/S
Con el
fin de iniciar una operación de E/S la CPU carga los registros apropiados
dentro del controlador del dispositivo, el controlador a su vez examina el
contenido de estos registros para determinar que acción debe realizar, por
ejemplo, si se encuentra una solicitud de lectura, el controlador iniciara la
transferencia de datos del dispositivo a su buffer local, cuando haya terminado
de hacer esto el controlador informara al CPU que ha completado su operación,
esta comunicación se genera por medio de una interrupción.
No hay comentarios:
Publicar un comentario