In determinati momenti, il processore principale smette di funzionare e controlla se qualche controller ha un messaggio per esso, se lo ha, elabora il messaggio e riprende l'operazione. Questo è chiamato polling. Inoltre, è chiaro che il processore principale fa il suo lavoro e che i dispositivi stanno facendo il loro lavoro. Se il dispositivo termina il suo lavoro o si verifica un errore, il dispositivo informa il processore principale con una richiesta di interruzione.
Nei sistemi in cui più circuiti logici esterni comunicano attraverso più interconnessioni U / I con un singolo microprocessore, viene utilizzato il polling U / I. Il microcomputer chiama periodicamente ogni circuito logico esterno ed esamina se ha richiesto il servizio. Se il circuito logico esterno non richiede interventi di manutenzione, il microcomputer esamina il successivo circuito logico esterno, ecc. Se uno di questi richiede interventi di manutenzione, il microcomputer passa alla gestione del programma di servizio del rispettivo circuito logico esterno. La funzione di trasferimento U / I è inclusa nel programma. In altre parole, il polling è un processo di chiamata client (computer o terminali) che può inviare dati dopo essere stati chiamati (se ne hanno). Se il cliente ha dati, lo invia dopo il sondaggio e se non ci sono dati il client risponde negativamente e il server chiama il client successivo. Alcuni dispositivi potrebbero richiedere assistenza dal controller (ad esempio quando un dispositivo termina la misurazione o quando si verifica un errore). La richiesta viene inviata al controller impostando la linea SRQ su bassa. Dopo che il controller riceve una richiesta di assistenza, chiama tutti i dispositivi sul bus per trovare il dispositivo che ha inviato quella richiesta.
Durante l'esecuzione di un programma, il microprocessore può ricevere il segnale di interruzione attraverso le speciali linee IRQ. L'interruzione viene eseguita più comunemente chiamando la subroutine di sistema appropriata per l'elaborazione degli interrupt: si tratta dell'istruzione di routine di interruzione del BIOS o del DOS. Dopo l'interruzione dell'elaborazione, il processore continua a eseguire il programma interrotto. Inoltre, il programma applicativo stesso può contenere un'istruzione che richiede l'esecuzione di una routine di interrupt di BIOS o DOS. Le operazioni di input-output sono generalmente eseguite in questo modo. Ad esempio, se un programma desidera stampare un segno sullo schermo, può farlo chiamando la routine di interrupt appropriata. Il BIOS contiene un insieme di routine di input-output elementari eseguite in tempi relativamente brevi e le routine DOS corrispondenti sono più lente ma le loro capacità sono maggiori (la possibilità di sovrascrivere i canali di input-output, la possibilità di controllare gli errori e così via). Pertanto, l'interrupt hardware è il segnale ricevuto dal processore da un altro dispositivo nel computer e l'interrupt software è il processo di esecuzione di una routine BIOS o DOS (subroutine) che viene automaticamente chiamata per l'elaborazione del segnale di interrupt ricevuto o chiamata a eseguire le istruzioni corrispondenti.
Nel primo caso, il processore verifica a intervalli di tempo regolari se un dispositivo necessita di un'azione. In caso di interruzione c'è un meccanismo attraverso il quale il processore consente al dispositivo esterno (ad esempio tastiera, scheda audio, ecc.) Di attirare l'attenzione del processore.
Gli interrupt sono meccanismi appositamente organizzati per la comunicazione di dispositivi periferici. I dispositivi avvisano la CPU se è necessaria un'azione. Il polling è protocollo: la CPU richiede regolarmente i dispositivi se è necessaria un'azione.
Nel polling il microcontrollore assiste il dispositivo che necessita di attenzione, dopodiché si sposta sul dispositivo successivo per il monitoraggio. In caso di interruzione, quando viene ricevuto un segnale di interruzione, la CPU si arresta con l'attività corrente e fornisce assistenza al dispositivo. I servizi o l'interruzione elaborati sono denominati interrupt service routine (ISR) o gestore di interrupt.
Nel processo di polling, la CPU è in attesa e controlla se qualche dispositivo ha bisogno di un servizio. Questo inutilmente spreca tempo. In caso di processo di interruzione, d'altra parte, la CPU è disturbata solo se necessario.
I dispositivi possono essere interrogati solo a intervalli regolari quando vengono controllati. L'interruzione può avvenire in qualsiasi momento.
Alcuni dei vantaggi del polling sono il programma relativamente semplice, l'affidabilità della trasmissione che avviene alla massima velocità, vale a dire non appena il dispositivo I / O è pronto e non è necessario alcun chip di accesso aggiuntivo. L'interruzione è utile perché può servire più dispositivi, è più flessibile ed efficiente.
Gli svantaggi del polling sono il tempo di standby di alcuni dispositivi che è più breve del tempo di risposta e quindi deve essere applicato un altro metodo di trasmissione, oltre al fatto che la CPU consuma il tempo non necessario per controllare i dispositivi che non hanno cercato il trasferimento dei dati. Gli svantaggi degli interrupt sono il requisito di hardware / software più complesso e la perdita di tempo finché la CPU non stabilisce quali unità richiedono l'interruzione.