Domanda

Quando si entra in un gestore inteerupt, per prima cosa "interrupt disabilitare" a che la CPU (usando qualcosa come l'istruzione CLI su x86). Durante il tempo che gli interrupt sono disattivati, assumere dire l'utente preme la lettera 'a' sulla tastiera che normalmente causare un interrupt. Ma dal momento che gli interrupt sono disabilitati, questo significa che:

  1. il gestore di interrupt per 'a' non sarebbe mai essere invocato, in quanto gli interrupt sono disabilitati nella sezione critica o
  2. l'allarme viene gestito dal sistema operativo ma ritardata, fino interrupt vengono nuovamente attivati. In particolare, sarà l'utente necessità di premere 'un' nuovo, se la prima volta che preme 'un' era in un momento in cui gli interrupt erano disabile?
È stato utile?

Soluzione

Spesso, un interrupt è "in coda" di hardware.

[Un interrupt è spesso solo una porta logica che può attaccare su; una volta che è acceso, rimane acceso per un po '.]

Se l'utente hit 'un' una volta soltanto durante l'intervallo quando gli interrupt sono disabilitati, sarebbe registrare come un interrupt quando sono stati ri-abilitati.

Se l'utente in qualche modo è riuscito a colpire 'a' due volte durante l'intervallo quando gli interrupt erano disabili, avrebbe registrare come un interrupt quando se abilitato. Se era il primo o il secondo dipende dalla configurazione esatta porta logica.

Altri suggerimenti

La risposta è che dipende dal fatto che si erano già gestendo un interrupt di tastiera.

La maggior parte delle routine di servizio di interrupt (ISR) avere il codice al termine di essi che informa l'hardware che è stato "servito". Nel caso del controllo da tastiera, comandi sono scritti ad esso riconoscere i byte ricevuti. È al momento del riconoscimento che l'hardware del controller tastiera smette di utilizzare energia elettrica per segnalare una condizione di interruzione.

Se si sta gestendo un interrupt non-tastiera, diciamo che l'interrupt di allarme antincendio, quindi l'hardware della tastiera che afferma elettricamente l'interrupt si innescherà come si preme il tasto. Il segnale elettrico viene ignorato finché la CPU ha interrupt attivato nuovamente. Al termine del servizio del interrupt allarme incendio, l'ISR allarme incendio riconosce qualsiasi dato e riabilita gli interrupt sulla CPU. Immediatamente, la CPU entra in un interrupt poiché il controller tastiera è ancora segnalando elettricamente una condizione di interrupt.

Se si sta gestendo un interrupt di tastiera, e l'utente rapidamente tipi di secondo di battitura durante l'esecuzione della ISR tastiera, quindi c'è la possibilità di perdere i dati a partire dalla seconda sequenza di tasti, o di ricevere in un secondo momento se non del tutto. In particolare, se i reset ISR controllo da tastiera attraverso un riconoscimento, ma l'ISR non ha effettivamente ricevuto tutti i byte disponibili dal controller tastiera, allora questo è un problema.

Spesso, un ISR sarà prima di gestire l'interrupt che ha innescato la sua attivazione, quindi dopo aver riconosciuto l'interruzione, il polling il dispositivo per vedere se ha ricevuto più dati dal momento che la prima interruzione. Se è così, generare un interrupt software di ri-entrare nel ISR e il servizio del dispositivo.

La semplice risposta è che un interrupt disattiva automaticamente ulteriori interrupt. Interrupt dovrebbe e sono disabilitati solo per il minor tempo possibile. La prima istruzione nella tastiera originale ISR AT BIOS era STI per attivare gli interrupt.

  

La risposta felice è che il PIC priorità gli interrupt hardware e anche con gli interrupt abilitati solo il timer interrupt IRQ0 possono interrompere l'ISR tastiera. Naturalmente un NMI può verificarsi in entrambi i casi, ma fortunatamente questo non avviene mai su un PC corrente.

Sarebbe fisicamente impossibile per un utente di stampa "a" due volte durante la normale elaborazione di un interrupt. Sarebbe terribilmente improbabile anche se premuto due tasti alla volta, ma l'hardware dovrebbe tenere almeno una chiave fino a quando la CPU è pronto per farlo.

Su PC - questo sta raggiungendo via del ritorno ai miei giorni PCXT -. Sottosistema tastiera può tenere nella zona di 13 pressioni di tasti per la CPU

Disattiva interrupt hanno la prova differente. 1. Errore hardware 2.exceptions {ad esempio: Divide per zero} e ect.

  1. quando guasto hardware occure, il sistema operativo deve operare miscela.
  2. quando l'occure eccezione, os deve mangae sistema e passare un altro processo per gestire interrupt.

O per esempio: per il dispositivo di I / O. se l'interrupt non è stato, il computer non era l'efficienza!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top