Jawaban singkat
Kedua keyboard akan tampil sama rata untuk kode tingkat pengguna. Mungkin ada perbedaan kecil ( nano ke detik mikro pada PC modern) jika Anda menulis driver perangkat. Jika sistem hang, kedua keyboard tidak akan menyelesaikan masalah. Lakukan boot ulang keras.
Jawaban panjang TL; DR;
Apa itu interupsi?
Ketika perangkat keras (atau bagian penting dari perangkat lunak internal OS, seperti kernel) memerlukan layanan prosesor, ia akan mengirim pesan atau interupsi , yang meminta prosesor untuk menunda apa pun yang dilakukannya, dan menangani permintaan ini.
Bagaimana itu bekerja?
Ketika perangkat keras menghasilkan interupsi (misalnya, tekan tombol), permintaan ini masuk ke pengontrol interupsi. Pengontrol kemudian segera menginterupsi CPU pada satu baris kode mesinnya (CPU masih menjalankan baris terakhir ini). Setelah prosesor siap untuk melayani permintaan ini, ia meminta pengontrol interupsi untuk Permintaan Interupsi (IRQ) dan rutin penanganan. Interrupt controller memiliki struktur data internal - Interrupt Dispatch Table yang berisi pointer ke rutin yang seharusnya dijalankan oleh CPU untuk IRQ tertentu.
Semua interupsi berbeda sesuai dengan Tingkat Permintaan Interupsi (IRQL) terbatas yang didefinisikan dengan baik . Misalnya pada sistem x86 ada 32 IRQL, dan pada x64 dan IA64 sebenarnya lebih sedikit - 16 IRQL. Jelas, bahwa ada lebih banyak perangkat keras dan layanan perangkat lunak daripada IRQL yang berarti semua beberapa objek sistem akan berbagi IRQL.
Tabel IRQL untuk x64
IRQL | Deskripsi
--------------------------------------------
15 | Kalangan atas
14 | Interprocessor interrupt / Power
13 | Jam
12 | Sinkronkan
11 | Perangkat N
.. | ...
3 | Perangkat 1
2 | Pengiriman / DPC
1 | APC
0 | Pasif / Rendah
IRQL lebih tinggi (dengan jumlah lebih besar) memiliki prioritas lebih tinggi. Semua komponen sistem mencoba menjaga IRQL saat ini dari prosesor pada tingkat serendah mungkin - 0. Jika terjadi gangguan tingkat yang lebih tinggi, maka tingkat prosesor IRQL saat ini dinaikkan dan interupsi dengan tingkat yang lebih rendah tidak akan ditangani hingga semua interupsi dengan level yang lebih tinggi diselesaikan. IRQ dapat ditangani secara batch jika penjadwal IRQ mampu mengantre beberapa IRQ dengan level yang sama untuk eksekusi prosesor.
Apa intinya?
Ini semua telah dirancang dengan sangat baik untuk memisahkan pengguna akhir dari kompleksitas perangkat keras dan membuat arsitektur universal yang dapat bekerja dengan banyak jenis perangkat keras / perangkat lunak.
Kode tingkat pengguna (yaitu bukan tingkat kernel) hanya dieksekusi ketika prosesor berada pada IRQL Pasif / Rendah (0). Intinya adalah, Anda hanya dapat menangani acara yang ditekan tombol di aplikasi Anda setelah semua IRQL ditangani. Oleh karena itu, untuk keyboard, apa pun IRQL yang ditetapkan untuk interupsi perangkat keras.
IRQL hanya abstraksi OS dan tidak diatur dalam batu . IRQ dan IRQL yang sesuai disimpan di registri Windows (misalnya), dan setiap pengguna yang antusias dapat mengubahnya secara manual.
Kesimpulan
Kutipan dari pertanyaan
Karena keyboard USB mengandalkan driver generik USB dan arsitektur yang hanya memiliki akses ke beberapa saluran IRQ, keyboard tidak dapat memberikan akses keyboard ke IRQ yang setinggi prioritas seperti pengendali (katakanlah PS2) lainnya.
Mungkin penulis berarti IRQL lebih rendah daripada saluran IRQ lebih sedikit . Bagaimanapun, itu tidak terlalu penting karena tidak terlihat oleh pengguna di PC modern mana pun. Perbedaan yang mungkin adalah dari tingkat nano ke mikro dan hanya terjadi pada tingkat kernel. Dalam kedua kasus, kode tingkat pengguna diblokir oleh kernel OS.
Apakah ini (jika itu benar) berarti keyboard USB akan kurang responsif daripada keyboard yang terhubung ke jenis port lain?
Itu tidak benar karena cara OS dirancang. Jika OS sibuk dengan sesuatu dan "lambat", kedua keyboard akan berperilaku identik.
Ambil contoh keyboard USB yang dipetakan ke IRQ prioritas menengah, pada sistem yang salah yang terjebak pada rutinitas interupsi prioritas menengah lainnya.
Dalam hal ini sistem akan BSOD, rutinitas penanganan IRQ harus dirancang hingga standar tertentu (seperti mereka harus cepat, sinkron, non-pemblokiran, dll.) Setiap penyimpangan dari ini dan kernel akan BSOD.
Karena prioritasnya yang relatif sama, acara keyboard akan diabaikan dan Anda tidak akan dapat mengirim Ctrl-Alt-del atau keystroke darurat lainnya.
Jika sistem hang ada banyak hal yang bisa salah, tetapi kemungkinan besar keystroke IRQL akan ditangani di tingkat driver. Masalahnya adalah, itu tidak akan dikirimkan ke aplikasi yang berlangganan pemberitahuan tersebut, karena OS sedang sibuk melakukan sesuatu yang lain.