Qual è la differenza tra l'interrupt e un evento?Differenza tra interrupt ed evento
risposta
Questi due concetti offrono entrambi modi per il "sistema/programma" di gestire le varie "condizioni" che si verificano durante il normale svolgimento di alcuni programmi e che potrebbero richiedere al "sistema/programma" di fare qualcos'altro, prima di tornare (o non ...) al compito originale. Tuttavia, oltre a questa somiglianza funzionale, sono concetti molto distinti utilizzati in contesti distinti, a livelli distinti.
interrupt fornire un dispositivo basso livello per interrompere il normale svolgimento di qualsiasi pezzo di programmare la CPU sta lavorando a un un dato momento, e per avere le istruzioni di elaborazione CPU inizio a un altro indirizzo. Gli interrupt sono utili per gestire varie situazioni che richiedono l'elaborazione immediata della CPU (ad esempio per gestire i tasti o l'arrivo di nuovi dati in un canale di comunicazione seriale).
Molte interruzioni sono generate dall'hardware (da qualche dispositivo elettronico che modifica la polarità su uno dei pin della CPU), ma ci sono anche interrupt software che sono causati dal programma stesso che invoca una particolare istruzione. (o anche dalla CPU che rileva qualcosa che è fuori strada rispetto a se stesso o al programma in esecuzione).
Un interrupt molto famoso è INT 0x21 che il programma invoca [d] per chiamare i servizi da MS-DOS.
Gli interrupt vengono in genere inviati tramite tabelle vettoriali, per cui la CPU ha una particolare posizione in memoria contenente una matrice di indirizzi [dove risiedono particolari gestori di interrupt]. Modificando il contenuto della tabella degli interrupt [se è così consentito ...], un programma può ridefinire quale particolare gestore verrà chiamato per un dato numero di interrupt.
Eventi, d'altra parte, sono/lingua a livello di sistema "messaggi" che possono essere utilizzati per indicare una varietà di hardware o software situazioni (mi piacerebbe utilizzare l'evento di parola), come ad esempio Clic del mouse, voci di tastiera, ma anche situazioni a livello di applicazione come "Nuovo record inserito nel database" o richieste e messaggi altamente digeriti, utilizzati in programmi modulari per comunicazioni/richieste tra varie parti del programma.
A differenza degli interrupt con il loro comportamento [relativamente semplice] che è completamente definito dalla CPU, esistono vari sistemi di sistemi di eventi, a livello del sistema operativo e di vari framework (ad esempio: MS Windows, JavaScript, .NET , Framework GUI come QT ecc.). Tutti i sistemi eventi, mentre differenti nelle loro implementazioni, tipicamente condividono proprietà comuni come
- il concetto di un gestore, che è una particolare funzione/metodo del programma che è designato per gestire particolari tipi di evento dal particolare evento fonti.
- il concetto di un evento, che è un [tipicamente piccolo] struttura contenente informazioni sull'evento: il tipo, la sua fonte, parametri personalizzati (che semantica dipendono dal tipo di evento)
- una coda dove gli eventi sono inserite dal fonti e interrogati dai consumatori/gestori (o più precisamente dai dispatcher, a seconda del sistema ...)
Gli interrupt sono implementati all'interno dell'hardware (CPU) per interrompere il flusso solitamente lineare di un programma. Questo è importante per eventi esterni come l'input da tastiera ma anche per l'interruzione di programmi in sistemi operativi multi-tasking.
Gli eventi sono un mezzo di ingegneria del software e probabilmente più noti dai toolkit della GUI. Lì, il toolkit/OS avvolge avvenimenti come le pressioni dei tasti o l'input del mouse in "eventi". Questi vengono poi inviati ai programmi che sono andati a registrarsi per ricevere tali eventi. È forse un po 'come un sistema di mailing.
Per confrontare i due, da una visione del programma userspace:
-Interrupts costringerebbe il vostro programma per fermare in modo da permettere un certo codice di livello inferiore execute (come il codice del sistema operativo)
-Eventi di solito vengono inviati a te dal codice di livello inferiore e attivare l'esecuzione del codice
- 1. Differenza tra EventHandler privato ed evento privato EventHandler?
- 2. Differenza tra isObservable ed isSubscribable
- 3. differenza tra executor.submit ed executor.execute in questo codice in Java?
- 4. Differenza tra intenti impliciti ed espliciti
- 5. Differenza tra quadri di assiemi ed estensioni
- 6. Differenza tra nodo js ed express js
- 7. Differenza tra iPhone Simulator ed Emulatore Android
- 8. La differenza tra enum ed enum class?
- 9. Differenza tra Executor ed ExecutorCompletionservice in java
- 10. C# Differenza di Winform tra evento DoubleClick e evento MouseDoubleClick
- 11. Differenza tra evento OnClick() e OnClickListener?
- 12. Qual è la differenza tra comando WPF ed evento in WPF?
- 13. Differenza tra Carica evento, Attiva evento e Inserisci evento nel modulo
- 14. La differenza tra non-fatale ed eccezione in Scala
- 15. Qual è la differenza tra volatile ed esterno?
- 16. differenza tra rawquery ed execSQL nel database sqlite Android
- 17. Qual è la differenza tra scalabilità ed elasticità?
- 18. Qual è la differenza tra modulo HTTP ed esprimere modle
- 19. Differenza tra tipo ed entità nel datastore GAE?
- 20. Qual è la differenza tra contesto di interruzione ed eccezione?
- 21. Python: comprensione della differenza tra append ed est
- 22. In ember.js, qual è la differenza tra mixin ed extend?
- 23. Qual è la differenza tra execl ed execv?
- 24. Qual è la differenza tra OpenCV.NET, OpenCVSharp ed EmguCV?
- 25. In Hybris, qual è la differenza tra modulegen ed extgen?
- 26. Qual è la differenza tra risorsa ed endpoint?
- 27. Qual è la differenza tra trigger ed eventi in backbone?
- 28. Differenza tra Java Bean ed Enterprise Java Beans?
- 29. Qual è la differenza tra mixin ed ereditarietà?
- 30. Qual è la differenza tra nohup ed e commerciale
dipende dal contesto. Stai parlando di un linguaggio di programmazione? sistema operativo ? hardware ? I termini interrupt e event dipendono spesso dal contesto. –
kernel del sistema operativo sono i tag. Quindi, penso che questo spieghi il contesto. – claws
Vedere anche: http://stackoverflow.com/q/4835714/119790 –