Está en la página 1de 15

INTERRUPCIONES DE SOFTWARE Y HADWARE.

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.

Las interrupciones son un metodo del que disponen los dispositivos e incluso los
procesos para hacer notar a la CPU la aparicin de alguna circunstancia que
requiera su intervencin. De este modo, los dispositivos pueden provocar que la
CPU deje por el momento la tarea que estaba realizando y atienda la interrupcin.
Una vez atendida, seguira con su labor anterior.

Cuando no existan interrupciones, era el procesador el que tena 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 poda dedicar a otros procesos, lo que significa esto una
afectacin al rendimiento.

Por todo ello se. pens que lo mejor era que existiera una lnea especial entre el
procesador y los dispositivos, por la que los dispositivos indicaban al procesador
que ya estaban listos.
Cuando al procesador le llega una interrupcin, la atiende inmediatamente
dejando de hacer lo que estuviera haciendo, para poder atenderla de la forma
correcta, debe saber con anterioridad cmo tratarla. Las computadoras tienen en
un sitio conocido de memoria, las distintas rutinas de tratamiento para las
diferentes interrupciones, el procesador reconoce la interrupcin de la que se trata
y busca en memoria la rutina correspondiente.

Una vez terminado el tratamiento de la interrupcin, es muy importante que el


procesador siga con lo que estaba haciendo, es importante que antes de tratar la
interrupcin se guarde de alguna forma el estado en que se encuentra la
computadora, y al terminar la rutina de tratamiento se restaure el estado.

Se pueden distinguir dos tipos de interrupciones: interrupciones software e


interrupciones hardware; Las interrupciones software son provocadas por los
programas usando una funcin especial del lenguaje, tenen 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.
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.

Las interrupciones generadas por los dispositivos perifricos son generalmente


asncronos con respecto al programa que se est ejecutando. Un evento es
asncrono 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
ejecucin de un programa. En contraste, un evento de error como la divisin por
cero es sncrono en el sentido de que siempre ocurre durante la ejecucin de una
instruccin particular si el mismo dato es presentado a la instruccin.

Las rutinas del Sistema de Operacin llamadas manejadores de dispositivos


usualmente manejan las interrupciones generadas por el dispositivo. Los Sistemas
de Operacin usan interrupciones pare implementar el tiempo compartido. Tienen
un dispositivo llamado timer que genera una interrupcin despus de un intervalo
especfico de tiempo. El Sistema de Operacin inicializa el timer antes de
actualizar el Program Counter pare ejecutar un programa de un usuario. Cuando el
timer expira, genera una interrupcin causando que el CPU ejecute la rutina de
servicio de la interrupcin timer.

Un seal o signal es la notificacin por software de que un evento ocurri. Por lo


general es la respuesta del Sistema de Operacin. Por ejemplo, ctrl-C genera una
interrupcin para el manejador de dispositivo que maneja el teclado. El manejador
notifica al proceso apropiado mandando un signal. El Sistema de Operacin
tambin puede enviar signal a un proceso para notificar la finalizacin de una E/S
o de un error.

Las interrupciones pueden ser producidas por Hardware o por Software

Las interrupciones por Hw son producidas por un dispositivo y viajan por el mismo
bus del sistema.

Las interrupciones por Sw son producidas por medio de la ejecucin de una


operacin especial que se conoce como "llamada al sistema" (system call) o por
errores producidos dentro de un proceso, tambin conocidas como excepciones.

Hay muchos tipos de interrupciones y pare cada uno de estas existe una rutina en
el sistema de operacin que le da servicio. Los sistemas de operacin actuales
permiten a los dispositivos tales como E/S o reloj del sistema interrumpir el CPU
asncronamente.

Pasos durante una interrupcin

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.
El kernel del sistema de operacin salva el estado actual del proceso interrumpido,
transfiere su ejecucin a una direccin fija, esta direccin por lo general contiene
la direccin de comienzo donde la rutina de servicio de la interrupcin se
encuentra, cada diseo de computadora tiene su propio mecanismo de
interrupciones, una forma de manejar las interrupciones es invocando una rutina
general que examine la informacin de la interrupcin y determine el tipo de
interrupcin ocurrida, y de all llama a la rutina que se encarga de atender dicha
interrupcin.

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, se le conoce como vector de interrupcin, 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 interrupcin

Se restaura el estado anterior

Se habilitan las interrupciones

La arquitectura de interrupciones debe tambin almacenar la direccin de la


instruccin interrumpida.

1.- Dentro de un computador

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:

En este caso las interrupciones pueden darse:

Por Software: quiere decir que la interrupcin se hace por medio de una
instruccin del Sistema operativo que demanda la detencin del proceso o por una
instruccin del programa mismo que demanda la accin de otro dispositivo.

Por Hardware: se refiere a interrupciones provocadas por la accin de algn


elemento fsico ya sea por una falla, por requerirlo el circuito, por falta de energa
elctrica u otra causa que impida la continuacin 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 interrupcin.

2.- Es que haya llegado el fin lgico 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 interrupcin no
representa un mayor problema ya que solo puede darse cuando el programa que
se encuentra en proceso demanda a travs de una instruccin su propio fin.
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 que 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.

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 operacin el
control se devuelve al proceso del usuario, este caso se conoce como E/S
sincrnica, pero existe otra posibilidad llamada E/S asncrona 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.
Interrupciones de SOFTWARE.

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). Estas funciones tienen un nmero de interrupcin
software asociada, cuando un programa lanza una interrupcin de este tipo, la
CPU ejecuta su funcin de tratamiento asociada, por lo que debemos saber qu
es lo que hace cada interrupcin para conseguir el efecto deseado.
Las Interrupciones son principalmente subrutinas de la BIOS o el DOS que pueden
ser llamadas por un programa, su funcin es controlar el hardware, servir de
contacto entre los programas y las funciones del BIOS y del dos.

Las interrupciones de software pueden ser activadas directamente por el


ensamblador invocando al nmero de interrupcin deseada con la instruccin INT.

El uso de las interrupciones nos ayuda en la creacin de programas, utilizndolas


en programas, son ms cortos, es ms fcil entenderlos y usualmente tienen un
mejor desempeo debido en gran parte a su menor tamao.

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

El uso de las interrupciones nos


ayuda en la creacin de programas,
utilizndolas nuestros programas son
ms cortos, es ms fcil entenderlos y usualmente tienen un mejor desempeo
debido en gran parte a su menor tamao.

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.

Por ejemplo en un circuito llamado PIC 8259A si es controlado por la UCP


utilizando para tal control una serie de vas de comunicacin llamadas puertos:
Interrupcin 10H

Propsito: Llamar a diversas funciones de video del BIOS.

Sintaxis:

Int 10H

Esta interrupcin 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.

Funciones comunes de la interrupcin 10H.

02H Seleccin de posicin del cursor

09H Escribe atributo y carcter en el cursor

0AH Escribe carcter en la posicin del cursor

0EH Escritura de caracteres en modo alfanumrico

Funcin 02H

Uso: Posiciona el cursor en la pantalla dentro de las coordenadas vlidas de texto.

Registros de llamada: AH = 02H

BH = Pgina de video en la que se posicionar el cursor.

DH = Fila

DL = Columna

Funcin 09H

Uso: Desplegar un carcter un determinado nmero de veces con un atributo


definido empezando en la posicin actual del cursor.

Registros de llamada: AH = 09H


AL = Carcter a desplegar

BH = Pgina de video en donde se desplegar

BL = Atributo a usar

Esta funcin despliega un carcter el nmero de veces especificado en CX pero


sin cambiar la posicin del cursor en la pantalla.

Funcin 0AH

Uso: Desplegar un caracter en la posicin actual del cursor.

Registros de llamada: AH = 0AH

AL = Caracter a desplegar

BH = Pgina en donde desplegar

BL = Color a usar (slo en grficos).

CX = Nmero de repeticiones

La nica diferencia entre esta funcin y la anterior es que sta no permite


modificar los atributos, simplemente usa los atributos actuales. Tampoco se altera
la posicin del cursor con esta funcin.

Funcin 0EH

Uso: Desplegar un caracter en la pantalla actualizando la posicin del cursor.

Registros de llamada: AH = 0EH

AL = Caracter a desplegar

BH = Pgina donde se desplegara el caracter

BL = Color a usar (solo en grficos)


Interrupcin 16H

Propsito: Manejar la entrada/salida del teclado.

Sintaxis: Int 16H

La interrupcin 16H, son llamadas utilizando el registro AH.

Funciones de la interrupcin 16H

00H Lee un caracter de teclado

01H Lee estado del teclado

Funcin 00H

Uso: Leer un carcter del teclado.

Registros de llamada: AH = 00H

Registros de retorno: AH = cdigo de barrido (scan code) del teclado

AL = Valor ASCII del caracter.

Cuando se utiliza esta interrupcin se detiene la ejecucin 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 cdigo de barrido
ser guardado en AL y AH contendr el valor 00H.

Funcin 01H

Uso: Leer estado del teclado.

Registros de llamada: AH = 01H

Interrupcin 17H

Propsito: Manejar la entrada/salida de la impresora.


Sintaxis: Int 17H

Esta interrupcin es utilizada para escribir caracteres a la impresora, inicializarla y


leer su estado.

Funciones de la interrupcin 16H

00H Imprime un caracter ASCII

01H Inicializa la impresora

02H Proporciona el estado de la impresora

Funcin 00H

Uso: Escribir un caracter a la impresora.

Registros de llamada: AH = 00H

AL = Caracter a imprimir

DX = Puerto a utilizar

Registros de retorno: AH = Estado de la impresora.

El estado de la impresora se codifica bit por bit como sigue:

BIT 1/0 SIGNIFICADO

0 1 Se agot el tiempo de espera

3 1 Error de entrada/salida

4 1 Impresora seleccionada
5 1 Papel agotado

6 1 Reconocimiento de comunicacin

7 1 La impresora se encuentra libre

Los bits 1 y 2 no son relevantes.

La mayora de los BIOS nicamente soportan 3 puertos paralelos aunque existen


algunos que soportan 4.

ALUMNA : MARTHA COYOTL XINCAXTLE

MATERIA: SISTEMAS OPERATIVOS.

3ER. SEMESTRE ING. EN SISTEMAS COMPUTACIONLES.

INVESTIGACION: INTERRUPCIONES DE SOFTWARE Y HADWARE.

También podría gustarte