Dato che il processore non può trattare più informazioni simultaneamente (esso tratta un'informazione alla volta), un programma in corso di esecuzione può, grazie ad un'interruzione, essere momentaneamente sospeso, in tempo necessario per l'esecuzione di una routine di interruzione. Il programma interrotto può in seguito riprendere la sua esecuzione. Esistono 256 indirizzi di interruzione diversi.
Un'interruzione diventa un'interruzione hardware quando è richiesta da una componente hardware del computer. In effetti, esistono nel computer numerose periferiche. Queste hanno generalmente bisogno di utilizzare delle risorse del sistema, se non altro per comunicare con questo.
Quando una periferica desidera accedere ad una risorsa, invia una richiesta di interruzione al processore affinché questo gli presti attenzioni. Così, le periferiche hanno un numero di interruzione, chiamato IRQ (Interruption ReQuest, ossia « richiesta di interruzione »). A titolo d'esempio, ogni periferica tira un « filo » collegato ad una campanella per segnalare al computer che desidera la sua attenzione.
Questo « filo » è in effetti una linea fisica che collega ogni connettore di estensione, nonché ogni interfaccia d'entrata-uscita, alla scheda madre. Per una postazione ISA a 8 bit ad esempio, esistono 8 linee IRQ che collegano gli slot ISA 8 bit alla scheda madre (da IRQ0 a IRQ7). Questi IRQ sono controllati da un « controllore di interruzione » incaricato di « dare la parola » all'IRQ con la più grande priorità.
Con la comparsa degli slot a 16 bit, sono state aggiunte le IRQ da 8 a 15, ed è stato necessario aggiungere un secondo controllore d'interruzione. Il collegamento tra i due gruppi di interruzione avviene con l'intermediazione dell'IRQ 2 collegata all'IRQ 9 (detta « cascata »). La cascata ha quindi in qualche modo "inserito" le IRQ da 8 a 15 tra le IRQ da 1 a 3 :

Dato che la priorità è data in ordine crescente di IRQ, e che le IRQ da 8 a 15 sono inserite tra le IRQ da 1 e 3, l'ordine di priorità è quindi il seguente :
0 > 1 > 8 > 9 > 10 > 11 > 12 > 13 > 14 > 15 > 3 > 4 > 5 > 6 > 7
Le periferiche hanno regolarmente bisogno di « prendere in prestito della memoria » dal sistema da usare come zona di tampon (en anglais buffer, cioè una zona di stoccaggio temporaneo che permette di registrare rapidamente dei dati in entrata o in uscita.
Un canale di accesso diretto alla memoria, detto DMA (Direct Memory Access ossiaAccesso diretto alla memoria), è quindi definito per porvi rimedio.
Il canale DMA designa un accesso ad una postazione della memoria viva (RAM) del computer, individuato da un « indirizzo iniziale » (o «RAM Start Address» in inglese) e un « indirizzo finale». Questo metodo permette ad una periferica di prendere in prestito dei canali che le danno un accesso diretto alla memoria, senza l'intervento del microprocessore, per alleggerirlo di queste azioni.
Un PC ha 8 canali DMA. I primi quattro canali DAM hanno una banda larga di 8 bits mentre i DMA da 4 a 7 ne hanno una da 16 bits.
I canali DMA sono generalmente assegnati nel modo seguente :
Le periferiche hanno talvolta bisogno di scambiare delle informazioni con il sistema, e a questo scopo vengono loro assegnati degli indirizzi di memoria per l'invio e la ricezione dei dati. Questi indirizzi sono detti «indirizzi di base» (i termini seguenti sono talvolta ugualmente impiegati : «porte d'entrata/uscita», «porte d'E/U», «indirizzo d'E/U», «indirizzi di porte d'E/U», «porte di base»</ital>, o in inglese I/O address che significa «Input/Output Address», letteralmente «Indirizzi di entrata - uscita»).
E' attraverso questi indirizzi di base che la periferica comunica con il sistema operativo. Esiste quindi solamente un unico indirizzo di base per ogni periferica.
Qui di seguito una lista con alcuni indirizzi di base frequenti :
Tutti questi elementi sono chiari per l'utente che non se ne deve quindi preoccupare.
Un'interruzione è una linea che collega una periferica ad un processore. Si parla di interruzione hardware quando questa è richiesta da un componente hardware del PC. E' ad esempio il caso di un tasto che è stato premuto e la tastiera vuole attirare l'attenzione del processore su quest'azione. Tuttavia, le 256 interruzioni non possono essere tutte richieste come interruzioni hardware e le diverse periferiche richiedono sempre delle interruzioni ben precise.
Così, durante l'istallazione di schede di estensione, bisogna far attenzione, alla loro configurazione, che la stessa interruzione non sia utilizzata per due periferiche differenti, nel qual caso si avrà un « conflitto hardware », che porterà ad uno scorretto funzionamento di una delle due periferiche.
In effetti, se due periferiche utilizzano la stessa interruzione, il sistema non potrà distinguerle. Un conflitto hardware non si verifica solamente per due periferiche con la stessa interruzione, ma anche quando due periferiche hanno lo stesso indirizzo di entrate/uscite o utilizzano gli stessi canali DMA.
L'IRQ di una scheda di estensione può essere modificata per attribuirle un numero di IRQ non utilizzato da un'altra periferica.
| IRQ | Periferica |
|---|---|
| 0 | Orologio interno |
| 1 | tastiera |
| 2 | controllore di interruzioni programmabile
Rinvio verso le IRQ da 8 a 15 |
| 3 | porta di comunicazione COM2/COM4 |
| 4 | porta di comunicazione COM1/COM3 |
| 5 | libero |
| 6 | controllore di floppy |
| 7 | porta stampante LPT1 |
| 8 | CMOS (Orologio in tempo reale) |
| 9 | libero |
| 10 | libero |
| 11 | libero |
| 12 | porta mouse PS2/libero |
| 13 | processore digitale di dati (Coprocessore aritmetico) |
| 14 | controllore primario di dischi rigidi (IDE) |
| 15 | controllore secondario di dischi rigidi (IDE) |
Le porte COM1 e COM4 nonché le porte COM2 e COM3 utilizzano le stesse interruzioni. Questo può sembrare illogico dato che una stessa interruzione non può essere usata per due periferiche. In realtà è possibile usare la porta COM1 nonché la porta COM4 (e la porta COM2 e COM3) a condizione che queste non siano attive simultaneamente. In caso contrario il computer si bloccherà o avrà un comportamento anomalo.
In caso di problemi software, la prima cosa da fare è tentare di isolare il problema per determinare da quale periferica esso proviene. Questo significa che bisogna tentare di eliminare tutte le possibili variabili fino a scoprire l'elemento responsabile :