C'è qualche differenza principale tra i due? C'è qualcosa che può essere fatto in uno e non nell'altro? Devo fare più attenzione quando modifichi, ad esempio, il gestore degli errori di pagina rispetto a un gestore di timer?Qual è la differenza tra contesto di interruzione ed eccezione?
risposta
L'interrupt è un evento asincrono tipicamente generato dall'hardware (Ex, I/O) non sincronizzato con l'esecuzione dell'istruzione del processore. Mentre le eccezioni sono eventi sincroni generati quando il processore rileva una condizione predefinita durante l'esecuzione dell'istruzione.
Il gestore di interrupt può essere interrotto da un altro gestore di interrupt e così via. Un gestore di interrupt può rinviare un gestore di eccezioni, ma un gestore di eccezioni non rimuove mai un gestore di interrupt. L'unica eccezione possibile nella modalità kernel è l'errore di pagina.
I gestori di interrupt non eseguono mai operazioni che potrebbero causare un errore di pagina e quindi potenzialmente una pianificazione. Nel caso in cui danno luogo a un errore di pagina, significa che è un bug.
È necessario fare attenzione durante la scrittura/modifica di gestore di interrupt
interrupt ed eccezioni sia alterare il flusso del programma. La differenza tra i due è che gli interrupt vengono utilizzati per gestire eventi esterni (porte seriali, tastiera) e le eccezioni vengono utilizzati per gestire istruzione difetti, (divisione per zero, opcode indefinito).
Gli interrupt vengono gestiti dal processore dopo aver terminato l'operazione corrente corrente. Se trova un segnale sul suo pin di interrupt, lo cercherà l'indirizzo del gestore di interrupt nella tabella degli interrupt e passerà a quel controllo di routine. Dopo il ritorno dalla routine di interrupt di gestione , riprenderà l'esecuzione del programma sull'istruzione dopo l'istruzione interrotta .
Le eccezioni d'altra parte sono divise in tre tipi. Questi sono guasti, trappole e aborigeni. Gli errori vengono rilevati e revisionati dal processore prima delle istruzioni di errore. Le trap sono revisionate dopo le istruzioni che causano la trappola. Gli interrupt definiti dall'utente entrano in questa categoria e possono essere considerati trappole; questo include l'interrupt software MS- DOS INT 21h , ad esempio. Gli aborzi vengono utilizzati solo per il segnale grave problemi di sistema, quando l'operazione non è più possibile.
Ricerca a: http://www.allinterview.com/showanswers/14289.html
- 1. Qual è la differenza tra mixin ed ereditarietà?
- 2. La differenza tra non-fatale ed eccezione in Scala
- 3. Qual è la differenza tra scalabilità ed elasticità?
- 4. Qual è la differenza tra Transaction Manager ed Entity Manager
- 5. Qual è la differenza tra Amazon AMI ed EBS snapshot
- 6. Qual è la differenza tra spawn ed exec?
- 7. Qual è la differenza tra OpenCV.NET, OpenCVSharp ed EmguCV?
- 8. Qual è la differenza tra trigger ed eventi in backbone?
- 9. Qual è la differenza tra execl ed execv?
- 10. Qual è la differenza tra modulo HTTP ed esprimere modle
- 11. Qual è la differenza semantica tra ERANGE ed EOVERFLOW?
- 12. Qual è la differenza tra volatile ed esterno?
- 13. In ember.js, qual è la differenza tra mixin ed extend?
- 14. In Hybris, qual è la differenza tra modulegen ed extgen?
- 15. Qual è la differenza tra risorsa ed endpoint?
- 16. Qual è la differenza tra nohup ed e commerciale
- 17. Qual è la differenza tra px, em ed ex?
- 18. Qual è la differenza tra Lucene ed Elasticsearch
- 19. Qual è la differenza tra Executor ed ExecutorService?
- 20. Qual è la differenza tra l'ambito di un oggetto e il suo contesto in javascript?
- 21. Differenza tra interrupt ed evento
- 22. Qual è la differenza tra i punti di interruzione hardware e software?
- 23. Qual è la differenza tra $ e $$?
- 24. Qual è la differenza tra {0} e +?
- 25. Qual è la differenza tra = e: =
- 26. Qual è la differenza tra ("") e (null)
- 27. Qual è la differenza tra non implementare ed eliminare operatori comuni?
- 28. Qual è la differenza tra dict() e {}?
- 29. Qual è la differenza tra queste funzioni?
- 30. Qual è la differenza tra Verilog! e ~?