Interrupción
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.
Interrupción
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.
Pasos
durante una interrupción
El CPU
suspende lo que estaba realizando. El hw transfiere el control al sistema de
operación.
Deshabilita
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. Aquellas
interrupciones de menor o igual prioridad son deshabilitadas.
El kernel
del sistema de operación salva el estado actual del proceso interrumpido
Transfiere
su ejecución a una dirección fija. Esta dirección por lo general contiene la
dirección de comienzo donde la rutina de servicio de la interrupción se
encuentra. Una forma de manejar las interrupciones es invocando una rutina
general que examine la información de la interrupción y determine el tipo de
interrupción ocurrida, y de alli llama a la rutina que se encarga de atender
dicha interrupción. Por lo general se maneja mediante un vector de
interrupciones, indexado por el tipo de interrupción. En este vector se
encuentra la dirección de comienzo de la rutina que da servicio a dicho tipo.
Se le conoce como vector de interrupción. 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 interrupción
Se
restaura el estado anterior
Se
habilitan las interrupciones.
La
arquitectura de interrupciones debe también almacenar la dirección de la
instrucción interrumpida.
Pasos
durante una interrupción
El CPU
suspende lo que estaba realizando. El hw transfiere el control al sistema de
operación.
Deshabilita
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. Aquellas
interrupciones de menor o igual prioridad son deshabilitadas.
El kernel
del sistema de operación salva el estado actual del proceso interrumpido
Transfiere
su ejecución a una dirección fija. Esta dirección por lo general contiene la
dirección de comienzo donde la rutina de servicio de la interrupción se
encuentra. Una forma de manejar las interrupciones es invocando una rutina
general que examine la información de la interrupción y determine el tipo de
interrupción ocurrida, y de alli llama a la rutina que se encarga de atender
dicha interrupción. Por lo general se maneja mediante un vector de
interrupciones, indexado por el tipo de interrupción. En este vector se
encuentra la dirección de comienzo de la rutina que da servicio a dicho tipo.
Se le conoce como vector de interrupción. 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 interrupción
Se
restaura el estado anterior
Se
habilitan las interrupciones.
La
arquitectura de interrupciones debe también almacenar la dirección de la
instrucción interrumpida.
No hay comentarios.:
Publicar un comentario