Il differenza principale tra trappola e interruzione è quello trap viene attivato da un programma utente per richiamare la funzionalità del sistema operativo mentre l'interrupt viene attivato da un dispositivo hardware per consentire al processore di eseguire la corrispondente routine del gestore di interrupt.
Un sistema operativo è guidato dagli eventi. Un evento può verificarsi all'improvviso durante l'esecuzione di un programma. Attiverà il sistema operativo da eseguire. Questo cambierà la modalità utente in modalità kernel. Dopo l'esecuzione del sistema operativo, il controllo viene passato al programma originale. Trappole e interrupt sono due tipi di eventi. Un trap viene generato da un programma utente mentre un interrupt viene generato da un dispositivo hardware come tastiera, timer, ecc. Un trap passa il controllo al gestore trap e l'interrupt passa il controllo a un gestore di interrupt. Dopo aver eseguito il gestore, il controllo torna al programma originale.
1. Cos'è Trap
- Definizione, Funzionalità
2. Cos'è l'interruzione
- Definizione, Funzionalità
3. Relazione tra trap e interrupt
- Schema dell'associazione
4. Differenza tra trappola e interruzione
- Confronto tra le principali differenze
Interrupt, sistema operativo, trap
I trap vengono generati dal programma utente per richiamare una funzionalità del sistema operativo. Supponiamo che il programma utente richieda di stampare qualcosa sullo schermo. Avrebbe invocato una trappola e il sistema operativo eseguirà la scrittura di tali dati sullo schermo. Le trap vengono utilizzate principalmente per implementare le chiamate di sistema.
Figura 1: tipi di eventi
Un esempio è il seguente. Supponiamo che ci sia una dichiarazione come printf ("% s \ n", str); Si richiamerà la funzione di scrittura per stampare l'output sullo standard output che è il monitor. Ciò invocherà una trappola e passerà il controllo al gestore trap. Quindi, la modalità utente passa alla modalità kernel e il sistema operativo esegue la chiamata di scrittura. Dopo aver completato l'operazione, il controllo viene trasferito alla modalità utente dalla modalità kernel.
Un interrupt viene generato da un dispositivo hardware. Il dispositivo USB, la scheda NIC, la tastiera possono causare interruzioni. Gli interrupt sono asincroni. Pertanto, possono verificarsi in qualsiasi momento.
Un processore ha un pin dedicato chiamato pin di interruzione. È anche chiamato un pin INT. Dispositivi come le tastiere sono collegati al processore tramite il pin di interrupt. Quando viene premuto un tasto, genererà un interrupt. Il processore passerà dal processo attualmente in esecuzione a una routine di gestione degli interrupt. In questo scenario, viene richiamata la routine del gestore di interrupt di tastiera. Dopo aver completato la routine del gestore di interrupt, il processore torna al programma originale in esecuzione. Fondamentalmente, quando si verifica un interrupt, il processore cambia il contesto ed esegue il gestore di interrupt. Dopo il completamento, torna allo stato precedente.
Un processore ha un singolo pin di interruzione ma ci sono più dispositivi hardware. Il controller di interrupt aiuta a condividere il singolo pin di interrupt tra più pin. Il processore comunicherà con il controller di interrupt per determinare quale dispositivo ha effettivamente generato l'interrupt. A seconda di ciò, il processore eseguirà la corrispondente routine di gestione degli interrupt. Può essere la routine del gestore di interrupt timer, USB o tastiera.
Oltre alle trappole e all'interruzione, esiste un altro tipo di evento chiamato eccezioni. Sono generati automaticamente dal processore. Le eccezioni si dividono ulteriormente in difetti e aborti. Un errore è un errore recuperabile mentre un errore è un errore difficile da gestire.
Un trap viene generato da un'istruzione nel programma utente mentre un interrupt viene generato da dispositivi hardware.
Inoltre, una trappola richiama la funzionalità del sistema operativo. Trasferisce il controllo al gestore trap. Un interrupt attiva il processore per eseguire la corrispondente routine del gestore di interrupt.
Inoltre, un trap è sincrono e può arrivare dopo l'esecuzione di qualsiasi istruzione mentre un interrupt è asincrono e può verificarsi durante l'esecuzione di qualsiasi istruzione.
Un trap viene anche chiamato interrupt software mentre un interrupt viene anche chiamato interrupt hardware.
Trap e Interrupt sono due tipi di eventi. La differenza tra trap e interrupt è che il trap viene attivato da un programma utente per richiamare la funzionalità del sistema operativo mentre l'interrupt viene attivato da un dispositivo hardware per consentire al processore di eseguire la corrispondente routine del gestore di interrupt.
1. Sistema operativo n. 14 Cos'è un interrupt? Tipi di interruzioni, Xoviabcs, 31 agosto 2017, disponibile qui.
2. Interruzione software del sistema operativo n Sistema di chiamate in xv6, Xoviabcs, 1 settembre 2017, disponibile qui.