Tipos de Interrupciones
Tipos de Interrupciones
Tipos de Interrupciones
En este subapartado vamos a hacer una clasificacin de las distintas clases de interrupciones que nos podemos encontrar atendiendo a la fuente que las produce. Por un lado distinguiremos si se producen por causas internas o externas al procesador y remarcaremos que este hecho est ntimamente ligado con que las interrupciones sean sncronas o asncronas:
Interrupciones hardware: Estas son asncronas a la ejecucin del procesador, es decir, se pueden producir en cualquier momento independientemente de lo que est haciendo la CPU en ese momento. Las causas que lo producen son externas al procesador y a menudo suelen estar ligadas con distintos dispositivos de E/S.
Interrupciones software o excepciones : Son aquellas que se producen de forma sncrona a la ejecucin del procesador y por tanto podran predecirse si se analiza con detenimiento la traza del programa que en ese momento estaba siendo ejecutado en la CPU. Normalmente las causas de estas interrupciones suelen ser realizaciones de operaciones no permitidas tales como la divisin por 0, el desbordamiento, el acceso a una posicin de memoria no permitida, etc.
Trampas: A menudo se tiende a confundir las interrupciones software y las trampas, ya que su naturaleza es bastante similar. Sin embargo las excepciones se producen al realizar una operacin no permitida por lo que de algn modo podemos decir que no es controlada directamente por el programador si no que, por un fallo al programar, se producen. No obstante las trampas si que son provocadas por el programador, para provocar una trampa existen distintas instrucciones en el repertorio mquina que permiten al programador producir una interrupcin al ejecutar dicha instruccin. Suelen tener nemotcnicos tales como INT. Suelen ser de vital importancia ya que a partir de las trampas se pueden pedir al SO que realice determinadas funciones, para ello, en DOS se realiza la instruccin INT 0x21 y en Unix se utiliza INT 0x80. [editar]Interrupciones hardware Son interrupciones que se producen como resultado de, normalmente, una operacin de E/S. No son producidas por ninguna instruccin si no que son seales que producen los dispositivos para indicarle al procesador que necesitan ser 'atendidos'. Las interrupciones hardware son interesantes en cuanto a que permiten mejorar la productividad del procesador ya que este ltimo puede ordenar una operacin de E/S y en lugar de tener que esperar a que el dispositivo acabe realizando una espera activa, es decir, sin hacer ningn trabajo til, se puede dedicar a atender a otro proceso o aplicacin y cuando el dispositivo este de nuevo disponible ser el encargado de
notificarle al procesador mediante la lnea de interrupcin ya que est preparado para continuar/terminar la operacin de E/S. [editar]Interrupciones software o excepciones Es un tipo de interrupcin sincrnica tpicamente causada por una condicin de error, por ej. una divisin por 0 o un acceso invlido a memoria en un proceso de usuario. Normalmente genera un cambio de contexto a modo supervisor para que el sistema operativo atienda el error. De manera que podemos ver como las excepciones son un mecanismo de proteccin que permite garantizar la integridad de los datos tanto en el espacio de usuario como en el espacio kernel. El SO cuando detecta una excepcin intenta solucionarla pero en caso de no poder simplemente notificar la condicin de error a la aplicacin y abortar la misma.
[editar]Trampas En este apartado se consideran las llamadas al sistema operativo mediante una instruccin, normalmente de Entrada/Salida. Una interrupcin por software, se prev en qu momento de la ejecucin de un programa suceder. En general acta de la siguiente manera:
. Un programa que se vena ejecutando luego de su instruccin I5, llama al Sistema Operativo, por ejemplo para leer un archivo de disco. . A tal efecto, luego de I5 existe en el programa, la instruccin de cdigo de mquina CD21, simbolizada INT 21 en Assembler, que realiza el requerimiento del paso 1. Puesto que no puede seguir le ejecucin de la instruccin I6 y siguientes del programa hasta que no se haya ledo el disco y est en memoria principal dicho archivo, virtualmente el programa se ha interrumpido, siendo, adems, que luego de INT 21, las instrucciones que se ejecutarn no sern del programa, sino del Sistema Operativo. . La ejecucin de INT 21 permite hallar la subrutina del Sistema Operativo. . Se ejecuta la subrutina del Sistema Operativo que prepara la lectura del disco. . Luego de ejecutarse la subrutina del Sistema Operativo, y una vez que se haya ledo el disco y verificado que la lectura es correcta, el Sistema Operativo ordenar reanudar la ejecucin del programa autointerrumpido en espera. . La ejecucin del programa se reanuda.