Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
12280085
Lenguaje de Interfaz
Interrupciones
Una interrupcin es un mecanismo que permite ejecutar un bloque de instrucciones
interrumpiendo la ejecucin de un programa, y luego restablecer la ejecucin 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 ejecucin de
manera normal y como si nada hubiera pasado.
Pasos durante una interrupcion
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, por lo que, aquellas interrupciones de menor o igual prioridad son deshabilitadas.
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.
Tipos de Interrupciones
Interrupcin de E/S
Con el fin de iniciar una operacin 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 qu accin 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 operacin, esta
comunicacin se genera por medio de una interrupcin.
Interrupciones de programa
Las interrupciones software son provocadas por los programas usando una funcin especial del
lenguaje, tienen como objetivo el que la CPU ejecute algn tipo de funcin, al terminar de
ejecutarse esta funcin, se seguir ejecutando el programa que provoc la interrupcin.
Este tipo de interrupciones es la forma ms importante que tendrn los programas de ejecutar
funciones especiales del DOS (Disk Operating System) o del BIOS (Basic Input Output System).
Este tipo de interrupciones podemos separarlas en dos categoras: las interrupciones del sistema
operativo DOS y las interrupciones del BIOS.
La diferencia entre ambas es que las interrupciones del sistema operativo son ms fciles de
usar pero tambin son ms lentas ya que estas interrupciones hacen uso del BIOS para lograr su
cometido, en cambio las interrupciones del BIOS son mucho ms rpidas pero tienen la
desventaja que, como son parte del hardware son muy especficas y pueden variar dependiendo
incluso de la marca del fabricante del circuito.
La eleccin del tipo de interrupcin a utilizar depender nicamente de las caractersticas que
le quiera dar a su programa: velocidad (utilizando las del BIOS) o portabilidad (utilizando las del
DOS).
Interrupciones externas
Las interrupciones externas las generan los dispositivos perifricos, como pueden ser: teclado,
impresoras, tarjetas de comunicaciones; tambin son generadas por los coprocesadores.
Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito
integrado cuya funcin es exclusivamente manejar este tipo de 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 revisa las banderas hardware para ver
si algn dispositivo necesita atencin.
Registro de Banderas
Es un registro de 16 bits, de los cuales nueve sirven para indicar el estado actual de la mquina
y el resultado del procesamiento. Muchas instrucciones aritmticas y de comparacin cambian
el estado de las banderas y apoyndose en ellas se pueden tomar decisiones para determinar la
accin subsecuente.
La tabla contiene 16 posiciones (de 0 a 15), que son los 16 bits del registro de banderas,
numeradas de derecha a izquierda. La posicin 0 la encontraremos a la derecha y la posicin 15
a la izquierda.
Los bits de las banderas son las siguientes:
OF (overflow, desbordamiento): Indica desbordamiento del bit de mayor orden despus de una
operacin aritmtica de nmeros con signo (1=existe overflow; 0=no existe overflow).
DF (direccin): Controla la seleccin de incremento o decremento de los registros SI y DI en las
operaciones con cadenas de caracteres (1=decremento automtico; 0=incremento). La bandera
DF se controla con las instrucciones STD y CLD.