Differenza tra interrupt hardware e interrupt software
Nell’architettura del computer, un interrupt è un segnale di ingresso al processore che indica un evento che richiede attenzione immediata. Un segnale di interruzione avvisa il processore e serve come richiesta per il processore di interrompere il codice attualmente in esecuzione, in modo che l’evento possa essere elaborato in modo tempestivo. Pertanto, se la richiesta viene accettata, il responsabile del trattamento risponde sospendendo le sue attività in corso. Il segnale di interrupt può essere emesso in risposta a eventi hardware o software e, a questo proposito, sono classificati come:
- Interruzione hardware
- Interruzione del software
Sia gli interrupt hardware che quelli software vengono elaborati da un gestore di interrupt denominato anche interrupt services routine (ISR). Quando un programma riceve una richiesta di interruzione, l’ISR gestisce l’evento e il programma riprende. Gli interrupt vengono spesso elaborati in meno di un millisecondo.
Interruzione hardware
L’interruzione hardware è causata da qualsiasi dispositivo periferico come mouse, tastiera, stampante ecc. Ad esempio, se si utilizza un elaboratore di testi e si preme un tasto, il programma deve elaborare immediatamente l’input. Digitando la parola “Mama” vengono create cinque richieste di interruzione, che consentono al programma di visualizzare le lettere digitate. Allo stesso modo, ogni volta che si fa clic su un pulsante del mouse o si tocca un touchscreen, si invia un segnale di interruzione al dispositivo.
Interruzione software
Un’interruzione del software si verifica quando un software applicativo termina o quando richiede un servizio al sistema operativo. Un interrupt software viene generato dal software ed è considerato uno dei modi per comunicare con il kernel o per invocare chiamate di sistema, specialmente durante la gestione di errori o eccezioni.
Ad esempio, se un programma si aspetta che una variabile sia un numero valido, ma il valore è nullo, potrebbe essere generato un interrupt per evitare che il programma si blocchi. Consente al programma di cambiare rotta e gestire l’errore prima di continuare. Allo stesso modo, un interrupt può essere utilizzato per interrompere un ciclo infinito, che potrebbe creare una perdita di memoria o causare la mancata risposta di un programma.
Interrupt hardware e interrupt software
BASE DI CONFRONTO | HARDWARE INTERROTTO | SOFTWARE INTERROTTO |
Descrizione | L’interrupt hardware è un interrupt generato da un dispositivo esterno o hardware. | L’interrupt software è l’interrupt generato da qualsiasi sistema interno del computer (istruzione nel programma). |
Tipo di processo | Gli interrupt hardware sono eventi asincronizzati. | Gli interrupt software sono eventi sincronizzati. |
Effetto sul contatore del programma | Gli interrupt di processo non incrementano il contatore del programma. | Gli interrupt software aumentano il contatore del programma. |
Causa | L’interruzione hardware è una sorta di interruzione del sistema del computer che si verifica a seguito di interferenze esterne, che provengano dall’utente, dalle periferiche, da altri dispositivi hardware o attraverso una rete. | L’interrupt software è un tipo di interrupt causato da un’istruzione speciale nel set di istruzioni o da una condizione eccezionale nel processore stesso. |
Categorie | Interruzioni mascherabili e interruzioni non mascherabili. | Eccezione di interruzione normale |
Trigger | L’interrupt hardware viene attivato dall’hardware esterno ed è considerato uno dei modi per comunicare con le periferiche esterne, l’hardware. | L’interruzione del software viene attivata dal software (istruzioni del programma) e considerata uno dei modi per comunicare con il kernel o per attivare le chiamate di sistema, specialmente durante la gestione di errori o eccezioni. |
Priorità | L’interrupt hardware ha la priorità più bassa rispetto agli interrupt software. | L’interrupt di software ha la priorità più alta dell’interrupt di hardware. |