Kısa cevap
Her iki klavye de kullanıcı seviyesi kodu için kesinlikle eşit performans gösterir. Aygıt sürücüleri yazarsanız, küçük farklılıklar olabilir ( modern bir bilgisayarda nano - mikro saniye). Sistem kilitlenirse, her iki klavye de sorunu çözmez. Sabit yeniden başlatma için gidin.
Uzun cevap TL; DR;
Kesme nedir?
Donanım (veya çekirdek gibi bir işletim sistemi iç yazılımının kritik bir parçası) bir işlemci hizmeti gerektirdiğinde, işlemcinin yaptığı her şeyi ertelemesini ve bu isteği işlemesini isteyen bir mesaj veya kesinti başlatır.
Nasıl çalışır?
Donanım bir kesme ürettiğinde (örn. Tuşa basma), bu istek bir kesme denetleyicisine gider. Daha sonra kontrolör CPU'yu makine kodunun tek bir satırında derhal keser (CPU hala bu son satırı yürütür). İşlemci bu isteğe hizmet vermeye hazır olduğunda, bir Kesinti İsteği (IRQ) ve bir işleme rutini için bir kesme denetleyicisi ister . Kesme denetleyicisinin , belirli bir IRQ için CPU tarafından yürütülmesi gereken bir rutuya işaretçi içeren bir İç Veri Yapısı - Kesme Dağıtım Tablosu vardır.
Tüm farklı kesintiler, iyi tanımlanmış sınırlı Kesme İsteği Seviyesine (IRQL) karşılık gelir. Örneğin, x86 sistemlerde 32 IRQL vardır ve x64 ve IA64'te aslında daha az - 16 IRQL vardır. Açıkçası, IRQL'lerden daha fazla donanım aygıtı ve yazılım hizmeti olduğu anlamına gelir, bu da tüm sistem nesnelerinin IRQL'leri paylaşacağı anlamına gelir.
X64 için IRQL tablosu
IRQL | Açıklama
--------------------------------------------
15 | Yüksek / Profil
14 | İşlemciler arası kesinti / Güç
13 | Saat
12 | Eşitleme
11 | Cihaz N
.. | ...
3 | Cihaz 1
2 | Sevk / DPC
1 | APC
0 | Pasif / Düşük
Daha yüksek IRQL (daha büyük sayı ile) daha yüksek önceliğe sahiptir. Bir sistemin tüm bileşenleri bir işlemcinin geçerli IRQL değerini mümkün olan en düşük seviyede tutmaya çalışır - 0. Daha yüksek düzeyde bir kesme oluşursa, bir işlemcinin geçerli IRQL seviyesi yükseltilir ve daha düşük seviyeli kesmeler işleme alınmaz. yüksek seviyeli tüm kesintiler giderilir. IRQ zamanlayıcı, işlemci yürütmesi için aynı düzeydeki birkaç IRQ'yu sıraya alabiliyorsa, IRQ toplu olarak işlenebilir.
Amaç ne?
Tüm bunlar, son kullanıcıyı donanımın karmaşıklıklarından ayırmak ve birçok donanım / yazılım türüyle çalışabilen evrensel bir mimari yapmak için gerçekten iyi tasarlanmıştır.
Kullanıcı seviyesi kodu (yani çekirdek seviyesi değil) yalnızca işlemci Pasif / Düşük (0) IRQL'deyken yürütülür. Mesele şu ki, uygulamanızdaki bir tuşa basılı olayı ancak tüm IRQL'ler işlendikten sonra işleyebilirsiniz. Bu nedenle, bir klavye için donanım kesintisine hangi IRQL'in atandığı önemli değildir.
IRQL sadece OS soyutlamalarıdır ve taş olarak ayarlanmamıştır . Karşılık gelen IRQ ve IRQL, Windows kayıt defterinde saklanır (örneğin) ve herhangi bir hevesli kullanıcı bunları manuel olarak değiştirebilir.
Sonuçlar
Sorudan alıntılar
USB klavyeler, yalnızca birkaç IRQ kanalına erişimi olan bir USB genel sürücüsüne ve mimarisine güvendiğinden, klavyenin bir IRQ'ya başka bir (PS2 diyelim) denetleyicisinin yaptığı gibi önceliğe erişmesine izin veremez.
Belki de yazar, daha az IRQ kanalı yerine daha düşük IRQL anlamına geliyordu . Her neyse, herhangi bir modern PC'de kullanıcı tarafından görülmediği için gerçekten önemli değil. Olası farklılıklar nano - mikro- saniye düzeyindedir ve sadece çekirdek düzeyinde gerçekleşir. Her iki durumda da kullanıcı seviyesi kodu işletim sistemi çekirdeği tarafından engellenir.
Bu (doğruysa), USB klavyelerin başka bir bağlantı noktası türüne takılan klavyelerden daha az duyarlı olacağı anlamına mı geliyor?
İşletim sistemi tasarlandığı için bu doğru değil. İşletim sistemi bir şeyle meşgulse ve "yavaş" ise, her iki klavye de aynı şekilde davranır.
Örneğin, başka bir orta öncelikli kesme yordamına yapışmış hatalı bir sistemde, orta öncelikli bir IRQ ile eşlenmiş bir USB klavye alın
Bu durumda sistem BSOD olacaktır, IRQ işleme rutinleri belirli bir standarda (örneğin hızlı, senkronize, tıkanmasız olmalıdır) göre tasarlanmalıdır. Bundan ve çekirdekten sapma BSOD olacaktır.
Nispeten eşit önceliği nedeniyle, klavye olayları yok sayılır ve Ctrl-Alt-del veya başka bir acil durum tuş vuruşu gönderemezsiniz.
Sistem takılırsa, yanlış gidebilecek birçok şey vardır, ancak büyük olasılıkla tuş vuruşu IRQL sürücü düzeyinde işlenir. Sorun, işletim sistemi başka bir şey yapmakla meşgul olduğundan, bu bildirim için abone olan uygulamaya teslim edilmeyecektir.