La risposta è che dipende dal fatto che stavate già gestendo un interrupt di tastiera.
La maggior parte delle routine di servizio di interruzione (ISR) hanno un codice al termine di esse che informa l'hardware che è stato "servito". Nel caso del controller della tastiera, i comandi vengono scritti in esso confermando i byte ricevuti. È al momento del riconoscimento che l'hardware del controller della tastiera smette di usare l'elettricità per segnalare una condizione di interruzione.
Se si sta gestendo un interrupt non da tastiera, diciamo che l'allarme di allarme incendio si interrompe, quindi l'hardware della tastiera che asserisce elettricamente l'interruzione si innesca quando si preme il tasto. Il segnale elettrico viene ignorato fino a quando la CPU non ha di nuovo abilitato gli interrupt. Al termine della manutenzione dell'interruzione dell'allarme incendio, l'ISR di allarme incendio conferma i dati e riattiva gli interrupt sulla CPU. Immediatamente, la CPU entra in un interrupt perché il controller della tastiera sta ancora segnalando elettricamente una condizione di interruzione.
Se si sta gestendo un interrupt di tastiera e l'utente rapidamente tipi un secondo 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 affatto. In particolare, se l'ISR ripristina il controller della tastiera attraverso un riconoscimento, ma l'ISR non ha effettivamente ricevuto tutti i byte disponibili dal controller della tastiera, allora questo è un problema.
Spesso un ISR gestisce prima l'interrupt che ha attivato la sua attivazione, quindi, dopo aver riconosciuto l'interrupt, esegue il polling del dispositivo per verificare se ha ricevuto più dati dal primo interrupt. In tal caso, generare un interrupt software per reinserire l'ISR e riparare il dispositivo.
fonte
2010-08-06 20:53:22
in modo che significa che, se fossi in grado di digitare le lettere di due tastiera più veloce del tempo della CPU necessario per gestire l'interrupt, si sarebbe perduto? scusa per rendere ancora vivo questo argomento – Juan
@Juan Ciò dipenderebbe dalla tastiera. Le moderne tastiere hanno un piccolo buffer che salverà gli eventi della tastiera mentre il computer li sta elaborando. La maggior parte delle tastiere assegnerà ai tasti dei caratteri una posizione (X + Y) per conservare larghezza di banda e denaro, al costo di impedire che alcune combinazioni di tasti vengano registrate correttamente in condizioni estreme in cui la CPU non può tenere il passo, ma alcune tastiere inviano anche chiavi specifiche individualmente. La maggior parte delle tastiere invia eventi chiave modificatori separatamente, ad esempio, e alcune tastiere di gioco fanno lo stesso per 'WASD' e i tasti freccia. – YoYoYonnY