martes, 12 de enero de 2010

IRQs

Fuente: http://es.wikipedia.org/wiki/Interrupci%C3%B3n
Interrupción hardware o petición de interrupción
Es una señal recibida por el procesador de un ordenador, indicando que debe "interrumpir" el curso de ejecución actual y pasar a ejecutar código específico para tratar esta situación.

Una interrupción supone la ejecución temporaria de un programa, para pasar a ejecutar una "subrutina de servicio de interrupción", que pertenece al BIOS (Basic Input Output System).

Las interrupciones surgen de las necesidades que tienen los dispositivos periféricos de enviar información al procesador principal de un sistema de computación. La primera técnica que se empleó fue que el propio procesador se encargara de sondear (polling) el dispositivo cada cierto tiempo para averiguar si tenía pendiente alguna comunicación para él. Este método presentaba el inconveniente de ser muy ineficiente, ya que el procesador constantemente consumía tiempo en realizar todas las instrucciones de sondeo.

El mecanismo de interrupciones fue la solución que permitió al procesador desentenderse de esta problemática, y delegar en el dispositivo la responsabilidad de comunicarse con el procesador cuando lo necesitaba. El procesador, en este caso, no sondea a ningún dispositivo, sino que queda a la espera de que estos le avisen (le "interrumpan") cuando tengan algo que comunicarle (ya sea un evento, una transferencia de información, una condición de error, etc.).

Un ordenador PC típico dispone en su placa base de un controlador de interrupciones 8259 de Intel o de un circuito integrado análogo. Este dispositivo electrónico dispone de hasta 16 líneas IRQ, numeradas desde el 00 hasta el 15. En las nuevas placas base este circuito está integrado junto con el resto del chipset y permite hasta 24 interrupciones.

////////////////////////////////////////////////////////////////
0 System timer Reserved for internal use.

1 Keyboard Reserved for keyboard use only.

2 Cascade for IRQs 8–15 The original x86 IRQ-handling circuit can manage just 8 IRQs; 2 are tied together to handle 16 IRQs, but IRQ 2 must be used to handle IRQs 8–15.

3 Second RS-232 serial port ( COM2: in Windows) May also be shared by a fourth RS-232 serial port.

4 First RS-232 serial port ( COM1: in Windows) May also be shared by a third RS-232 serial port.

5 Sound card or second parallel port (LPT2: in Windows)

6 Floppy disk controller Reserved for the first floppy disk controller.

7 First parallel port (LPT1: in Windows)

8 Real-time clock Reserved for system clock use only.
9 Open interrupt
10 Open interrupt
11 Open interrupt
12 PS/2 mouse
13 Math coprocessor Reserved for internal use.
14 Primary ATA controller The controller for ATA devices such as hard drives; typically /dev/hda and /dev/hdb under Linux.
15 Secondary ATA controller The controller for more ATA devices; typically /dev/hdc and /dev/hdd under Linux.

Una vez que un sistema Linux se está ejecutando, se puede explorar examinando el contenido del archivo /proc/interrupts .

No hay comentarios: