Volver a la portada de Duiops
Volver al Web de Duiops
 
   
Menú
Secciones destacadas
Artículos y FAQs
Trucos de Windows
Versiones de Windows
y suites de software
Windows Vista
Windows Media Center
Windows XP
Windows 2000
Windows Millenium
Windows 98/98 SE
Windows 95 OSR-2
Internet Explorer
Office
Otros
Tutorial muy básico
   
Portada
Portada - Artículos y FAQs - IRQs, conflictos y otras historias
 
IRQs, conflictos y otras historias

 

Por Jose Manuel Tella Llop, extraído de microsoft.public.es.windows98

Voy a intentar aclarar las confusiones que existen con la compartición de IRQs. Han surgido varias preguntas y respuesta que no han sido correctas en este foro y sobre todo cuando se verifican conflictos o posibles conflictos en Windows.

Un interrupción es una petición FISICA -hardware- (no es una petición LOGICA), desde un dispositivo para llamar la atención de la CPU. En el momento que se emite una interrupción (señal electrica por una linea fisica de interrupcion), esta llage a un circuito tambien fisico: el controlador programable de interrupciones. Este chip está unido directamente con las patillas fisicas del procesador (CPU) y una vez que ha establecido la prioridad (en el caso de recibir mas de una simultaneamente) de la interrupcion se la comunica al procesador. Este lo unico que hace en ese momento, es parar la ejecución de lo que está haciendo y cede el control a la rutina del sistema operativo (no es a la rutina del "driver", ya que esta será o no llamado por la rutina de manejo del sistema operativo) que ha sido designada para dicha interrupcion. Las interrupciones de hardware, que son las que nos interesan, en el caso de un PC son 16. Desde la 0 a la 15.

Existen dos maneras de pillar una interrupcion ("level" o "edge"). Por definicion, el bus ISA (o las interrupciones que pillen dispositivos =
ISA), las pillan como "level" y esta interrupciones no son compartibles ("shareables") por ningun dispositivo. Es problema FISICO de hardware, =
las interrupciones son señales "fisicas" electricas que utilizan su propia linea "fisica" de interrupcion.:

En cambio en el bus PCI (norma 2.1), los dispositivos son los responsables de "pedir" al bus la interrupcion y además indicar el modo =
"level" o "edge".:

Lo normal es que los soliciten "edge", y es la propia BIOS (si lo soporta!!) la que de algun modo vectoriza la interrupcion, y es capaz de =
saber de que dispositivo proviene, y por tanto es una interrupcion "shareable" (compartible) por mas de un dispositivo. Además de esto, el =
software, en este caso el sistema operativo, debe tener una capa (IRQ holder o "marcador IRQ" en castellano), para decidir, preguntando al =
hardware (a la BIOS), de que dispositivo proviene la interrupcion y ceder el control al driver correspondiente. Esto solo es posible con el =
bus PCI.

Entonces, hay casos, por ejemplo, en que tenemos (y de una consulta de este tipo, proviene este articulo) la misma interrupcion en COM1 y COM3, =
uno de los dos funcionará, el otro NO. Estos son dispositivos ISA (aunque esten en la placa madre) y sus interrupciones no se pueden =
compartir. Cuando me refiero, "a funcionará", me estoy refiriendo al nivel de la interrupcion. Supongamos que tenemos un módem interno que =
pilla la IRQ4 (la 4 es de com1 y puede ser de com3, supongamos para nuestro ejemplo, que es tambien de com3). Si Windows "decide" que las =
peticiones con la IRQ 4 se las dá al COM3, se las dará siempre al driver de comunicaciones. (SIEMPRE). Por tanto, nuestro módem en COM3, =
funcionará SIEMPRE (un módem NECESITA obligatoriamente una IRQ). Ahora bien, supongamos que instalamos otro módem externo en COM1. Entonces NO =
funcionará nunca (ya que necesita una IRQ, y cada vez que la dispare, el sistema se "creerá" que es de COM3.:

Pero por otra parte (y en nuestro ejemplo), si en COM1, no tenemos módem y tenemos otro dispositivo que no utilice IRQ (es cecir se utilice =
tecnica de "pooling" sobre el puerto -que en este caso es diferente-) este dispositivo funcionará correctamente.

Por tanto y como resumen:

  1. las IRQ asignadas al bus PCI son compartibles, si lo soporta el sistema operativo y la BIOS.
  2. no se puede compartir una irq entre un dispositivo PCI y uno ISA (los puertos serie y paralelo, son ISA, aunque esten en la placa madre. Los controladores de disco de la placa madre, asi como el bus USB son dispositivos que cumplen la norma PCI y por tanto son "shareables").
  3. dentro del bus ISA no se pueden compartir interrupciones. Si se comparten uno de los dispositivos funcionará mediante interrupcion y el otro solo puede funcionar por "pooling" si su driver lo soporta. (y esto en w95/w98. En NT u otro sistema "serio", no funcionará ninguno de los dos dispositivos e incluso puede ser que no arranque el sistema).

Volver a Artículos y FAQs

 

     
 

Volver arriba Volver arriba

© 1997-2009 Duiops (http://www.duiops.net)
Prohibida la reproducción parcial o total de los textos o las imágenes

Para comentarios, usa las direcciones e-mail de contacto.