Interrupt: A palavra Interrup vem de interrupção.
Interrupt é geralmente usado para implementar multitarefa.
Interrupt, em informática, significa chamar a atenção do processador. Quando digitamos, cada tecla é envia uma solicitação de interrupção para o processador, ele pára o que está fazendo e processa o caractere(letra, número, símbolo) que, em resposta, aparece na tela do monitor.
As interrupções são enviadas para o processador através de PIC: Controladores de Interrupção programável ou Programmable Interrupt Controllers. Um PIC conhecido é o 8259A que foi depois substituído pelo APIC(Advanced PIC). Mas o PIC continua a ser usado até hoje.
IRQ: Significa Solicitação de Interrupção(Interrupt Request) e se dá quando um hardware(placa de som, teclado, mouse, vídeo..) envia uma solicitação ao processador para que ele pare o que está processando no momento e comece a processar a solicitação desse hardware.
A interrupção pode ser tanto solicitada por um hardware como também por um software(programa) através de suas linhas de comandos. Podemos gerar uma interrupção ao usarmos o comado “try catch”, veja:
try {
} catch ( ) {
}
Quem trabalha com programação reconhecerá o código acima.
Níveis de IRQs
Todo dispositivo tem uma identidade, um número que o identifica. Por exemplo,
RQ # | Dispositivo |
---|---|
0 | System timer |
1 | Teclado |
2 | Desviado para IRQ 9 |
3 | COM port 2 or 4 |
4 | COM port 1 or 3 |
5 | Porta paralela 2 (impressora) ou placa de som |
6 | Disquete |
7 | Porta paralela 1(impressora) |
8 | Tempo real do sistema |
9 | Video |
10 | Open(sem uso) |
11 | Open(sem uso) |
12 | PS/2 mouse |
13 | Coprocessor |
14 | Primary IDE controller (HDs) |
15 | Secondary IDE controller (HDs) |
Quando menor o número mais prioridade ele terá para usar o processador, podemos ver que o System Time terá maior prioridade(0).
O teclado usa a linha 1.
IRQ 2
Antigamente os computadores só tinham 8 números/linhas IRQ: do 0 ao 7.
Como solução alternativa o IRQ2 foi reservado como desvio para um segundo controlador que, por sua vez, possuía e adicionada os IRQ de 8 ao 15, como nos dias de hoje.
Então, o IRQ2 é apenas uma conexão para outro controlador e assim, lembrando as prioridades, as interrupções do 8 ao 15 têm prioridade sobre as 3, 4, 5, 6 e 7. Sim, isso porque o IRQ2 é o desvio para os IRQs 8 à 15.
Conflitos de IRQ
Antigamente existia conflitos de IRQ quando dois dispositivos tentavam usar o mesmo número. Desde a introdução do Windows 2000 e XP conflitos de IRQs são bastante raros, praticamente inexistente.
Vale lembrar que antigamente os IRQs eram configurados manualmente através de jumpers na placa mãe.
Conflitos de IRQ se tornaram raros por algumas razões:
- A introdução de PCI e IRQ Steering: pci/irq steering é quando o sistema operacional(Linux, Windows) passa a gerenciar o serviço e atribuição de números de IRQ para os dispositivos. PCI/IRQ Steering faz com que as decisões do sistema operacional sobrescreva as decisões da BIOS.
- A ampla aceitação do Plug-and-Play(algo do tipo: conectou pegou) por partes de fabricantes de dispositivos levaram produzirem hardwares mais flexíveis em relação aos IRQs.
- O desenvolvimento contínuo de ACPI tem possibilitado a fabricação de placas mães, BIOS e sistemas operacionais(linux, Windows..) que aceitem números IRQs maiores que 15.
É bom falar que o APIC, teoricamemte, permite até 255 interrupções virtuais por mapear uma tabela de interrupção virtual em um único IRQ(geralmente IRQ 9 ou 11) e deixando o sistema operacional, ao invés da BIOS, determinar a prioridade das requisições/solicitações das interrupções dos dispositivos.
Exemplos de IRQ no Windows
Painel de Controle > Sistema > Hardware > Gerenciador de Dispositivos:
Exemplo de IRQ no Linux
cat /proc/interrupts
Conclusão
Aqui falamos um pouco sobre Interrupções IRQ. À primeira vista pode parecer complicado o entendimento, mas não é. É complexo, não podemos negar, mas não é um bicho de 7 cabeças para entendermos.
Fontes: techopedia, oreilly kb.iu.edu
Comment on “O que São Interrupções IRQ em Informática?”