Академический Документы
Профессиональный Документы
Культура Документы
Las interrupciones son un metodo del que disponen los dispositivos e incluso los procesos para
hacer notar a la CPU la aparición de alguna circunstancia que requiera su intervención. De este
modo, los dispositivos pueden provocar que la CPU deje por el momento la tarea que estaba
realizando y atienda la interrupción. Una vez atendida, seguira con su labor anterior.
Cuando no existían interrupciones, era el procesador el que tenía que estar continuamente
comprobando el estado del dispositivo cuando lo necesitaba. Todo ese tiempo que el
procesador estaba sondeando el estado de los dispositivos era tiempo que no se podía dedicar
a otros procesos, lo que significa esto una afectación al rendimiento.
Por todo ello se. pensó que lo mejor era que existiera una línea especial entre el procesador y
los dispositivos, por la que los dispositivos indicaban al procesador que ya estaban listos.
Un dispositivo periférico puede generar una señal eléctrica llamada interrupción que modifica
ciertas banderas que se encuentran en el CPU. La detección de una interrupción es parte del
ciclo de instrucción. En cada ciclo de instrucción, el CPU revisa las banderas hardware para ver
si algún dispositivo necesita atención.
Las interrupciones generadas por los dispositivos periféricos son generalmente asíncronos con
respecto al programa que se está ejecutando. Un evento es asíncrono 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 ejecución de un programa. En contraste, un evento de
error como la división por cero es síncrono en el sentido de que siempre ocurre durante la
ejecución de una instrucción particular si el mismo dato es presentado a la instrucción.
Hay muchos tipos de interrupciones y pare cada uno de estas existe una rutina en el sistema
de operación que le da servicio. Los sistemas de operación actuales permiten a los dispositivos
tales como E/S o reloj del sistema interrumpir el CPU asíncronamente.
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, por lo que, 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, cada diseño de
computadora tiene su propio mecanismo de interrupciones, 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 allí llama a la rutina que se encarga de
atender dicha interrupción.
Cuando una computadora se encuentra realizando un proceso este puede interrumpirse por
cualquiera de las dos causas siguientes:
1.- Que se haya presentado una causa que impida que siga adelante un trabajo o un programa
que no haya terminado:
Por Software: quiere decir que la interrupción se hace por medio de una instrucción del
Sistema operativo que demanda la detención del proceso o por una instrucción del programa
mismo que demanda la acción de otro dispositivo.
Por Hardware: se refiere a interrupciones provocadas por la acción de algún elemento físico ya
sea por una falla, por requerirlo el circuito, por falta de energía eléctrica u otra causa que
impida la continuación de un programa dado algunas de estas fallas pueden ser manejadas por
el sistema operativo ya sea por normalizar el proceso o para indicar al operador la causa de la
interrupción.
2.- Es que haya llegado el fin lógico de un programa o de un trabajo: en este caso el sistema
operativo debe retirar el control al programa que ha terminado de introducir una nueva tarea
si se tiene alguna espera esta interrupción no representa un mayor problema ya que solo
puede darse cuando el programa que se encuentra en proceso demanda a través de una
instrucción su propio fin.
5.2.2. Interrupción de E/S
Con el fin de iniciar una operación 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 que acción 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
operación, esta comunicación se genera por medio de una interrupción.
Esto caso se da en general como resultado de una solicitud de E/S por parte de un proceso del
usuario, una vez iniciada la E/S; luego al completarse la operación el control se devuelve al
proceso del usuario, este caso se conoce como E/S sincrónica, pero existe otra posibilidad
llamada E/S asíncrona que devuelve el control al programa del usuario sin esperar que se
complete la E/S así esta puede continuar mientras se realizan otras operaciones del sistema.
5.2.3 Interrupciones de programa
Las interrupciones software son provocadas por los programas usando una función especial
del lenguaje, tienen como objetivo el que la CPU ejecute algún tipo de función, al terminar de
ejecutarse esta función, se seguirá ejecutando el programa que provocó la interrupción.
Este tipo de interrupciones es la forma más importante que tendrán los programas de ejecutar
funciones especiales del DOS (Disk Operating System) o del BIOS (Basic Input Output System).
Estas funciones tienen un número de interrupción software asociada, cuando un programa
lanza una interrupción de este tipo, la CPU ejecuta su función de tratamiento asociada, por lo
que debemos saber qué es lo que hace cada interrupción para conseguir el efecto deseado.
Las Interrupciónes son principalmente subrutinas de la BIOS o el DOS que pueden ser llamadas
por un programa, su función es controlar el hardware, servir de contacto entre los programas y
las funciones del BIOS y del dos.
Este tipo de interrupciones podemos separarlas en dos categorías: las interrupciones del
sistema operativo DOS y las interrupciones del BIOS.
La diferencia entre ambas es que las interrupciones del sistema operativo son más fáciles de
usar pero también son más lentas ya que estas interrupciones hacen uso del BIOS para lograr
su cometido, en cambio las interrupciones del BIOS son mucho más rápidas pero tienen la
desventaja que, como son parte del hardware son muy específicas y pueden variar
dependiendo incluso de la marca del fabricante del circuito.
La elección del tipo de interrupción a utilizar dependerá únicamente de las características que
le quiera dar a su programa: velocidad (utilizando las del BIOS) o portabilidad (utilizando las del
DOS).
5.2.4 Interrupciones externas
Las interrupciones externas las generan los dispositivos periféricos, como pueden ser: teclado,
impresoras, tarjetas de comunicaciones; también son generadas por los coprocesadores.
Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito
integrado cuya función es exclusivamente manejar este tipo de interrupciones.
Por ejemplo en un circuito llamado PIC 8259A si es controlado por la UCP utilizando para tal
control una serie de vías de comunicación llamadas puertos:
Interrupción 10H
Int 10H
Esta interrupción tiene diversas funciones, todas ellas nos sirven para controlar la entrada y
salida de video, la forma de acceso a cada una de las opciones es por medio del registro AH.
Función 02H
DH = Fila
DL = Columna
Función 09H
AL = Carácter a desplegar
BL = Atributo a usar
Esta función despliega un carácter el número de veces especificado en CX pero sin cambiar la
posición del cursor en la pantalla.
Función 0AH
AL = Caracter a desplegar
CX = Número de repeticiones
La única diferencia entre esta función y la anterior es que ésta no permite modificar los
atributos, simplemente usa los atributos actuales. Tampoco se altera la posición del cursor con
esta función.
Función 0EH
AL = Caracter a desplegar
Interrupción 16H
Función 00H
Uso: Leer un caracter del teclado.
Cuando se utiliza esta interrupción se detiene la ejecución del programa hasta que se
introduzca un caracter desde el teclado, si la tecla presionada es un caracter ASCII su valor será
guardado en el registro AH, de lo contrario el código de barrido será guardado en AL y AH
contendrá el valor 00H.
Función 01H
Interrupción 17H
Función 00H
DX = Puerto a utilizar
3 1 Error de entrada/salida
4 1 Impresora seleccionada
5 1 Papel agotado
6 1 Reconocimiento de comunicación
La mayoría de los BIOS únicamente soportan 3 puertos paralelos aunque existen algunos que
soportan 4.