संक्षिप्त जवाब
दोनों कीबोर्ड उपयोगकर्ता-स्तरीय कोड के लिए समान रूप से प्रदर्शन करेंगे। यदि आप डिवाइस ड्राइवर लिखते हैं, तो छोटे अंतर हो सकते हैं ( नैनो से माइक्रो पीसी पर सेकंड)। यदि सिस्टम हैंग होता है, तो दोनों कीबोर्ड समस्या का समाधान नहीं करेंगे। कठिन रिबूट के लिए जाओ।
लंबे उत्तर टीएल; डीआर;
एक बाधा क्या है?
जब हार्डवेयर (या ओएस आंतरिक सॉफ्टवेयर के कुछ महत्वपूर्ण टुकड़े, जैसे कर्नेल) को एक प्रोसेसर सेवा की आवश्यकता होती है यह एक संदेश या एक रुकावट को निकालता है , जो प्रोसेसर को अनुरोध करता है कि वह जो कुछ भी कर रहा है उसे स्थगित करें, और इस अनुरोध को संभाल लें।
यह काम किस प्रकार करता है?
जब हार्डवेयर एक अवरोध उत्पन्न करता है (जैसे एक कुंजी प्रेस), तो यह अनुरोध एक बाधा नियंत्रक में चला जाता है। नियंत्रक तब सीपीयू को उसके मशीन कोड की एक लाइन पर तुरंत बाधित करता है (सीपीयू अभी भी इस अंतिम लाइन को निष्पादित करता है)। एक बार जब प्रोसेसर इस अनुरोध को पूरा करने के लिए तैयार हो जाता है, तो यह एक इंटरप्ट रिक्वेस्ट (IRQ) के लिए एक बाधा नियंत्रक और एक हैंडलिंग रूटीन पूछता है। इंटरप्ट कंट्रोलर में एक आंतरिक डेटा संरचना होती है - इंटरप्ट डिस्पैच टेबल जिसमें एक रूटीन के लिए एक पॉइंटर होता है जिसे एक विशेष आईआरक्यू के लिए सीपीयू द्वारा निष्पादित किया जाना चाहिए।
सभी अलग-अलग व्यवधान अच्छी तरह से परिभाषित सीमित बाधित अनुरोध स्तर (IRQL) के अनुरूप हैं । उदाहरण के लिए x86 सिस्टम पर 32 IRQL हैं, और x64 और IA64 पर वास्तव में कम हैं - 16 IRQL। स्पष्ट रूप से, कि IRQLs की तुलना में अधिक हार्डवेयर डिवाइस और सॉफ़्टवेयर सेवाएँ हैं, जिसका अर्थ है कि सभी सिस्टम ऑब्जेक्ट IRQLs साझा करेंगे।
X64 के लिए IRQLs तालिका
IRQL | विवरण
--------------------------------------------
15 | उच्च प्रोफ़ाइल
14 | इंटरप्रोसेसर बाधा / शक्ति
13 | घड़ी
12 | सिंक
11 | डिवाइस एन
.. | ...
3 | डिवाइस 1
2 | डिस्पैच / डीपीसी
1 | एपीसी
0 | निष्क्रिय / कम
उच्च IRQL (बड़ी संख्या के साथ) उच्च प्राथमिकता है। एक सिस्टम के सभी घटक एक प्रोसेसर के वर्तमान IRQL को न्यूनतम संभव स्तर पर रखने की कोशिश करते हैं - 0. यदि एक उच्च स्तर की बाधा उत्पन्न होती है, तो एक प्रोसेसर के वर्तमान IRQL स्तर को ऊपर उठाया जाता है और निचले स्तर के साथ व्यवधान को तब तक संभाला नहीं जाता है। उच्च स्तरों के साथ सभी व्यवधानों का समाधान किया जाता है। यदि IRQ शेड्यूलर निष्पादन के लिए समान स्तर के कई IRQ की कतार बनाने में सक्षम है, तो IRQ को बैच-हैंडल किया जा सकता है।
मुद्दा क्या है?
यह सब वास्तव में अच्छी तरह से हार्डवेयर की जटिलताओं से एंड-यूज़र को अलग करने और एक सार्वभौमिक वास्तुकला बनाने के लिए डिज़ाइन किया गया है जो कई प्रकार के हार्डवेयर / सॉफ़्टवेयर के साथ काम कर सकता है।
उपयोगकर्ता-स्तरीय कोड (यानी कर्नेल-स्तर नहीं) केवल तभी निष्पादित किया जाता है जब प्रोसेसर पैसिव / लो (0) IRQL पर हो। बिंदु यह है कि, आप सभी IRQLs को संभालने के बाद अपने आवेदन में केवल एक कुंजी-दबाए गए ईवेंट को संभाल सकते हैं। इसलिए, एक कीबोर्ड के लिए यह मायने नहीं रखता है कि आईआरक्यूएल को हार्डवेयर इंटरप्ट को क्या सौंपा गया है।
IRQL केवल OS एब्स्ट्रक्शन हैं और पत्थर में सेट नहीं हैं । इसके विपरीत IRQ और IRQL विंडोज रजिस्ट्री (उदाहरण के लिए) में संग्रहीत हैं, और कोई भी उत्साही उपयोगकर्ता उन्हें मैन्युअल रूप से बदल सकता है।
निष्कर्ष
प्रश्न से उद्धरण
क्योंकि USB कीबोर्ड एक USB जेनेरिक ड्राइवर और आर्किटेक्चर पर भरोसा करते हैं जिनकी केवल कुछ IRQ चैनलों तक पहुंच होती है, इसलिए यह कीबोर्ड को IRQ को प्राथमिकता-उच्च के रूप में एक्सेस नहीं दे सकता है (जैसे PS2) नियंत्रक।
शायद लेखक का मतलब कम IRQ चैनलों के बजाय IRQL कम था । वैसे भी, यह वास्तव में कोई फर्क नहीं पड़ता क्योंकि यह किसी भी आधुनिक पीसी पर उपयोगकर्ता को दिखाई नहीं देता है। संभव मतभेद की हैं नैनो के लिए माइक्रो सेकंड स्तर और वे केवल कर्नेल स्तर पर होता है। दोनों मामलों में उपयोगकर्ता-स्तर कोड ओएस कर्नेल द्वारा अवरुद्ध है।
क्या यह (यदि यह सच है) का अर्थ है कि यूएसबी कीबोर्ड किसी अन्य पोर्ट प्रकार पर प्लग किए गए कीबोर्ड की तुलना में कम उत्तरदायी होगा?
यह सच नहीं है क्योंकि जिस तरह से ओएस का डिज़ाइन किया गया है। यदि ओएस कुछ के साथ व्यस्त है और "धीमा" है, तो दोनों कीबोर्ड पहचान के साथ व्यवहार करेंगे।
उदाहरण के लिए एक यूएसबी कीबोर्ड को एक प्राथमिकता वाले IRQ में मैप किया गया है, जो एक दोषपूर्ण प्रणाली पर है जो एक अन्य मध्यम प्राथमिकता वाले रुकावट रूटीन पर अटक गया है
इस मामले में यह प्रणाली बीएसओडी होगी, आईआरक्यू हैंडलिंग रूटीन को एक निश्चित मानक तक डिजाइन किया जाना चाहिए (जैसे कि उन्हें तेज, तुल्यकालिक, गैर-अवरुद्ध होना चाहिए)। इससे कोई भी विचलन और कर्नेल बीएसओडी होगा।
इसकी अपेक्षाकृत समान प्राथमिकता के कारण, कीबोर्ड की घटनाओं को नजरअंदाज कर दिया जाएगा और आप Ctrl-Alt-del या किसी अन्य आपातकालीन कीस्टेकेक को भेजने में सक्षम नहीं होंगे।
यदि सिस्टम हैंग होता है तो बहुत सारी चीजें हैं जो गलत हो सकती हैं, लेकिन सबसे अधिक संभावना है कि कीस्ट्रोक आईआरक्यूएल को चालक स्तर पर नियंत्रित किया जाएगा। समस्या यह है, यह ऐसे एप्लिकेशन को वितरित नहीं किया जाएगा जो इस तरह की अधिसूचना के लिए सदस्यता लेता है, क्योंकि ओएस कुछ और करने में व्यस्त है।