Tipos de interrupciones
Enviado por guveli_17 • 24 de Junio de 2014 • 1.550 Palabras (7 Páginas) • 368 Visitas
TIPOS DE INTERRUPCIONES
(1) Interrupción por errores o por daños en la máquina => fallo en la alimentación eléctrica; error de
paridad en memoria.
(2) Interrupción por causa del programa (o desvío) => instrucción o dirección incorrecta; operaciones
imposibles; desbordamiento de capacidad; división por cero, etc; intentos de ejecución de
instrucciones o de escritura en memoria no permitidos por el estado de la máquina.
(3) Interrupción por entrada/salida => generada por el canal para avisar fin de una operación E/S o de
una falla ocurrida en el transcurso de E/S.
(4) Interrupción externa => utilizada para avisar a la máquina acerca de cualquier modificación
interesante del medio exterior, especialmente en control de procesos industriales.
(5) Interrupción de recuento => para contar impulsos procedentes de un reloj.
Determinados procesadores presentan una sola posibilidad de interrupción, en cuyo caso se
pasarán todas las causas de interrupción a través de un OR lógico y el programa de interrupción
deberá comenzar por comprobar un conjunto de indicadores, para detectar cual puede ser la causa de
la misma.
Programa de interrupción
Interrupción
OR Prueba de los estados
Causas de interrupción
Subprogramas de tratamiento
de causa de interrupción
Fin programa de interrupción
Interrupción Tratada
EJEMPLO: INTERRUPCIONES DEL SISTEMA EN IBM-PC 8086.
Existen dos entradas de interrupciones
NMI (no enmascarables)
INTR (enmascarables)
Esta clasificación viene dada por su ejecución.
Interrupciones no enmascarables son aquellas que deberán ejecutarse obligatoriamente sin
tener que esperar, están ligados a tareas en el sistema que no se pueden retrasar como son las rutinas
de bajada del sistema por corte de energía, chequeo de la integridad de memoria, etc.
Interrupciones enmascarables se ejecutan a solicitud del periférico correspondiente siempre
que en el registro de status (FLAGS REGISTER) del procesador las interrupciones estén habilitadas.
En el caso de no estarlo la solicitud será ignorada y la CPU continuará con lo que estaba realizando.
3/8
En nuestro ejemplo las fuentes de las interrupciones no enmascarables son 3, y pueden
provenir del coprocesador matemático INTEL 8087, falla en la paridad de memoria RAM o falla en
algún canal de E/S. Aunque en la práctica se los puede enmascarar por Software => usa una
compuerta AND para habilitar la solicitud.
MICRO PROCESADOR 8086
8087
OR Chequeo paridad
AND memoria
Chequeo canal E/S
NMI
INTR Máscara por software
8259A Controlador de
Interrupciones
7 6 5 4 3 2 1 0
Contador de Tiempo
Teclado
Sin uso
Sin uso
Puerta serial
Sin uso
Interfaz drive
diskette
Interfaz conexión
impresora
Las interrupciones enmascarables son manejadas por el controlador de interrupciones 8259A.
Es el encargado de priorizar las solicitudes mediante lógica propia. De esta forma ejecutará primero
las de alta prioridad independientemente del orden de llegada, se llega al caso de que una
interrupción puede ser interrumpida a su vez por otro de mayor prioridad.
El 8259A es programable y puede administrar hasta 8 interrupciones. Cuando esta pastilla
recibe la señal "IACK" del procesador procede a entregar una dirección de 10 BITS de largo que
corresponde a la posición en la tabla de interrupciones donde se encuentra la dirección de la rutina
que atenderá al periférico.
La dirección entregada a la CPU tiene el siguiente formato.
4/8
Fijos por
Programables Interrupción Hardware
A9 A8 A7 A6 A5 L3 L2 L1 F1 F2
X X X X X X X X 0 0
Los BITS F1 y F2 fijados por Hardware en cero con el objeto de asegurar un espacio de 4 Byte por
interrupción.
Esto se necesita para especificar la dirección dentro de la IBM-PC que son 2 palabras de 16
bits; una para la dirección de segmento y la segunda para la dirección de desfase.
Los Bits L3, L2, L1 asumen un valor de 0 a 7 correspondiente a la interrupción solicitada. Los
Bits A9, A8, A7, A6 y A5 son fijadas por software al inicializar el 8259A. Para la PC corresponde al
valor 00001 y es leído al momento de Bootstrap o partida del equipo. Las interrupciones provenientes
del 8259 son enmascarables por software directamente, las instrucciones en el INTEL 8086/88 son
las instrucciones STI y CLI, la primera habilita las interrupciones y la segunda las deshabilita.
El Concepto de interrupción en IBM es extensible al software. Tal que muchas rutinas del
sistema operativo funcionan en base a interrupciones. La ventaja es que siendo la interrupción una
llamada indirecta a una rutina, es posible cambiar la extensión y ubicación de la rutina en la memoria
y esta modificación será transparente al usuario.
Este llamará siempre a la misma interrupción, buscando en la misma entrada de tabla de
interrupciones pero el contenido de ésta podrá variar direccionando a distintas áreas de la memoria
según sea el deseo del usuario.
Interrupción
Chequeo paridad memoria RAM en tablero madre
NMI Chequeo canales E/S
Interrupción procesador 8087
IRQ0 Salida contador de tiempo 8253-5, canal 0
IRQ1 Teclado
IRQ2 No se usa
IRQ3 No se usa
INTR IRQ4 Puerta serial RS-232
IRQ5 No se usa
IRQ6 Drive diskette (Status)
IRQ7 Puerta paralela (BIOS no la usa)
Las instrucciones por software se ejecutan utilizando la instrucción INT XX. "XX" es un
número hexadecimal que multiplicado por 4 nos entrega la dirección de la entrada de la interrupción
5/8
en la tabla correspondiente. El segmento de la dirección por definición es cero. De tal manera que si
la CPU se encuentra con la instrucción INT 20H esta va a la dirección 0000:0080 (20x4=804) y
desde allí obtiene la dirección de la rutina a ejecutar.
Por otra parte la instrucción "CALL" se caracteriza porque el program counter salta en forma
directa a la rutina mencionada.
...