SISTEMA OPERATIVO
INVESTIGACION DE LOS IRQ
¿QUÉ SON LOS IRQ?
Las IRQ (Interrupciones de Hardware) son avisos que el hardware envía al
micro-procesador de una computadora a través de señales físicos a los
circuitos de la misma CPU. Las solicitudes de interrupción están basadas en un
sistema de prioridades de modo que el procesador pueda o no ignorar
determinadas peticiones.
Una CPU puede estar ocupada procesando billones de operaciones por
segundo, lo que hace una IRQ es avisar de una nueva tarea pendiente de ser
examinada. El procesador, una vez ejecutada la tarea solicitada con la IRQ,
vuelve a su anterior operación. Las IRQs disponen de canales físicos
dedicados en las placas base, cada uno con un nivel de prioridad y conectados
a la CPU con pins.
CUALES SON LAS FUNCIONES DE UN IRQ
Los dispositivos hardware que necesitan ejecutarse transmiten una IRQ al
procesador para llamar su atención. La tarjetas de red, de video, de sonido, un
módem, los adaptadores SCSI, los dispositivos de tipo IDE/ADE, los periféricos
USB, por puerto paralelo o serie, todos disponen de un canal prioritario para
comunicarse con la CPU denominado "Número de IRQ".
El controlador puede deshabilitar, técnicamente "enmascarar", determinadas
solicitudes de interrupción, retrasando su ejecución, no obstante hay interrupts
que no pueden ser inhibidas.
¿QUE CARATERISTICAS POSEEN LOS IRQ?
Cada IRQ posee un nivel de importancia. En equipos antiguos como el PC
XT/AT, la IRQ 0 (encargada del reloj del sistema) goza de la máxima prioridad.
Identificación mediante un Número
Cada línea de interrupción se distingue por un número único (por ejemplo, IRQ
0, IRQ 1,..., IRQ 15 en sistemas que tienen 16 IRQs).
Ejemplo:
IRQ 0 → Reloj del sistema
IRQ 1 → Teclado
IRQ 4 → Puerto serie COM1
Habilitan la Capacidad de Multitarea
Gracias a las IRQ, el procesador puede detener temporalmente una tarea para
ocuparse de sucesos relevantes (como cuando se presiona una tecla) y luego
retomar la tarea original.
Administración mediante el PIC
En arquitecturas más antiguas, un PIC (Controlador de Interrupciones
Programable) se ocupa de administrar las IRQ y de informar al procesador
sobre ellas.
En sistemas actuales, esta función la realiza el APIC (PIC Avanzado) o el
IOAPIC.
Uso Compartido de IRQ
En los sistemas contemporáneos, varios dispositivos pueden compartir la
misma IRQ (especialmente con buses como PCI), aunque esto requiere una
gestión de software muy precisa.
Señales de Hardware o Software
Aunque suelen ser señales físicas que van desde el hardware al procesador,
también existen interrupciones generadas por software, que imitan una IRQ.
Pueden Ser Enmascarables o No
IRQ enmascarables: se pueden desactivar momentáneamente para prevenir
interrupciones.
NMI (Interrupción No Enmascarable): interrupciones cruciales que no se
pueden desatender (por ejemplo, un fallo grave de hardware).
Rapidez y Rendimiento
Utilizar IRQ resulta más eficaz que estar preguntando continuamente (polling)
el estado de los dispositivos.
¿DONDE APLICAMOS LOS IRQ?
Los IRQs se aplican donde sea necesario responder rápidamente a eventos del
entorno, desde pulsar una tecla hasta recibir un paquete de red o controlar un
motor en tiempo real. Son fundamentales para la eficiencia y la capacidad
multitarea del sistema.
En computadoras personales
Teclado: envía una IRQ cuando presionas una tecla (IRQ 1 en PCs
clásicos).
Ratón: IRQ cuando se mueve o hace clic.
En sistemas operativos
Asignación automática de IRQs: Plug & Play detecta y configura los
dispositivos.
Drivers: cada controlador de dispositivo maneja las IRQ asociadas para
su hardware.
En videojuegos y multimedia
Controladores de juego (joysticks, pads) generan IRQs cuando se usan.
Tarjetas de sonido y tarjetas gráficas usan IRQs para sincronizar el flujo
de datos y mejorar la respuesta.
¿CUÁLES SON LAS VENTAJAS Y DESVENTAJAS DE LOS IRQ?
Las IRQ (Interrupt Request) tienen un papel fundamental en la gestión de
hardware en sistemas computacionales, y como toda tecnología, presentan
ventajas y desventajas.
Ejemplo:
Ventajas
Respuesta inmediata a eventos externos
Permiten que el procesador atienda eventos importantes apenas ocurren
(como una tecla presionada o la llegada de un dato por red).
Ahorro de recursos del procesador (CPU)
Evitan el uso del "polling" (consulta continua del estado de dispositivos),
lo que mejora la eficiencia.
Soporte para sistemas en tiempo real
En sistemas embebidos o críticos, permiten reaccionar con precisión
temporal a condiciones específicas.
Prioridades configurables
Algunas arquitecturas permiten asignar prioridades a distintas IRQ,
garantizando que se atiendan primero las más importantes.
Mejor gestión de multitarea
Permiten al sistema operativo coordinar múltiples procesos y dispositivos
eficientemente.
Desventajas
Cantidad limitada de líneas IRQ (en hardware tradicional)
Especialmente en sistemas antiguos, la cantidad de IRQ disponibles era
muy limitada (por ejemplo, 16 en PC clásicos), generando conflictos entre
dispositivos.
Complejidad en la programación
Requieren cuidado al diseñar manejadores de interrupciones,
especialmente en sistemas con múltiples fuentes de IRQ.
Riesgo de conflictos entre dispositivos
Si dos dispositivos usan la misma IRQ sin manejarla adecuadamente,
puede causar errores o mal funcionamiento.
Posibilidad de interrupciones espurias o falsas
Algunas veces, pueden generarse IRQ sin causa válida, lo que puede
llevar a ejecutar rutinas innecesarias.
Problemas de sincronización
Si no se gestionan correctamente, pueden causar condiciones de
carrera o interferencia entre procesos.