अवरोध (इंटरप्ट)

डिजिटल कम्प्यूटर में, एक रुकावट (कभी-कभी ट्रैप के रूप में संदर्भित) केंद्रीय प्रसंस्करण इकाई के लिए वर्तमान में निष्पादित कोड (अनुमति होने पर) को बाधित करने का अनुरोध है, ताकि घटना को समयबद्ध तरीके से संसाधित किया जा सके। यदि अनुरोध स्वीकार किया जाता है, तो प्रोसेसर अपनी वर्तमान गतिविधियों को निलंबित कर देगा, अपने राज्य (कंप्यूटर विज्ञान) को बचाएगा, और घटना से निपटने के लिए एक इंटरप्ट हैंडलर (या इंटरप्ट सर्विस रूटीन, आईएसआर) नामक एक फ़ंक्शन (प्रोग्रामिंग) निष्पादित करेगा। यह रुकावट अक्सर अस्थायी होती है, जिससे सॉफ्टवेयर फिर से शुरू हो जाता है इंटरप्ट हैंडलर के खत्म होने के बाद सामान्य गतिविधियां, हालांकि इंटरप्ट इसके बजाय घातक त्रुटि का संकेत दे सकता है। व्यवधान आमतौर पर हार्डवेयर उपकरणों द्वारा इलेक्ट्रॉनिक या भौतिक स्थिति परिवर्तनों को इंगित करने के लिए उपयोग किया जाता है जिसके लिए समय-संवेदी ध्यान देने की आवश्यकता होती है। कंप्यूटर मल्टीटास्किंग को लागू करने के लिए इंटरप्ट्स का भी आमतौर पर उपयोग किया जाता है, खासकर रीयल-टाइम कंप्यूटिंग में। सिस्टम जो इन तरीकों से इंटरप्ट्स का उपयोग करते हैं उन्हें इंटरप्ट-संचालित कहा जाता है।

प्रकार
कंप्यूटर हार्डवेयर या सॉफ़्टवेयर ईवेंट के जवाब में इंटरप्ट सिग्नल जारी किए जा सकते हैं। इन्हें क्रमशः हार्डवेयर इंटरप्ट्स या सॉफ़्टवेयर इंटरप्ट्स के रूप में वर्गीकृत किया जाता है। किसी विशेष प्रोसेसर के लिए, इंटरप्ट प्रकार की संख्या आर्किटेक्चर द्वारा सीमित होती है।

हार्डवेयर बाधित
हार्डवेयर इंटरप्ट हार्डवेयर की स्थिति से संबंधित एक स्थिति है जिसे बाहरी हार्डवेयर डिवाइस द्वारा सिग्नल किया जा सकता है, उदाहरण के लिए, पीसी पर एक व्यवधान अनुरोध (IRQ) लाइन, या प्रोसेसर लॉजिक में एम्बेडेड डिवाइस द्वारा पता लगाया जाता है (जैसे, CPU टाइमर) IBM सिस्टम/370 में), यह संचार करने के लिए कि डिवाइस को ऑपरेटिंग सिस्टम (OS) से ध्यान देने की आवश्यकता है या, यदि कोई OS नहीं है, तो CPU पर चल रहे बेयर-मेटल प्रोग्राम से। ऐसे बाहरी उपकरण कंप्यूटर का हिस्सा हो सकते हैं (जैसे, डिस्क नियंत्रक) या वे बाह्य बाह्य उपकरण हो सकते हैं। उदाहरण के लिए, कीबोर्ड (कंप्यूटिंग) कुंजी दबाने या माउस (कंप्यूटिंग) को PS/2 पोर्ट में प्लग करने से हार्डवेयर बाधित होता है जिससे प्रोसेसर कीस्ट्रोक या माउस स्थिति को पढ़ने का कारण बनता है।

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

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

कुछ पुराने सिस्टम्स पर, जैसे 1964 सीडीसी 3600, सभी व्यवधान एक ही स्थान पर गए, और OS ने सर्वोच्च-प्राथमिकता वाले बकाया बेपर्दा व्यवधान को निर्धारित करने के लिए एक विशेष निर्देश का उपयोग किया। समकालीन प्रणालियों पर, आम तौर पर प्रत्येक प्रकार के व्यवधान (या प्रत्येक व्यवधान स्रोत के लिए) के लिए एक विशिष्ट व्यवधान दिनचर्या होती है, जिसे अक्सर एक या अधिक व्यवधान सदिश तालिकाओं के रूप में लागू किया जाता है।

मास्किंग
किसी रुकावट को छिपाने का मतलब उसे निष्क्रिय करना है, इसलिए इसे स्थगित कर दिया गया है या उपेक्षित प्रोसेसर द्वारा, जबकि एक रुकावट को अनमास्क करना इसे सक्षम करना है। प्रोसेसर में आमतौर पर एक आंतरिक इंटरप्ट मास्क रजिस्टर होता है, जो चयनात्मक सक्षम करने की अनुमति देता है (और अक्षम करना) हार्डवेयर व्यवधान। प्रत्येक व्यवधान संकेत मास्क रजिस्टर में एक बिट से जुड़ा होता है। कुछ प्रणालियों पर, बिट सेट होने पर बाधा सक्षम होती है, और बिट स्पष्ट होने पर अक्षम हो जाती है। दूसरों पर, विपरीत सत्य है, और एक सेट बिट व्यवधान को निष्क्रिय कर देता है। जब इंटरप्ट डिसेबल होता है, तो संबंधित इंटरप्ट सिग्नल को प्रोसेसर द्वारा अनदेखा किया जा सकता है, या यह लंबित रह सकता है। सिग्नल जो मास्क से प्रभावित होते हैं उन्हें मास्केबल इंटरप्ट कहा जाता है।

कुछ इंटरप्ट सिग्नल इंटरप्ट मास्क से प्रभावित नहीं होते हैं और इसलिए उन्हें अक्षम नहीं किया जा सकता है; इन्हें नॉन-मास्केबल इंटरप्ट्स (एनएमआई) कहा जाता है। ये उच्च-प्राथमिकता वाली घटनाओं को इंगित करते हैं जिन्हें किसी भी परिस्थिति में अनदेखा नहीं किया जा सकता है, जैसे निगरानी घड़ी से टाइमआउट सिग्नल।

नकली व्यवधान
नकली इंटरप्ट एक हार्डवेयर इंटरप्ट है जिसके लिए कोई स्रोत नहीं पाया जा सकता है। इस घटना का वर्णन करने के लिए फैंटम इंटरप्ट या घोस्ट इंटरप्ट शब्द का भी इस्तेमाल किया जा सकता है। एक स्तर-संवेदनशील प्रोसेसर इनपुट से जुड़े 'वायर्ड-या' इंटरप्ट सर्किट के साथ नकली व्यवधान एक समस्या है। जब कोई सिस्टम गलत व्यवहार करता है तो इस तरह के व्यवधानों की पहचान करना मुश्किल हो सकता है।

एक वायर्ड-ओआर सर्किट में, इंटरप्ट लाइन के बायस रेसिस्टर के माध्यम से परजीवी कैपेसिटेंस चार्जिंग/डिस्चार्जिंग से प्रोसेसर को पहचानने से पहले एक छोटी सी देरी होगी कि इंटरप्ट स्रोत को साफ कर दिया गया है। यदि इंटरप्टिंग डिवाइस को इंटरप्ट सर्विस रूटीन (ISR) में बहुत देर से साफ़ किया जाता है, तो ISR के वर्तमान उदाहरण के समाप्त होने से पहले इंटरप्ट सर्किट को मौन स्थिति में लौटने के लिए पर्याप्त समय नहीं होगा। नतीजा यह है कि प्रोसेसर सोचेगा कि एक और रुकावट लंबित है, क्योंकि इसके इंटरप्ट अनुरोध इनपुट पर वोल्टेज एक स्पष्ट आंतरिक तर्क 1 या तर्क 0 स्थापित करने के लिए पर्याप्त उच्च या निम्न नहीं होगा। स्पष्ट बाधा का कोई पहचान योग्य स्रोत नहीं होगा, इसलिए नकली उपनाम।

दोषपूर्ण सर्किट डिजाइन, उच्च विद्युत हस्तक्षेप स्तर, क्रॉसस्टॉक, समय के मुद्दों, या अधिक शायद ही कभी, इरेटम#सीपीयू तर्क के कारण एक नकली बाधा भी विद्युत गड़बड़ी का परिणाम हो सकती है।

यदि ISR इस तरह के व्यवधान की संभावना को ध्यान में नहीं रखता है, तो एक नकली रुकावट के परिणामस्वरूप सिस्टम डेडलॉक या अन्य अपरिभाषित ऑपरेशन हो सकता है। नकली इंटरप्ट ज्यादातर वायर्ड-या इंटरप्ट सर्किट के साथ एक समस्या है, ऐसे सिस्टम में अच्छा प्रोग्रामिंग अभ्यास आईएसआर के लिए गतिविधि के लिए सभी इंटरप्ट स्रोतों की जांच करने और कोई कार्रवाई नहीं करने के लिए है (संभवतः ईवेंट लॉगिंग के अलावा) यदि कोई भी स्रोत बाधित नहीं हो रहा है.

सॉफ्टवेयर बाधित
विशेष निर्देशों को क्रियान्वित करने पर या कुछ शर्तों को पूरा करने पर प्रोसेसर द्वारा सॉफ़्टवेयर व्यवधान का अनुरोध किया जाता है। हर सॉफ्टवेयर इंटरप्ट सिग्नल एक विशेष इंटरप्ट हैंडलर से जुड़ा होता है।

एक विशेष निर्देश (कंप्यूटर विज्ञान) को क्रियान्वित करने के कारण एक सॉफ़्टवेयर बाधा जानबूझकर उत्पन्न हो सकती है, जो डिज़ाइन द्वारा, निष्पादित होने पर बाधा उत्पन्न करती है। इस तरह के निर्देश उपनेमका कॉल के समान कार्य करते हैं और विभिन्न उद्देश्यों के लिए उपयोग किए जाते हैं, जैसे कि ऑपरेटिंग सिस्टम सेवाओं का अनुरोध करना और डिवाइस ड्राइवरों के साथ बातचीत करना (जैसे, स्टोरेज मीडिया को पढ़ने या लिखने के लिए)। प्रोग्राम निष्पादन त्रुटियों या आभासी मेमोरी सिस्टम द्वारा सॉफ़्टवेयर इंटरप्ट्स को भी ट्रिगर किया जा सकता है।

आमतौर पर, ऑपरेटिंग सिस्टम कर्नेल (ऑपरेटिंग सिस्टम) ऐसे इंटरप्ट को पकड़ेगा और हैंडल करेगा। कुछ रुकावटों को प्रोग्राम में पारदर्शी रूप से नियंत्रित किया जाता है - उदाहरण के लिए, पृष्ठ दोष का सामान्य रिज़ॉल्यूशन आवश्यक पेज को भौतिक मेमोरी में एक्सेस करने योग्य बनाना है। लेकिन अन्य मामलों में जैसे विखंडन दोष ऑपरेटिंग सिस्टम एक प्रक्रिया कॉलबैक निष्पादित करता है। यूनिक्स जैसे ऑपरेटिंग सिस्टम पर इसमें सिग्नल (IPC) जैसे SIGSEGV, SIGBUS, SIGILL या SIGFPE भेजना शामिल है, जो या तो सिग्नल हैंडलर को कॉल कर सकता है या एक डिफ़ॉल्ट क्रिया (प्रोग्राम को समाप्त) कर सकता है। विंडोज पर STATUS_ACCESS_VIOLATION या STATUS_INTEGER_DIVIDE_BY_ZERO जैसे अपवाद कोड के साथ संरचित अपवाद हैंडलिंग का उपयोग करके कॉलबैक किया जाता है। कर्नेल प्रक्रिया (कंप्यूटिंग) में, अक्सर ऐसा होता है कि कुछ प्रकार के सॉफ़्टवेयर व्यवधान होने की उम्मीद नहीं होती है। यदि वे फिर भी होते हैं, तो क्रैश (कंप्यूटिंग)#ऑपरेटिंग सिस्टम क्रैश हो सकता है।

शब्दावली
इंटरप्ट, ट्रैप, एक्सेप्शन, फॉल्ट और एबॉर्ट शब्द का उपयोग इंटरप्ट के प्रकारों को अलग करने के लिए किया जाता है, हालांकि इन शब्दों के सटीक अर्थ के बारे में कोई स्पष्ट सहमति नहीं है। (हार्डवेयर) इंटरप्ट्स एक I/O डिवाइस द्वारा अतुल्यकालिक रूप से ट्रिगर किए गए इंटरप्ट्स हैं, और प्रोग्राम को निरंतरता के नुकसान के बिना पुनरारंभ करने की अनुमति देते हैं। एक गलती भी पुनरारंभ करने योग्य है लेकिन एक निर्देश के तुल्यकालिक निष्पादन से बंधा हुआ है - वापसी का पता दोषपूर्ण निर्देश को इंगित करता है। एक जाल एक गलती के समान है, सिवाय इसके कि वापसी का पता उस निर्देश को इंगित करता है जिसे फँसाने के निर्देश के बाद निष्पादित किया जाना है; एक प्रमुख उपयोग सिस्टम कॉल को कार्यान्वित करना है। गंभीर त्रुटियों के लिए गर्भपात का उपयोग किया जाता है, जैसे कि हार्डवेयर त्रुटियां और सिस्टम तालिकाओं में अवैध मान, और अक्सर कार्यक्रम को पुनः आरंभ करने की अनुमति नहीं देता है। एआरएम वास्तुकला सभी प्रकार के व्यवधानों को संदर्भित करने के लिए अपवाद शब्द का उपयोग करता है, और अपवादों को (हार्डवेयर) इंटरप्ट्स, एबॉर्ट्स, रीसेट, और अपवाद-सृजन निर्देशों में विभाजित करता है। एबॉर्ट्स x86 अपवादों के अनुरूप हैं और प्रीफेच एबॉर्ट्स (असफल निर्देश लाने) या डेटा एबॉर्ट्स (विफल डेटा एक्सेस) हो सकते हैं, और सिंक्रोनस या एसिंक्रोनस हो सकते हैं। अतुल्यकालिक गर्भपात सटीक या सटीक हो सकता है। MMU निरस्त (पृष्ठ दोष) तुल्यकालिक हैं।

ट्रिगर करने के तरीके
प्रत्येक इंटरप्ट सिग्नल इनपुट को एक लॉजिक सिग्नल स्तर या एक विशेष सिग्नल एज (लेवल ट्रांज़िशन) द्वारा ट्रिगर करने के लिए डिज़ाइन किया गया है। स्तर-संवेदनशील इनपुट लगातार प्रोसेसर सेवा का अनुरोध करते हैं जब तक इनपुट पर एक विशेष (उच्च या निम्न) तर्क स्तर लागू होता है। एज-सेंसिटिव इनपुट्स सिग्नल किनारों पर प्रतिक्रिया करते हैं: एक विशेष (बढ़ते या गिरते) किनारे से सर्विस रिक्वेस्ट लैच हो जाएगी; जब इंटरप्ट हैंडलर निष्पादित होता है तो प्रोसेसर लैच को रीसेट करता है।

लेवल-ट्रिगर
एक विशेष (उच्च या निम्न) सक्रिय लॉजिक स्तर पर इंटरप्ट सिग्नल को होल्ड करके एक लेवल-ट्रिगर इंटरप्ट का अनुरोध किया जाता है। एक उपकरण सिग्नल को चलाकर और सक्रिय स्तर पर पकड़कर एक स्तर-ट्रिगर रुकावट का आह्वान करता है। यह सिग्नल को नकारता है जब प्रोसेसर इसे ऐसा करने के लिए आदेश देता है, आमतौर पर डिवाइस की सर्विसिंग के बाद।

प्रोसेसर प्रत्येक निर्देश चक्र के दौरान इंटरप्ट इनपुट सिग्नल का नमूना लेता है। नमूनाकरण होने पर सिग्नल जोर देने पर प्रोसेसर इंटरप्ट अनुरोध को पहचान लेगा।

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

एज-ट्रिगर
एज-ट्रिगर इंटरप्ट, इंटरप्ट लाइन पर संकेत किनारा द्वारा सिग्नल किया गया इंटरप्ट है, या तो एक गिरने वाला किनारा (उच्च से निम्न) या एक बढ़ता हुआ किनारा (निम्न से उच्च)। एक उपकरण जो एक रुकावट का संकेत देना चाहता है, लाइन पर एक पल्स ड्राइव करता है और फिर लाइन को उसकी निष्क्रिय अवस्था में छोड़ देता है। यदि स्पंद बहुत छोटा है और मतदान I/O द्वारा पता लगाया जा सकता है तो इसका पता लगाने के लिए विशेष हार्डवेयर की आवश्यकता हो सकती है। एज ट्रिगरिंग का महत्वपूर्ण हिस्सा यह है कि सिग्नल को व्यवधान को ट्रिगर करने के लिए संक्रमण होना चाहिए; उदाहरण के लिए, यदि सिग्नल उच्च-निम्न-निम्न था, तो केवल एक गिरने वाला किनारा अवरोध ट्रिगर होगा, और निरंतर निम्न स्तर आगे की बाधा को ट्रिगर नहीं करेगा। सिग्नल को उच्च स्तर पर वापस आना चाहिए और एक और बाधा उत्पन्न करने के लिए फिर से गिरना चाहिए। यह एक लेवल ट्रिगर के साथ विरोधाभासी है जहां सिग्नल अपने उच्च स्तर पर लौटने तक निम्न स्तर इंटरप्ट (यदि वे सक्षम हैं) बनाते रहेंगे।

एज-ट्रिगर इंटरप्ट वाले कंप्यूटर में एक इंटरप्ट रजिस्टर शामिल हो सकता है जो लंबित इंटरप्ट की स्थिति को बरकरार रखता है। इंटरप्ट रजिस्टर वाले सिस्टम में आमतौर पर इंटरप्ट मास्क रजिस्टर भी होते हैं।

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

सिस्टम कार्यान्वयन
अवरोधों को हार्डवेयर में नियंत्रण रेखाओं के साथ एक अलग घटक के रूप में लागू किया जा सकता है, या उन्हें एकीकृत किया जा सकता है.

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

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

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

बुजुर्ग उद्योग मानक वास्तुकला (आईएसए) बस एज-ट्रिगर इंटरप्ट्स का उपयोग करता है, बिना यह अनिवार्य किए कि डिवाइस आईआरक्यू लाइनों को साझा करने में सक्षम हों, लेकिन सभी मुख्यधारा के आईएसए मदरबोर्ड में उनके आईआरक्यू लाइनों पर पुल-अप प्रतिरोधक शामिल हैं, इसलिए आईआरक्यू लाइनों को साझा करने वाले अच्छी तरह से व्यवहार वाले आईएसए डिवाइस ठीक काम करना चाहिए। समानांतर पोर्ट एज-ट्रिगर इंटरप्ट्स का भी उपयोग करता है। कई पुराने उपकरण मानते हैं कि उनके पास IRQ लाइनों का विशेष उपयोग है, जिससे उन्हें साझा करना विद्युतीय रूप से असुरक्षित हो जाता है।

एक ही पंक्ति साझा करने वाले एकाधिक उपकरणों को 3 तरीकों से उठाया जा सकता है। पहला एक्सक्लूसिव कंडक्शन (स्विचिंग) या एक्सक्लूसिव कनेक्शन (पिन से) है। अगला बस से है (सभी एक ही लाइन सुनने से जुड़े हुए हैं): बस में कार्ड को पता होना चाहिए कि उन्हें कब बात करनी है और कब बात नहीं करनी है (यानी, आईएसए बस)। बात करने को दो तरह से ट्रिगर किया जा सकता है: संचय लैच या लॉजिक गेट्स द्वारा। लॉजिक गेट एक निरंतर डेटा प्रवाह की अपेक्षा करते हैं जो मुख्य संकेतों के लिए मॉनिटर किया जाता है। Accumulators केवल तभी ट्रिगर होते हैं जब रिमोट साइड गेट को थ्रेसहोल्ड से परे उत्तेजित करता है, इस प्रकार किसी बातचीत की गति की आवश्यकता नहीं होती है। प्रत्येक की अपनी गति बनाम दूरी के फायदे हैं। एक ट्रिगर, आम तौर पर, वह तरीका है जिसमें उत्तेजना का पता लगाया जाता है: बढ़ती धार, गिरने वाली धार, दहलीज (आस्टसीलस्कप विभिन्न प्रकार की आकृतियों और स्थितियों को ट्रिगर कर सकता है)।

सॉफ़्टवेयर इंटरप्ट्स के लिए ट्रिगरिंग को सॉफ़्टवेयर (OS और ऐप दोनों में) में बनाया जाना चाहिए। एक 'सी' ऐप के हेडर में एक ट्रिगर टेबल (फ़ंक्शंस की एक तालिका) होती है, जिसे ऐप और ओएस दोनों जानते हैं और उचित रूप से उपयोग करते हैं जो हार्डवेयर से संबंधित नहीं है। हालाँकि इसे हार्डवेयर इंटरप्ट के साथ भ्रमित न करें जो सीपीयू को संकेत देता है (सीपीयू कार्यों की तालिका से सॉफ़्टवेयर को लागू करता है, इसी तरह सॉफ़्टवेयर इंटरप्ट करता है)।

बाधित लाइनों को साझा करने में कठिनाई
एक इंटरप्ट लाइन साझा करने वाले कई डिवाइस (किसी भी ट्रिगरिंग शैली के) सभी एक दूसरे के संबंध में नकली इंटरप्ट स्रोत के रूप में कार्य करते हैं। एक लाइन पर कई उपकरणों के साथ, सर्विसिंग में काम का बोझ उपकरणों की संख्या के वर्ग के अनुपात में बढ़ता है। इसलिए उपलब्ध इंटरप्ट लाइनों में समान रूप से उपकरणों को फैलाना पसंद किया जाता है। इंटरप्ट लाइनों की कमी पुराने सिस्टम डिज़ाइनों में एक समस्या है जहां इंटरप्ट लाइनें विशिष्ट भौतिक संवाहक हैं। संदेश-सिग्नल इंटरप्ट्स, जहां इंटरप्ट लाइन वर्चुअल है, नए सिस्टम आर्किटेक्चर (जैसे पीसीआई एक्सप्रेस) में पसंदीदा हैं और इस समस्या को काफी हद तक राहत देते हैं।

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

हाइब्रिड
कुछ सिस्टम लेवल-ट्रिगर और एज-ट्रिगर सिग्नलिंग के हाइब्रिड का उपयोग करते हैं। हार्डवेयर न केवल किनारे की तलाश करता है, बल्कि यह भी सत्यापित करता है कि इंटरप्ट सिग्नल एक निश्चित अवधि के लिए सक्रिय रहता है।

हाइब्रिड इंटरप्ट का एक सामान्य उपयोग NMI (नॉन-मास्केबल इंटरप्ट) इनपुट के लिए है। क्योंकि एनएमआई आम तौर पर प्रमुख - या यहां तक ​​कि विपत्तिपूर्ण - सिस्टम घटनाओं को संकेत देते हैं, इस सिग्नल का एक अच्छा कार्यान्वयन यह सुनिश्चित करने की कोशिश करता है कि रुकावट यह सत्यापित करके मान्य है कि यह समय की अवधि के लिए सक्रिय रहता है। यह 2-चरणीय दृष्टिकोण सिस्टम को प्रभावित करने वाले झूठे व्यवधानों को समाप्त करने में मदद करता है।

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

संदेश-सिग्नल इंटरप्ट बहुत हद तक एज-ट्रिगर इंटरप्ट की तरह व्यवहार करते हैं, जिसमें इंटरप्ट एक निरंतर स्थिति के बजाय एक क्षणिक संकेत है। इंटरप्ट-हैंडलिंग सॉफ़्टवेयर दोनों को समान तरीके से व्यवहार करता है। आमतौर पर, एक ही संदेश (समान वर्चुअल इंटरप्ट लाइन) के साथ कई लंबित संदेश-सिग्नल इंटरप्ट्स को मर्ज करने की अनुमति दी जाती है, ठीक उसी तरह जैसे कि निकटवर्ती एज-ट्रिगर इंटरप्ट मर्ज कर सकते हैं।

संदेश-सिग्नल व्यवधान वेक्टर को उस सीमा तक साझा किया जा सकता है, जहां तक ​​अंतर्निहित संचार माध्यम को साझा किया जा सकता है। किसी अतिरिक्त प्रयास की आवश्यकता नहीं है।

क्योंकि रुकावट की पहचान डेटा बिट्स के एक पैटर्न द्वारा इंगित की जाती है, जिसके लिए एक अलग भौतिक कंडक्टर की आवश्यकता नहीं होती है, कई अलग-अलग व्यवधानों को कुशलता से नियंत्रित किया जा सकता है। यह साझा करने की आवश्यकता को कम करता है। इंटरप्ट संदेशों को सीरियल बस के ऊपर से भी भेजा जा सकता है, जिसके लिए किसी अतिरिक्त लाइन की आवश्यकता नहीं होती है।

पीसीआई एक्सप्रेस, एक सीरियल कंप्यूटर बस, संदेश संकेतित व्यवधान का उपयोग करती है। मैसेज-सिग्नल इंटरप्ट विशेष रूप से।

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

डोरबेल इंटरप्ट शब्द आमतौर पर एक मिथ्या नाम है। यह एक व्यवधान के समान है, क्योंकि यह उपकरण द्वारा कुछ कार्य किए जाने का कारण बनता है; हालाँकि, डोरबेल क्षेत्र को कभी-कभी मतदान (कंप्यूटर विज्ञान) क्षेत्र के रूप में लागू किया जाता है, कभी-कभी डोरबेल क्षेत्र भौतिक उपकरण हार्डवेयर रजिस्टर के माध्यम से लिखता है, और कभी-कभी डोरबेल क्षेत्र को सीधे भौतिक उपकरण रजिस्टरों में हार्डवायर किया जाता है। भौतिक डिवाइस रजिस्टरों के माध्यम से या सीधे लिखते समय, यह डिवाइस की केंद्रीय प्रोसेसर इकाई (CPU) में वास्तविक बाधा उत्पन्न कर सकता है, यदि इसमें कोई है।

डोरबेल इंटरप्ट्स की तुलना मैसेज सिग्नलेड इंटरप्ट्स से की जा सकती है, क्योंकि उनमें कुछ समानताएँ हैं।

मल्टीप्रोसेसर आईपीआई
मल्टीप्रोसेसर सिस्टम में, एक प्रोसेसर इंटर-प्रोसेसर बाधित करता है के माध्यम से दूसरे प्रोसेसर को इंटरप्ट अनुरोध भेज सकता है (आईपीआई)।

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

livelock्स के विभिन्न रूप हैं, जब सिस्टम अपना सारा समय प्रोसेसिंग में लगाता है, तो अन्य आवश्यक कार्यों को छोड़ देता है। अत्यधिक परिस्थितियों में, बड़ी संख्या में व्यवधान (जैसे बहुत अधिक नेटवर्क ट्रैफ़िक) सिस्टम को पूरी तरह से ठप कर सकते हैं। ऐसी समस्याओं से बचने के लिए, एक ऑपरेटिंग सिस्टम को नेटवर्क इंटरप्ट हैंडलिंग को सावधानीपूर्वक शेड्यूल करना चाहिए क्योंकि यह प्रक्रिया निष्पादन को शेड्यूल करता है। मल्टी-कोर प्रोसेसर के साथ, इंटरप्ट हैंडलिंग में अतिरिक्त प्रदर्शन सुधार रिसीव-साइड स्केलिंग (आरएसएस) के माध्यम से प्राप्त किया जा सकता है जब बहु-कतार एनआईसी का उपयोग किया जाता है। ऐसे एनआईसी अलग-अलग इंटरप्ट से जुड़े कई प्राप्त कतार (सार डेटा प्रकार) प्रदान करते हैं; उनमें से प्रत्येक को अलग-अलग कोर में रूट करके, एक एनआईसी द्वारा प्राप्त नेटवर्क ट्रैफ़िक द्वारा ट्रिगर किए गए इंटरप्ट अनुरोधों के प्रसंस्करण को कई कोर के बीच वितरित किया जा सकता है। कोर के बीच इंटरप्ट्स का वितरण ऑपरेटिंग सिस्टम द्वारा स्वचालित रूप से किया जा सकता है, या इंटरप्ट्स की रूटिंग (आमतौर पर आईआरक्यू एफ़िनिटी के रूप में संदर्भित) को मैन्युअल रूप से कॉन्फ़िगर किया जा सकता है। पैकेट स्टीयरिंग (RPS) प्राप्त करने के रूप में जाना जाने वाला ट्रैफ़िक वितरण प्राप्त करने का विशुद्ध रूप से सॉफ़्टवेयर-आधारित कार्यान्वयन, इंटरप्ट हैंडलर कार्यक्षमता के भाग के रूप में डेटा पथ में बाद में कोर के बीच प्राप्त ट्रैफ़िक को वितरित करता है। RSS की तुलना में RPS के लाभों में विशिष्ट हार्डवेयर के लिए कोई आवश्यकता नहीं, अधिक उन्नत ट्रैफ़िक वितरण फ़िल्टर और NIC द्वारा उत्पादित इंटरप्ट्स की कम दर शामिल हैं। नकारात्मक पक्ष के रूप में, RPS इंटर-प्रोसेसर व्यवधान्स (IPIs) की दर को बढ़ाता है। रिसीव फ्लो स्टीयरिंग (RFS) आवेदन इलाका के लिए लेखांकन द्वारा सॉफ्टवेयर-आधारित दृष्टिकोण को आगे ले जाता है; आगे के प्रदर्शन में सुधार उसी कोर द्वारा बाधित अनुरोधों को संसाधित करके प्राप्त किया जाता है, जिस पर लक्षित अनुप्रयोग द्वारा विशेष नेटवर्क पैकेट का उपभोग किया जाएगा।

विशिष्ट उपयोग
व्यवधान आमतौर पर हार्डवेयर टाइमर की सेवा के लिए उपयोग किया जाता है, डेटा को भंडारण (जैसे, डिस्क I / O) और संचार इंटरफेस (जैसे, UART, ईथरनेट) से स्थानांतरित करने, कीबोर्ड और माउस घटनाओं को संभालने और किसी अन्य समय-संवेदनशील घटनाओं का जवाब देने के लिए उपयोग किया जाता है। आवेदन प्रणाली द्वारा आवश्यक के रूप में। नॉन-मास्केबल इंटरप्ट्स का उपयोग आमतौर पर वॉचडॉग टाइमर टाइमआउट, पावर-डाउन सिग्नल और एक्सेप्शन हेंडलिंग जैसे उच्च-प्राथमिकता वाले अनुरोधों का जवाब देने के लिए किया जाता है।

हार्डवेयर टाइमर का उपयोग अक्सर आवधिक व्यवधान उत्पन्न करने के लिए किया जाता है। कुछ अनुप्रयोगों में, इस तरह के व्यवधानों को निरपेक्ष या बीता हुआ समय का ट्रैक रखने के लिए इंटरप्ट हैंडलर द्वारा गिना जाता है, या OS टास्क निर्धारण (कंप्यूटिंग) द्वारा रनिंग प्रोसेस (कंप्यूटिंग), या दोनों के निष्पादन को प्रबंधित करने के लिए उपयोग किया जाता है। एनॉलॉग से डिजिटल परिवर्तित करने वाला उपकरण, वृद्धिशील एनकोडर इंटरफ़ेस, और जीपीआईओ इनपुट जैसे इनपुट डिवाइस से नमूना लेने के लिए और डिज़िटल से एनालॉग कन्वर्टर, मोटर नियंत्रक और जीपीआईओ आउटपुट जैसे आउटपुट डिवाइस को प्रोग्राम करने के लिए आवधिक इंटरप्ट का भी आमतौर पर उपयोग किया जाता है।

एक डिस्क बाधा डिस्क परिधीय से या उसके लिए डेटा स्थानांतरण के पूरा होने का संकेत देती है; इससे एक प्रक्रिया चल सकती है जो पढ़ने या लिखने की प्रतीक्षा कर रही है। पावर-ऑफ इंटरप्ट बिजली के आसन्न नुकसान की भविष्यवाणी करता है, जिससे कंप्यूटर को एक व्यवस्थित शट-डाउन करने की अनुमति मिलती है, जबकि अभी भी ऐसा करने के लिए पर्याप्त शक्ति है। कीबोर्ड व्यवधान आमतौर पर कीस्ट्रोक्स को बफ़र करने का कारण बनता है ताकि टाइपहेड को लागू किया जा सके।

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

इंटरप्ट्स सिग्नल (आईपीसी) के समान हैं, अंतर यह है कि सिग्नल अंतःप्रक्रम संचार (आईपीसी) के लिए उपयोग किए जाते हैं, कर्नेल द्वारा मध्यस्थ (संभवतः सिस्टम कॉल के माध्यम से) और प्रक्रियाओं द्वारा नियंत्रित किया जाता है, जबकि इंटरप्ट्स प्रोसेसर द्वारा मध्यस्थ होते हैं और नियंत्रित होते हैं कर्नेल (ऑपरेटिंग सिस्टम)। कर्नेल उस प्रक्रिया के लिए एक संकेत के रूप में एक रुकावट पारित कर सकता है जो इसे उत्पन्न करता है (सामान्य उदाहरण SIGSEGV, SIGBUS, SIGILL और SIGFPE हैं)।

इतिहास
हार्डवेयर इंटरप्ट्स को एक अनुकूलन के रूप में पेश किया गया था, जो मतदान (कंप्यूटर विज्ञान) में अनुत्पादक प्रतीक्षा समय को समाप्त करता है, बाहरी घटनाओं की प्रतीक्षा करता है। इस दृष्टिकोण का उपयोग करने वाली पहली प्रणाली DYSEAC थी, जो 1954 में पूरी हुई, हालाँकि पहले की प्रणालियाँ ट्रैप (कंप्यूटिंग) कार्य प्रदान करती थीं। UNIVAC 1103A कंप्यूटर को आमतौर पर 1953 में इंटरप्ट के शुरुआती उपयोग का श्रेय दिया जाता है। इससे पहले, UNIVAC I (1951) पर अंकगणित अतिप्रवाह ने या तो पता 0 पर दो-निर्देश फिक्स-अप रूटीन के निष्पादन को ट्रिगर किया, या प्रोग्रामर के विकल्प पर, कंप्यूटर को बंद कर दिया। आईबीएम 650 (1954) में इंटरप्ट मास्किंग की पहली घटना शामिल थी। राष्ट्रीय मानक ब्यूरो DYSEAC (1954) I/O के लिए इंटरप्ट का उपयोग करने वाला पहला था। आईबीएम 704 डिबगिंग के लिए इंटरप्ट्स का उपयोग करने वाला पहला था, ट्रांसफर ट्रैप के साथ, जो एक शाखा निर्देश का सामना करने पर एक विशेष दिनचर्या का आह्वान कर सकता था। MIT लिंकन प्रयोगशाला TX-2 सिस्टम (1957) सबसे पहले प्राथमिकता वाले इंटरप्ट के कई स्तर प्रदान करता था।

यह भी देखें

 * उन्नत प्रोग्रामेबल इंटरप्ट कंट्रोलर (APIC)
 * BIOS इंटरप्ट कॉल
 * घटना-संचालित प्रोग्रामिंग
 * एक्सेप्शन हेंडलिंग
 * INT (x86 निर्देश)
 * विघ्न समेकन
 * इंटरप्ट हैंडलर
 * व्यवधान विलंबता
 * 65xx प्रोसेसर में रुकावट
 * राल्फ ब्राउन की इंटरप्ट लिस्ट
 * IBM सिस्टम/360 आर्किटेक्चर#इंटरप्शन सिस्टम|IBM सिस्टम/360 आर्किटेक्चर पर इंटरप्ट्स
 * समय-ट्रिगर प्रणाली
 * स्वायत्त परिधीय संचालन

बाहरी संबंध

 * Interrupts Made Easy
 * Interrupts for Microchip PIC Microcontroller
 * IBM PC Interrupt Table
 * University of Alberta CMPUT 296 Concrete Computing Notes on Interrupts, archived from the original on March 13, 2012
 * Arduino Pin change Interrupts - Article by Adityapratap Singh