ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Tipos de interrupciones


Enviado por   •  24 de Junio de 2014  •  1.550 Palabras (7 Páginas)  •  368 Visitas

Página 1 de 7

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.

...

Descargar como (para miembros actualizados) txt (11 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com