Differenza Tra Interrupt E Trap

Differenza Tra Interrupt E Trap
Differenza Tra Interrupt E Trap

Video: Differenza Tra Interrupt E Trap

Video: Differenza Tra Interrupt E Trap
Video: 5 DIFFERENZE tra TRAP e RAP 2024, Novembre
Anonim

Interruzione vs Trappola

In qualsiasi computer, durante la normale esecuzione di un programma, potrebbero verificarsi eventi che possono causare l'arresto temporaneo della CPU. Eventi come questi 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 o trap. Un'eccezione è un interrupt software generato automaticamente, mentre un Trap è un interrupt richiamato dal software avviato dal programmatore. 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'è un 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à qualunque cosa stesse 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.

Cos'è una trappola?

Una trappola può essere identificata come un trasferimento di controllo, che viene avviato dal programmatore. Il termine Trap viene utilizzato in modo intercambiabile con il termine Eccezione (che è un interrupt software che si verifica automaticamente). Ma alcuni potrebbero obiettare che una trappola è semplicemente una chiamata di subroutine speciale. Quindi rientrano nella categoria delle interruzioni invocate dal software. Ad esempio, in macchine 80 × 86, un programmatore può utilizzare l'istruzione int per avviare una trap. Poiché una trap è sempre incondizionata, il controllo sarà sempre trasferito alla subroutine associata alla trap. L'istruzione esatta, che richiama la routine per la gestione della trap, è facilmente identificabile perché viene utilizzata un'istruzione esplicita per specificare una trap.

Qual è la differenza tra Interrupt e Trap?

Gli interrupt sono interrupt hardware, mentre i trap sono interrupt richiamati dal software. Le occorrenze di interrupt hardware di solito disabilitano altri interrupt hardware, ma questo non è vero per i trap. Se è necessario disabilitare gli interrupt hardware finché non viene servito un trap, è necessario cancellare esplicitamente il flag di interrupt. E di solito il flag di interrupt sul computer influisce sugli interrupt (hardware) anziché sui trap. Ciò significa che la rimozione di questo flag non impedirà le trappole. A differenza dei trap, gli interrupt dovrebbero preservare lo stato precedente della CPU.

Raccomandato: