INTERRUPCION
Una interrupción consiste en un mecanismo que
provoca la alteración del orden lógico de ejecución de instrucciones como
respuesta a un evento externo, generado por el hardware de entrada/salida en
forma asincrónica al programa que está siendo ejecutado.
Procesamiento
de una interrupción
·
Terminar la ejecución de la
instrucción máquina en curso.
·
Salvar el estado del procesador
(valores de registros y flags) y el valor del contador de programa, IP, en la
pila, de manera que en la CPU, al terminar el proceso de interrupción, pueda
seguir ejecutando el programa a partir de la última instrucción.
·
La CPU salta a la dirección donde
está almacenada la rutina de servicio de interrupción (Interrupt Service
Routine, o abreviado ISR) y ejecuta esa rutina que tiene como objetivo atender
al dispositivo que generó la interrupción.
·
Una vez que la rutina de la
interrupción termina, el procesador restaura el estado que había guardado en la
pila en el paso 2 y retorna al programa que se estaba usando anteriormente.
Tipos de interrupciones
1.
Interrupciones de hardware. Estas son asíncronas a la ejecución del procesador, es decir, se pueden
producir en cualquier momento independientemente de lo que esté haciendo el CPU
en ese momento
2.
Excepciones. Son aquellas que se producen de forma síncrona a la ejecución del
procesador. Normalmente son causadas al realizarse operaciones no permitidas
tales como la división entre 0, el desbordamiento, el acceso a una posición de
memoria no permitida, etc.
3.
Interrupciones por software. Son aquellas generadas por un programa en ejecución. Para generarlas,
existen distintas instrucciones en el código máquina que permiten al
programador producir una interrupción
Sistemas de prioridad
El sistema
operativo necesita un mecanismo para priorizar las interrupciones y tratar
primero las más urgentes. Para ello, existen varias alternativas:
§ Interrupciones simultáneas: No tienen por qué
ocurrir de manera simultánea sino que se refiere a que en un momento dado
pueden haber varias interrupciones activas.
§ Interrupciones anidadas: Mientras se está
procesando una determinada rutina de servicio de interrupción sucede otra señal
de interrupción.
§ Inhibición de interrupciones: Se deshabilitan
las demás interrupciones mientras se está tratando una.
Determinación de la fuente que genera la interrupción
Hay distintas
formas de identificar la fuente de una determinada interrupción.
v Polling: el microprocesador comprueba de
manera sistemática todos los dispositivos de manera que «busca» cuál de ellos
fue el que solicitó la interrupción.
v Interrupciones vectorizadas: Como ventajas
podemos destacar que suele ser rápido pero implica un alto costo en el
hardware.
v Hardware paralelo: se utiliza un registro de
interrupción cuyos bits se controlan de forma independiente por las señales de
petición de interrupción de cada periférico. Según la posición de cada bit en
el registro, se establece la prioridad.
Referencias:
Comentarios
Publicar un comentario