Sei sulla pagina 1di 13

m Interrupciones del hardware.

m Interrupciones del software.

m Excepciones del procesador .


m acurren cuando un dispositivo necesita
atención del procesador y genera una
señal eléctrica en la línea IRQ que tiene
asignada. Esta señal es recogida y
procesada por el controlador de
excepciones {  antes de ser enviada al
procesador, lo que puede realizarse de
dos formas, según el tipo de interrupción
sea enmascarable o no enmascarable.

    
ignifica que, bajo control del software, el procesador
puede aceptar o ignorar (enmascarar) la señal de
interrupción. Para ello se envía una señal a la patilla
 , y el procesador la atiende o la ignora en función
del contenido de un bit (IF) en un registro (FLAG) que
puede estar habilitado o deshabilitado.


     
significa que la interrupción no puede ser deshabilitada
por software. Este tipo de interrupciones ocurren
cuando se recibe una señal en la patilla 
("Nonmaskable Interrupt" §5 ) del procesador. e
reservan para casos en que es crítica la respuesta, por
ejemplo que se detecte un error de paridad en la
memoria. Además son de prioridad más alta que las
enmascarables.
Los procesadores Intel de la gama x86 y
compatibles, disponen de una instrucción 
que permite generar por software cualquiera
de los 256 tipos de interrupción anteriormente
descritos (§2 ). El proceso seguido es
exactamente el mismo que si se recibe una
interrupción hardware en la patilla INTR, salvo
que en este caso se conoce el tipo de
interrupción, y no se requiere ningún ciclo
INTA. Por ejemplo, en lenguaje ensamblador,
la instrucción INT 21 invoca la interrupción 33d
(21h), que en M a es la llamada a los
servicios del istema.
Este tipo de interrupciones son de prioridad más alta que las
de hardware (enmascarables y no enmascarables), de forma
que si se recibe una interrupción hardware mientras que se
ejecuta una software, esta última tiene prioridad.

Este tipo de interrupciones son utilizadas tanto por el istema


aperativo como por los programas de usuario que pueden
instalar las suyas particulares (hemos señalado , que algunas
de las 255 posiciones de la tabla de vectores de interrupción
están desocupadas).

Precisamente, aquellas posiciones de la  que señalan a


posiciones dentro de la RaM Ia (por encima de la
dirección F0000h ) se refieren a interrupciones
relacionadas con servicios de la Ia, mientras que las
situadas en la zona de     , se refieren a
interrupciones instaladas por el istema o los programas de
aplicación.
urante el funcionamiento del procesador pueden
ocurrir circunstancias excepcionales; es usual citar
como ejemplo el caso de una división por cero. En
estos casos, el procesador genera una 
,
que es tratada como si fuese una interrupción
software (§6.2 ), con la diferencia de que el número
de interrupción asociado depende del tipo de
excepción.

En el caso de la división por cero el número


asociado es cero. Este era el único tipo de
excepción de procesador prevista en el 8088, pero
en los modelos sucesivos de la saga x86 y Pentium
esta posibilidad fue ampliándose paulatinamente.
a     

m 1º: Excepciones del procesador.


m 2º: Interrupciones software.
m 3º: Interrupciones hardware no
enmascarables.
m 4º: Interrupciones hardware
enmascarables.
m à

El sistema de interrupciones es una excepción en lo que a
evolución se refiere. A partir de la introducción del segundo
controlador 8259A en 1.984, el diseño ha permanecido
invariable. La razón es que su modificación supondría un
cambio demasiado drástico en la arquitectura del PC, con
un parque de millones de sistemas y periféricos instalados
con millones de programas y istemas aperativos
funcionando que no podrían ser trasladados "tal cual" a las
nuevas máquinas
m     

La especificación {{ antes comentada, aunque


simplificaba las cosas, en realidad no resolvía el
problema de fondo: la escasez de ciertos recursos,
principalmente líneas de interrupción. Por lo que
al desarrollar la interfaz { ( 6.4), Intel incluyó la
posibilidad de que estos dispositivos pudieran
compartir la misma IRQ.

A continuación se muestra la distribución de IRQs


en un sistema Linux dotado de bus PCI, tal como
se obtiene con el comando   señalado
anteriormente . (se han resaltado las sentencias
interesantes) :
PCI: Using IRQ router PIIX [8086/7110] at 00:02.0
PCI: Found IRQ 11 for device 00:03.0
{  !"     # " $$$%
{  !"     # " $$$$
erial driver version 5.05c (2001 07 08) with HU 6
MANY_PaRT MULTIPaRT HARE_IRQ ERIAL_PCI enabled
PIIX4: not 100% native mode: will probe irqs later
ide0 at 0x1f0 0x1f7,0x3f6 on irq 14
ide1 at 0x170 0x177,0x376 on irq 15
PCI: Found IRQ 11 for device 00:02.2
usb uhci.c: U UHCI at I/a 0x1060, IRQ 11
PCI: Found IRQ 11 for device 00:03.0
{  !"     # " $$$%
{  !"     # " $$$$
PCI: Found IRQ 11 for device 00:03.1
{  !"     # " $$$%$
{  !"     # " $$$$
Yenta IRQ list 0698, PCI irq11
Yenta IRQ list 0698, PCI irq11
eth0: AboCom FE2000VX (RealTek RTL8139) at 0xd0afa000,
00:4f:62:01:5c:7a, IRQ 11
eth1: Xircom: port 0x300, irq 3, hwaddr 00:10:A4:01:FF:F1
tty03 at port 0x02e8 (irq = 3) is a 16550A
PCI: Found IRQ 5 for device 00:07.0
Puede apreciarse que los dispositivos PCI comparten las
IRQ11 e IRQ5. Como es habitual, las controladoras IE
primaria y secundaria, identificadas aquí como ide0 e ide1,
utilizan IRQ14 e IRQ15. Los dispositivos identificados como
"$ y " son sendas tarjetas de red. &!$% es un puerto
serie cuya UART es una 16550ª. ' se refiere al tipo de
controladora de conexión de los dispositivos PCMCIA (se
trata de un equipo portátil que dispone de este tipo de
bahías).

Potrebbero piacerti anche