Differenza tra interruzione e eccezione in informatica

Differenza tra interruzione e eccezione in informatica

In qualsiasi computer, durante la normale esecuzione di un programma, potrebbero verificarsi eventi che possono causare l’arresto temporaneo della CPU. Eventi come questo sono chiamati interruzioni. Gli interrupt possono essere causati da errori software o hardware. Gli interrupt hardware sono chiamati (semplicemente) interrupt, mentre gli interrupt software sono chiamati eccezioni. Una volta che viene generato un interrupt (software o hardware), il controllo viene trasferito a una speciale subroutine chiamata ISR (Interrupt Service Routine) che può gestire le condizioni sollevate dall’interrupt.

Interrupt

Il termine Interrupt (in italiano interruzione) è solitamente riservato agli interrupt hardware. Sono interruzioni del controllo del programma causate da eventi hardware esterni. Qui, esterno significa esterno alla CPU. Gli interrupt hardware di solito provengono da molte fonti diverse come chip timer, dispositivi periferici (tastiere, mouse, ecc.), Porte I/O (seriali, parallele, ecc.), Unità disco, clock CMOS, schede di espansione (scheda audio, video carta, ecc.). Ciò significa che gli interrupt hardware non si verificano quasi mai a causa di alcuni eventi relativi al programma in esecuzione. Ad esempio, un evento come la pressione di un tasto sulla tastiera da parte dell’utente o il timeout di un timer hardware interno possono generare questo tipo di interrupt e possono informare la CPU che un determinato dispositivo richiede una certa attenzione. In una situazione del genere la CPU interromperà ciò che stava facendo (cioè sospende il programma corrente), fornisce il servizio richiesto dal dispositivo e sarà tornare al programma normale. Quando si verificano interrupt hardware e la CPU avvia l’ISR, gli altri interrupt hardware vengono disabilitati (ad esempio nelle macchine 80×86). Se hai bisogno che si verifichino altri interrupt hardware mentre ISR è in esecuzione, devi farlo esplicitamente cancellando il flag di interrupt (con l’istruzione sti). Nelle macchine 80×86, la cancellazione del flag di interrupt avrà effetto solo sugli interrupt hardware.

Differenza tra interruzione e eccezione in informatica

Eccezioni

L’eccezione (in inglese exception) è un interrupt software, che può essere identificato come una routine speciale del gestore. L’eccezione può essere identificata come una trappola che si verifica automaticamente (una trappola può essere identificata come un trasferimento di controllo, che viene avviato dal programmatore). Generalmente, non ci sono istruzioni specifiche associate alle eccezioni (i trap vengono generati utilizzando un’istruzione specifica). Quindi, si verifica un’eccezione a causa di una condizione “eccezionale” che si verifica durante l’esecuzione del programma. Ad esempio, la divisione per zero, l’esecuzione di un codice operativo illegale o di un errore relativo alla memoria potrebbe causare eccezioni. Ogni volta che viene sollevata un’eccezione, la CPU sospende temporaneamente il programma che era in esecuzione e avvia l’ISR. ISR conterrà cosa fare con l’eccezione. Potrebbe correggere il problema o, se non è possibile, interrompere il programma con grazia stampando un messaggio di errore appropriato. Sebbene un’istruzione specifica non causi un’eccezione, un’eccezione sarà sempre causata da un’istruzione. Ad esempio, la divisione per errore zero può verificarsi solo durante l’esecuzione dell’istruzione di divisione.

Differenza tra interrupt e eccezione

Infine vediamo le differenze tra interrupt e eccezione in informatica.

Gli interrupt sono interruzioni hardware, mentre le eccezioni sono interruzioni software. Le occorrenze di interrupt hardware di solito disabilitano altri interrupt hardware, ma questo non è vero per le eccezioni. Se è necessario disabilitare gli interrupt hardware fino a quando non viene servita un’eccezione, è necessario cancellare esplicitamente il flag di interrupt. E di solito il flag di interruzione sul computer influisce sugli interrupt (hardware) invece che sulle eccezioni. Ciò significa che la cancellazione di questo flag non impedirà le eccezioni.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *