You are on page 1of 3

Interrupciones

Un dispositivo perifrico puede generar una seal elctrica llamada


interrupcin que modifica ciertas banderas que se encuentran en el CPU. La
deteccin de una interrupcin es parte del ciclo de instruccin. En cada ciclo
de instruccin, el CPU chequea las banderas hw para ver si algn dispositivo
necesita atencin.

Las interrupciones generadas por los dispositivos perifricos son


generalmente asncronos con respecto al programa que se est ejecutando.
Un evento es asncrono 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 ejecucin de un programa. En contraste, un
evento de error como la divisin por cero es sncrono en el sentido de que
siempre ocurre durante la ejecucin de una instruccin particular si el
mismo dato es presentado a la instruccin.

Las rutinas del Sistema de Operacin llamadas manejadores de dispositivos


usualmente manejan las interrupciones generadas por el dispositivo. Los
Sistemas de Operacin usan interrupciones pare implementer el tiempo
compartido. Tienen un dispositivo llamado timer que genera una
interrupcin despus de un intervalo especfico de tiempo. El Sistema de
Operacin inicializa el timer antes de actualizar el Program Counter pare
ejecutar un programa de un usuario. Cuando el timer expira, genera una
interrupcin causando que el CPU ejecute la rutina de servicio de la
interrupcin timer.

Un seal o signal es la notificacin por software de que un evento ocurri.


Por lo general es la respuesta del Sistema de Operacin. Por ejemplo, ctrl-C
genera una interrupcin para el manejador de dispositivo que maneja el
teclado. El manejador notifica al proceso apropiado mandando un signal. El
Sistema de Operacin tambien puede enviar signals a un proceso para
notificar la finalizacin de una E/S o de un error.

Las interrupciones pueden ser producidas por Hardware o por Software


Las interrupciones por Hw son producidas por un dispositivo y viajan por el
mismo bus del sistema.
Las interrupciones por Sw son producidas por medio de la ejecucin de una
operacin especial que se conoce como "llamada al sistema" (system call) o

por errores producidos dentro de un proceso, tambin conocidas como


excepciones.
Hay muchos tipos de interrupciones y pare cada uno de estas existe una
rutina en el sistema de operacin que le da servicio. Los sistemas de
operacin actuales permiten a los dispositivos tales como E/S o reloj del
sistema interrumpir el CPU asncronamente.

Pasos durante una interrupcin

El CPU suspende lo que estaba realizando. El hw transfiere el control al


sistema de operacin.
Deshabilita las interrupciones. Mientras se atiende una interrupcin no se
puede atender otra que llegue. Algunas arquitecturas con manejo de
interrupciones sofisticadas permiten, mediante un esquema de prioridades,
interrumpir un servicio de interrupcin para atender otra de mayor
prioridad. Aquellas interrupciones de menor o igual prioridad son
deshabilitadas.
El kernel del sistema de operacin salva el estado actual del proceso
interrumpido
Transfiere su ejecucin a una direccin fija. Esta direccin por lo general
contiene la direccin de comienzo donde la rutina de servicio de la
interrupcin se encuentra. Cada diseo de computador tiene su propio
mecanismo de interrupciones. Una forma de manejar las interrupciones es
invocando una rutina general que examine la informacin de la interrupcin
y determine el tipo de interrupcin ocurrida, y de alli llama a la rutina que se
encarga de atender dicha interrupcin. Por lo general se maneja mediante
un vector de interrupciones, indexado por el tipo de interrupcin. En este
vector se encuentra la direccin de comienzo de la rutina que da servicio a
dicho tipo. Se le conoce como vector de interrupcin. Otra forma de localizar
la rutina apropiada es mediante el pooling, es decir, preguntando a cada
dispositivo pare ver quien requiri el servicio.
Se ejecuta la rutina de interrupcin
Se restaura el estado anterior

Se habilitan las interrupciones.


La arquitectura de interrupciones debe tambin almacenar la direccin de la
instruccin interrumpida.

You might also like