2010-08-06 36 views
9

एक पूर्णांक हैंडलर दर्ज करते समय, हम पहले उस सीपीयू पर "इंटरप्ट अक्षम करें" (x86 पर क्ली निर्देश जैसे कुछ का उपयोग करके)। उस समय के दौरान जब इंटरप्ट अक्षम होते हैं, मान लें कि उपयोगकर्ता ने कीबोर्ड पर 'ए' अक्षर दबाया है जो आम तौर पर बाधा उत्पन्न करता है। लेकिन चूंकि बीच में आता है अक्षम हैं, इसका मतलब यह है कि:इंटरप्ट अक्षम करने का क्या अर्थ है?

  1. के लिए बाधा हैंडलर 'एक', कभी नहीं लागू किया जा के बाद से बीच में आता है महत्वपूर्ण अनुभाग या में अक्षम हैं
  2. बाधा ओएस द्वारा नियंत्रित किया जाएगा, लेकिन देरी हो गई, जब तक कि इंटरप्ट दोबारा सक्षम न हों। विशेष रूप से, क्या उपयोगकर्ता को 'ए' फिर से दबाए जाने की आवश्यकता होगी, अगर पहली बार 'ए' दबाए जाने पर इंटरप्ट को अक्षम किया गया था?

उत्तर

5

अक्सर, एक बाधा हार्डवेयर द्वारा "कतारबद्ध" होती है।

[एक बाधा अक्सर एक तर्क गेट है जो टिक सकता है; एक बार यह चालू हो जाने पर, यह थोड़ी देर तक रहता है।]

यदि उपयोगकर्ता इंटरप्ट विफल होने पर केवल अंतराल के दौरान 'ए' दबाता है, तो यह फिर से सक्षम होने पर एक बाधा के रूप में पंजीकृत होगा।

यदि इंटरप्ट विफल होने पर उपयोगकर्ता किसी भी तरह अंतराल के दौरान दो बार 'ए' हिट करने में कामयाब रहा, तो जब सक्षम हो तो कोई एक बाधा के रूप में पंजीकृत होगा। चाहे वह पहला या दूसरा सटीक तर्क गेट कॉन्फ़िगरेशन पर निर्भर करता हो।

+1

तो इसका मतलब है कि यदि मैं सीपीयू को बाधा को संभालने के लिए तेज़ी से दो कीबोर्ड अक्षरों को टाइप करने में सक्षम था, तो कोई खो जाएगा? इस विषय को फिर से जीवंत बनाने के लिए खेद है – Juan

+0

@ जुआन जो कीबोर्ड पर निर्भर करेगा। आधुनिक कीबोर्ड में एक छोटा बफर होता है जो आपके कंप्यूटर को संसाधित करते समय कीबोर्ड ईवेंट सहेज लेगा। अधिकतर कुंजीपटल बैंडविड्थ और धन को बचाने के लिए चरित्र कीप्रेस को एक स्थिति (एक्स + वाई) असाइन करेंगे, कुछ महत्वपूर्ण प्रेस संयोजनों को चरम स्थितियों के तहत सही ढंग से पंजीकरण करने से रोकने के लिए जहां सीपीयू नहीं रख सकता है, लेकिन कुछ कीबोर्ड भी विशिष्ट कुंजी भेजते हैं व्यक्तिगत रूप से। अधिकांश कीबोर्ड संशोधक कुंजी घटनाओं को अलग-अलग भेज देंगे, उदाहरण के लिए, और कुछ गेमिंग कीबोर्ड 'WASD' और तीर कुंजियों के लिए समान होते हैं। – YoYoYonnY

5

उत्तर यह है कि यह इस बात पर निर्भर करता है कि आप पहले से ही कीबोर्ड इंटरप्ट को संभालने वाले हैं या नहीं।

अधिकांश इंटरप्ट सेवा दिनचर्या (आईएसआर) में उनको समाप्त करने पर कोड होता है जो हार्डवेयर को सूचित करता है कि इसे "सर्विस किया गया" है। कीबोर्ड नियंत्रक के मामले में, प्राप्त बाइट्स को स्वीकार करने के लिए आदेश लिखे गए हैं। यह स्वीकृति के समय है कि कीबोर्ड नियंत्रक हार्डवेयर एक इंटरप्ट स्थिति को सिग्नल करने के लिए बिजली का उपयोग बंद कर देता है।

यदि आप गैर-कीबोर्ड इंटरप्ट को संभालने वाले हैं, तो मान लें कि फायर अलार्म बाधित है, फिर कुंजीपटल हार्डवेयर जो विद्युत् रूप से हस्तक्षेप करता है, कुंजी को दबाए जाने पर ट्रिगर करेगा। जब तक CPU में इंटरप्ट सक्षम नहीं होते हैं तब तक विद्युत सिग्नल को अनदेखा किया जाता है। आग अलार्म की सेवा करने के अंत में, आग अलार्म आईएसआर जो भी डेटा स्वीकार करता है और सीपीयू पर इंटरप्ट को फिर से सक्षम करता है। तुरंत, सीपीयू एक बाधा डालता है क्योंकि कीबोर्ड नियंत्रक अभी भी एक इंटरप्ट स्थिति को विद्युत् रूप से संकेत दे रहा है।

यदि आप कीबोर्ड बाधा संभाल रहे हैं, और जल्दी से उपयोगकर्ता प्रकार अपने कुंजीपटल ISR के निष्पादन के दौरान एक दूसरा कीस्ट्रोक, तो दूसरी कीस्ट्रोक, या इसे प्राप्त करने बाद में यदि का का डेटा गुम का एक मौका है बिलकुल। विशेष रूप से, यदि आईएसआर कुंजीपटल नियंत्रक को एक स्वीकृति के माध्यम से रीसेट करता है, लेकिन आईएसआर को वास्तव में कीबोर्ड नियंत्रक से सभी उपलब्ध बाइट्स प्राप्त नहीं हुए हैं, तो यह एक समस्या है।

अक्सर, एक आईएसआर पहली बार बाधा को संभालने में मदद करता है, जो इसके सक्रियण को ट्रिगर करता है, फिर बाधा को स्वीकार करने के बाद, डिवाइस को यह देखने के लिए मतदान करें कि इसे पहले बाधा के बाद से अधिक डेटा प्राप्त हुआ है या नहीं। यदि ऐसा है, तो आईएसआर दोबारा दर्ज करने और डिवाइस की सेवा करने के लिए सॉफ़्टवेयर बाधा उत्पन्न करें।

0

किसी उपयोगकर्ता के लिए बाधा के सामान्य प्रसंस्करण के दौरान दो बार "ए" दबाकर शारीरिक रूप से असंभव होगा। यह बहुत ही असंभव होगा, भले ही वह एक समय में दो चाबियाँ दबाए, लेकिन हार्डवेयर को कम से कम एक कुंजी रखना चाहिए जब तक कि CPU इसे प्राप्त करने के लिए तैयार न हो।

पीसी पर - यह मेरे पीसीXT दिनों में वापस पहुंच रहा है - कीबोर्ड उपप्रणाली सीपीयू के लिए 13 कुंजी प्रेस के क्षेत्र में हो सकती है।

1

सरल उत्तर यह है कि एक बाधा स्वचालित रूप से और बाधाओं को अक्षम करती है। इंटरप्ट्स केवल सबसे कम समय के लिए अक्षम और अक्षम कर सकते हैं। इंटरप्ट को सक्षम करने के लिए मूल एटी BIOS कीबोर्ड आईएसआर में पहला निर्देश STI था।

खुश जवाब यह है कि PIC प्राथमिकता हार्डवेयर बीच में आता है और यहां तक ​​कि बीच में आता है केवल टाइमर व्यवधान IRQ0 सक्षम कुंजीपटल ISR बाधित कर सकते हैं के साथ है। बेशक एक एनएमआई किसी भी तरह से हो सकता है लेकिन खुशी से यह वर्तमान पीसी पर कभी नहीं होता है।

-2

इंटरप्ट अक्षम करने के अलग-अलग सबूत हैं। 1. हार्डवेयर गलती 2. अपवाद {उदाहरण के लिए: शून्य से विभाजित करें} और ect।

  1. जब हार्डवेयर गलती होती है, तो ओएस को मिश्रण संचालित करना चाहिए।
  2. जब अपवाद होता है, तो सिस्टम को मैंगे करना चाहिए और इंटरप्ट को संभालने के लिए एक और प्रक्रिया स्विच करना चाहिए।

या उदाहरण के लिए: I/O डिवाइस के लिए। यदि इंटरप्ट नहीं था, तो कंप्यूटर दक्षता नहीं था!