Differenza Tra Interruzione Ed Eccezione

Differenza Tra Interruzione Ed Eccezione
Differenza Tra Interruzione Ed Eccezione

Video: Differenza Tra Interruzione Ed Eccezione

Video: Differenza Tra Interruzione Ed Eccezione
Video: CRYPTO - Eesercitazione sulla gestione delle eccezioni 2024, Novembre
Anonim

Interruzione vs eccezione

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) in grado di gestire le condizioni che vengono sollevate dall'interrupt.

Cos'è l'interrupt?

Il termine interrupt è 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 un timeout del timer hardware interno può aumentare questo tipo di interruzione e può informare la CPU che un determinato dispositivo necessita di 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 tornerà al normale programma. Quando si verificano interrupt hardware e la CPU avvia l'ISR, gli altri interrupt hardware vengono disabilitati (ad es. In 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.la cancellazione del flag di interrupt avrà effetto solo sugli interrupt hardware.la cancellazione del flag di interrupt avrà effetto solo sugli interrupt hardware.

Cosa sono le eccezioni?

L'eccezione è 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 stava eseguendo 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.

Qual è la differenza tra interruzione ed eccezione?

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 finché 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.

Raccomandato: