Академический Документы
Профессиональный Документы
Культура Документы
INTERRUPCIONES
INTERRUPCIONES
Concepto de interrupcin
Los manejadores de interrupciones son una parte crucial de los sistemas. Podra
decirse que son responsables de la sincronizacin de proceso. Una computadora
personal cuenta con 256 interrupciones y manejadores de interrupciones, a los
que se tiene acceso por medio de la tabla de vectores de interrupciones residente
en los bytes inferiores de la memoria (direcciones 0000h a 0400h).
INTERRUPCIONES
TIPOS DE INTERRUPCIONES
FALLO DE
PROGRAMA TEMPORIZACIN E/S
HARDWARE
Generadas por
Generadas por alguna Generadas por
un controlador
condicin que se un
produce como resultado de E/S, para Generadas por
de la ejecucin de una temporizador
indicar la un fallo, como
instruccin, tal como interno al
desbordamiento finalizacin la falta de
aritmtico (overflow), procesador.
normal o con potencia de
divisin por cero, Esto permite al
intento de ejecutar una problemas de alimentacin o
instruccin mquina sistema
una operacin un error de
inexistente e intento de operativo
acceder fuera del o para avisar de paridad en la
espacio de memoria realizar ciertas
ciertas memoria
permitido para el funciones de
usuario condiciones de
manera regular
error
INTERRUPCIONES
CLASIFICACIN DE INTERRUPCIONES
1. Interrupciones de hardware:
Estas son asncronas a la ejecucin del procesador, es decir, se pueden producir
en cualquier momento independientemente de lo que est haciendo el CPU en
ese momento. Las causas que las producen son externas al procesador y a
menudo suelen estar ligadas con los distintos dispositivos de E/S.
Por ejemplo:
INT 19h - reinicio del sistema.
INT 20h - Salida para sistema operativo.
INT 21h - Interrupcin DOS.
INT 21h / AH = 9 - Salida de una cadena en DS: DX . Cadena debe
terminar con ' $ '.
INTERRUPCIONES
CLASIFICACIN DE INTERRUPCIONES
3. Excepciones:
En el caso de la divisin por cero el nmero asociado es cero. Este era el nico
tipo de excepcin de procesador prevista en el 8088, pero en los modelos
sucesivos de la saga x86 y Pentium esta posibilidad fue amplindose poco a
poco o paulatinamente.
INTERRUPCIONES
Ejemplo interrupciones
Ejemplo, ya sabemos que la mayora de los dispositivos externos son mas lentos
que la CPU, imaginemos la CPU imprimiendo un documento.
Un procesador que opera a 200 MHz (tiempo 1 ciclo reloj = 5ns;Asumiendo que los ciclos por
instruccin CPU = 2 ciclos en promedio).
Una instruccin tarda en promedio 2 x 5ns = 10ns en ejecutarse.
La computadora puede ejecutar hasta 100 Mips.
Queremos imprimir un archivo de 10 Kbytes en una impresora lser de 20 pginas por minuto:
La CPU entra en un bucle y enva un byte cada vez que la impresora est
preparada para recibirlo.
La impresora tarda 10 segundos en imprimir 10 Kbytes.
La CPU est ocupada con la operacin de E/S durante 10 seg. (en ese
tiempo la CPU podra haber ejecutado 1000 millones de instrucciones)
Con el uso de interrupciones la CPU no tiene que esperar, mandara los datos
a la impresora y seguira haciendo alguna tarea productiva.
INTERRUPCIONES
Ejemplo interrupciones
Con interrupciones:
La impresora genera una interrupcin cada vez que est preparada para recibir un
nuevo byte.
Suponiendo que la gestin de interrupcin (RTI = Retorno de interrupcin) consume
10 instrucciones. (salvar contexto, comprobar estado, transferir byte, restaurar
contexto, Retorno de instruccin (RTI)).
Para transferir 10 Kbytes tenemos que ejecutar 10.000 veces la RTI
ejecutar 100.000 instrucciones para atender al perifrico
la CPU tarda 0,001 seg .
La CPU est ocupada con la operacin de E/S durante 0,001 seg.
La E/S por interrupciones reduce en 10.000 veces el tiempo que la CPU est ocupada
gestionando la impresora.
Esta diferencia es tan marcada porque el perifrico es realmente muy lento, con
perifricos rpidos, solo con las interrupciones no alcanza para solucionar el problema.
INTERRUPCIONES
Control de Flujo del Programa sin interrupciones
En la siguiente imagen se muestra el tiempo que
utiliza la CPU en un perifrico, la lnea punteada nos
marca en que se estara utilizando el CPU.
Manejador de
Interrupciones
Programa
Interrupcin
INTERRUPCIONES
Ciclo de Interrupciones
Para tratar las interrupciones , se agrega al ciclo de instruccin una fase de interrupcin.
Interrupciones
inhabilitadas
Captura
INICIO Ejecuta Comprobacin de interrupcin;
siguiente interrupcin del proceso
instruccin Interrupciones
instruccin
habilitadas
PARADA
Si no hay interrupcin, el procesador continua con la fase de bsqueda de prxima instruccin de programa que
esta en proceso.
1. Definir prioridades
Los manejadores de interrupciones de baja prioridad pueden
ser interrumpidos por interrupciones de mayor prioridad.
Una vez que se ha procesado la interrupcin de mayor
prioridad, se retorna al manejador de la interrupcin previa
2. Deshabilitar interrupciones
El procesador ignorar las interrupciones mientras se procesa
otra interrupcin.
Las interrupciones quedan pendientes y son atendidas una
vez que la primera interrupcin ha sido procesada.
Las interrupciones son manejadas en secuencia.
INTERRUPCIONES
Mltiples Interrupciones - Secuencial
AH OPERACIN Detalle
AH OPERACIN Detalle
0E Selecciona unidad de DL = nmero de unidad de disco; AL
disco por omisin = nmero total de unidades de
discos presentes.
Unidad de disco A = 00h, B = 01h, C
= 02h, etc
2A Lee fecha del sistema AL = da de la semana; CX = ao; DH
= mes; DL = da del mes (domingo =
00; sbado = 06)
AH OPERACIN Detalle
AH OPERACIN Detalle
AH OPERACIN Detalle
AH OPERACIN Detalle
40 Escribe un archivo CX = nmero de bytes a
escribir; BX = asa del
archivo; DS: DX = direccin
del buffer de archivo que
contiene lo datos a escribir
41 Borra archivo DS: DX = direccin de cadena
ASCII del nombre del archivo