Risposta breve
Entrambe le tastiere si comportano in modo assolutamente uguale per il codice a livello di utente. Potrebbero esserci delle piccole differenze (da nano a micro secondi su un PC moderno) se si scrivono i driver di dispositivo. Se il sistema si blocca, entrambe le tastiere non risolverebbero il problema. Vai per un riavvio difficile.
Risposta lunga TL; DR;
Che cos'è un interrupt?
Quando l'hardware (o qualche componente critico del software interno del sistema operativo, come il kernel) richiede un servizio di processore, attiva un messaggio o un interrupt , che richiede al processore di posticipare qualunque cosa stia facendo e gestire questa richiesta.
Come funziona?
Quando l'hardware genera un interrupt (ad es. Una pressione di un tasto), questa richiesta entra in un controller di interrupt. Il controller quindi interrompe immediatamente la CPU su una singola riga del suo codice macchina (la CPU esegue ancora quest'ultima riga). Una volta che il processore è pronto a soddisfare questa richiesta, richiede a un controller di interruzione una richiesta di interruzione (IRQ) e una routine di gestione. Il controller di interrupt ha una struttura dati interna: la tabella di invio degli interrupt che contiene un puntatore a una routine che dovrebbe essere eseguita dalla CPU per un particolare IRQ.
Tutti i diversi interrupt corrispondono a un livello di richiesta di interruzione limitato (IRQL) ben definito . Ad esempio sui sistemi x86 ci sono 32 IRQL e su x64 e IA64 ce ne sono effettivamente meno - 16 IRQL. Chiaramente, ci sono più dispositivi hardware e servizi software rispetto agli IRQL, il che significa che tutti gli oggetti di sistema condivideranno gli IRQL.
Tabella IRQL per x64
IRQL | Descrizione
--------------------------------------------
15 | Alto profilo
14 | Interruzione / potenza dell'interprocessore
13 | Orologio
12 | Sync
11 | Dispositivo n
.. | ...
3 | Dispositivo 1
2 | Spedizione / DPC
1 | APC
0 | Passive / Basso
I più alti IRQL (con un numero maggiore) hanno una priorità più alta. Tutti i componenti di un sistema tentano di mantenere l'attuale IRQL di un processore al livello più basso possibile - 0. Se si verifica un interrupt di livello superiore, il livello IRQL corrente di un processore viene aumentato e gli interrupt di livello inferiore non verranno gestiti fino a quando tutti gli interrupt con livelli più alti vengono risolti. IRQ può essere gestito in batch se lo scheduler IRQ è in grado di mettere in coda diversi IRQ dello stesso livello per l'esecuzione del processore.
Qual è il punto?
Tutto questo è stato davvero ben progettato per separare l'utente finale dalla complessità dell'hardware e creare un'architettura universale in grado di funzionare con molti tipi di hardware / software.
Il codice a livello di utente (cioè non a livello di kernel) viene eseguito solo quando il processore si trova nell'IRQL Passivo / Basso (0). Il punto è che puoi gestire un evento premuto il tasto nella tua applicazione solo dopo aver gestito tutti gli IRQL. Pertanto, per una tastiera non importa quale IRQL sia assegnato all'interrupt hardware.
IRQL sono solo astrazioni del sistema operativo e non sono impostate su pietra . I corrispondenti IRQ e IRQL sono memorizzati nel registro di Windows (ad esempio) e qualsiasi utente entusiasta può modificarli manualmente.
conclusioni
Citazioni dalla domanda
Poiché le tastiere USB si basano su un driver e un'architettura USB generici che hanno accesso solo a pochi canali IRQ, non possono fornire alla tastiera l'accesso a un IRQ con priorità elevata come farebbe un altro controller (diciamo PS2).
Forse l'autore voleva dire IRQL più basso invece di un minor numero di canali IRQ . Ad ogni modo, non importa davvero in quanto non è visibile all'utente su nessun PC moderno. Le possibili differenze riguardano il livello da nano a micro secondi e si verificano solo a livello di kernel. In entrambi i casi il codice a livello di utente è bloccato dal kernel del sistema operativo.
Questo (se è vero) significa che le tastiere USB sarebbero meno reattive rispetto alle tastiere collegate a un altro tipo di porta?
Non è vero a causa del modo in cui il sistema operativo progettato. Se il sistema operativo è occupato con qualcosa ed è "lento", entrambe le tastiere si comporterebbero in modo identico.
Prendiamo ad esempio una tastiera USB mappata su un IRQ a media priorità, su un sistema difettoso bloccato su un'altra routine di interruzione a media priorità
In questo caso il sistema sarà BSOD, le routine di gestione IRQ devono essere progettate secondo un certo standard (come devono essere veloci, sincrone, non bloccanti ecc.). Qualsiasi deviazione da questo e dal kernel sarà BSOD.
A causa della sua priorità relativamente uguale, gli eventi della tastiera verrebbero ignorati e non sarà possibile inviare Ctrl-Alt-del o qualsiasi altro tasto di emergenza.
Se il sistema si blocca, ci sono molte cose che possono andare storte, ma molto probabilmente la sequenza di tasti IRQL verrà gestita a livello di driver. Il problema è che non verrà recapitato all'applicazione che ha sottoscritto tale notifica, poiché il sistema operativo è impegnato a fare qualcos'altro.