इंटरप्ट हैंडलर: Difference between revisions

From Vigyanwiki
No edit summary
Line 32: Line 32:


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


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


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


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


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


== आधुनिक ऑपरेटिंग सिस्टम में विभाजित हैंडलर ==
== आधुनिक ऑपरेटिंग सिस्टम में विभाजित हैंडलर ==
कई ऑपरेटिंग सिस्टम में{{mdashb}}[[Linux]], [[Unix]], [[macOS]], [[Microsoft Windows]], z/OS, [[DESQview]] और अतीत में उपयोग किए जाने वाले कुछ अन्य ऑपरेटिंग सिस्टम{{mdashb}}इंटरप्ट हैंडलर को दो भागों में बांटा गया है: फर्स्ट-लेवल इंटरप्ट हैंडलर (FLIH) और सेकेंड-लेवल इंटरप्ट हैंडलर (SLIH)। FLIHs को ''हार्ड इंटरप्ट हैंडलर्स'' या ''फास्ट इंटरप्ट हैंडलर्स'' के रूप में भी जाना जाता है, और SLIHs को विंडोज़ में ''स्लो/सॉफ्ट इंटरप्ट हैंडलर्स'' या [[आस्थगित प्रक्रिया कॉल]] के रूप में भी जाना जाता है।
कई ऑपरेटिंग सिस्टम में{{mdashb}}माइक्रोसॉफ्ट विंडोज लाइनक्स, यूनिक्स,मैक ओएस व कुछ अन्य ऑपरेटिंग सिस्टम{{mdashb}}इंटरप्ट हैंडलर को दो भागों में बांटा गया हैI फर्स्ट-लेवल इंटरप्ट हैंडलर और सेकेंड-लेवल इंटरप्ट हैंडलर को ''हार्ड इंटरप्ट हैंडलर्स'' या ''फास्ट इंटरप्ट हैंडलर्स'' के रूप में भी जाना जाता हैI को विंडोज़ में ''स्लो/सॉफ्ट इंटरप्ट हैंडलर्स'' या [[आस्थगित प्रक्रिया कॉल]] के रूप में भी जाना जाता है।
 
एक FLIH 'इंटरप्ट रूटीन' के समान न्यूनतम प्लेटफॉर्म-विशिष्ट इंटरप्ट हैंडलिंग पर लागू होता है। एक बाधा के जवाब में, एक [[संदर्भ स्विच]] होता है, और बाधा के लिए कोड लोड और निष्पादित होता है। एक FLIH का काम इंटरप्ट को जल्दी से सर्विस करना है, या प्लेटफ़ॉर्म-विशिष्ट महत्वपूर्ण जानकारी को रिकॉर्ड करना है जो केवल इंटरप्ट के समय उपलब्ध है, और [[अनुसूची (कंप्यूटर विज्ञान)]] आगे लंबे समय तक चलने वाले इंटरप्ट हैंडलिंग के लिए SLIH का निष्पादन करता है।<ref name="lwn-ldd3" />
 
FLIHs प्रक्रिया निष्पादन में घबराहट पैदा करते हैं। FLIHs भी बाधा को छिपाते हैं। [[रीयल-टाइम ऑपरेटिंग सिस्टम]] के लिए [[घबराना]] को कम करना सबसे महत्वपूर्ण है, क्योंकि उन्हें इस बात की गारंटी रखनी चाहिए कि विशिष्ट कोड का निष्पादन सहमत समय के भीतर पूरा हो जाएगा।
नकाबपोश रुकावटों से डेटा खोने की संभावना को कम करने के लिए, प्रोग्रामर एक FLIH के निष्पादन समय को कम करने का प्रयास करते हैं, जितना संभव हो उतना SLIH तक ले जाते हैं। आधुनिक कंप्यूटरों की गति के साथ, FLIHs सभी डिवाइस और प्लेटफ़ॉर्म-निर्भर हैंडलिंग को लागू कर सकते हैं, और आगे के प्लेटफ़ॉर्म-स्वतंत्र दीर्घकालिक हैंडलिंग के लिए SLIH का उपयोग कर सकते हैं।
 
FLIHs, जो सेवा हार्डवेयर आमतौर पर उनके संबंधित व्यवधान को छिपाते हैं (या जैसा भी मामला हो, इसे नकाबपोश रखें) जब तक कि वे अपना निष्पादन पूरा नहीं कर लेते। एक (असामान्य) FLIH जो पूरा होने से पहले अपने संबंधित व्यवधान को उजागर करता है, उसे एक पुनः प्रवेशी (उपनेमका) #Reentrant बाधा संचालक कहा जाता है। रीएन्ट्रेंट इंटरप्ट हैंडलर एक ही [[व्यवधान वेक्टर]] द्वारा कई प्रीमेशन (कंप्यूटिंग) से स्टैक ओवरफ्लो का कारण बन सकते हैं, और इसलिए उन्हें आमतौर पर टाला जाता है। इंटरप्ट प्राथमिकता स्तर प्रणाली में, FLIH समान या कम प्राथमिकता के अन्य व्यवधानों को भी (संक्षेप में) मास्क करता है।


एक SLIH एक प्रक्रिया के समान लंबे व्यवधान प्रसंस्करण कार्यों को पूरा करता है। SLIH के पास या तो प्रत्येक हैंडलर के लिए एक समर्पित कर्नेल (कंप्यूटर साइंस) थ्रेड है, या कर्नेल वर्कर थ्रेड्स के एक पूल द्वारा निष्पादित किया जाता है। ये थ्रेड्स ऑपरेटिंग सिस्टम में [[कतार चलाओ]] पर तब तक बैठते हैं जब तक कि उनके लिए इंटरप्ट के लिए प्रोसेसिंग करने के लिए प्रोसेसर का समय उपलब्ध न हो। SLIH के पास लंबे समय तक चलने वाला निष्पादन समय हो सकता है, और इस प्रकार आमतौर पर थ्रेड्स और प्रक्रियाओं के समान ही निर्धारित किया जाता है।
ऍफ़ एल आई एच 'इंटरप्ट रूटीन' के समान न्यूनतम प्लेटफॉर्म-विशिष्ट इंटरप्ट हैंडलिंग पर लागू होता है। ऍफ़ एल आई एच का कार्य इंटरप्ट को जल्दी से सर्विस करना है या विशिष्ट महत्वपूर्ण जानकारी को रिकॉर्ड करना है जो केवल इंटरप्ट के समय उपलब्ध है और आगे लंबे समय तक चलने वाले इंटरप्ट हैंडलिंग के लिए एलएसआईएच प्रणाली का क्रियान्वन और निष्पादन करता हैI


लिनक्स में, FLIH को ऊपरी आधा कहा जाता है, और SLIH को निचला आधा या निचला आधा कहा जाता है।<ref name="tldp-lkmpg" /><ref name="lwn-ldd3" />  यह अन्य यूनिक्स जैसी प्रणालियों में उपयोग किए जाने वाले नामकरण से अलग है, जहां दोनों निचले आधे हिस्से का हिस्सा हैं।{{clarify|date=July 2020 |reason= This begs the question: on those other systems, what does "upper half" mean, if it means something different than Linux systems?}}
एफएलआईएचएस प्रक्रिया निष्पादन में हलचल उत्पन्न्न करते हैं I [[रीयल-टाइम ऑपरेटिंग सिस्टम]] के लिए [[घबराना|सचांलन को कम करना सबसे महत्वपूर्ण है]] I एफएलआईएचएस के निष्पादन समय को कम करने का प्रयास करते हैं जितना संभव हो उतना एसएलआईएच तक ले जाते हैं। आधुनिक कंप्यूटरों की गति के साथ ऍफ़ एल आई एच सभी डिवाइस और प्लेटफ़ॉर्म-निर्भर हैंडलिंग को लागू कर सकते हैं और आगे के प्लेटफ़ॉर्म-स्वतंत्र दीर्घकालिक हैंडलिंग के लिए ऍफ़ एल आई एच का उपयोग कर सकते हैं।


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


एसएलआईएच एक प्रक्रिया के समान लंबे व्यवधान प्रसंस्करण कार्यों को पूरा करता है। एसएलआईएच के पास या तो प्रत्येक हैंडलर के लिए एक समर्पित कर्नेल थ्रेड है या कर्नेल वर्कर थ्रेड्स के एक पूल द्वारा निष्पादित किया जाता है। ये थ्रेड्स ऑपरेटिंग सिस्टम में तब तक कार्य करते हैं जब तक इंटरप्ट के लिए प्रोसेसिंग करने के लिए प्रोसेसर का समय उपलब्ध न हो। एसएलआईएच के पास लंबे समय तक चलने वाला निष्पादन समय हो सकता है और इस प्रकार आमतौर पर थ्रेड्स और प्रक्रियाओं के समान ही निर्धारित किया जाता है।
== यह भी देखें ==
== यह भी देखें ==



Revision as of 14:48, 17 April 2023

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

इंटरप्ट हैंडलर का पारंपरिक रूप हार्डवेयर इंटरप्ट हैंडलर है। डिजिटल लॉजिक्स में लागू विद्युत स्थितियों या निम्न-स्तरीय प्रोटोकॉल से हार्डवेयर व्यवधान उत्पन्न होता हैI आमतौर पर इंटरप्ट वैक्टर की हार्ड-कोडेड तालिका के माध्यम से भेजा जाता है, अतुल्यकालिक रूप से सामान्य निष्पादन स्ट्रीम एक अलग स्टैक का उपयोग करते हुए और इंटरप्ट हैंडलर के निष्पादन की अवधि के लिए स्वचालित रूप से अलग निष्पादन संदर्भ में प्रवेश कराना होता हैI सामान्य तौर पर हार्डवेयर व्यवधान और उनके संचालकों का उपयोग उच्च-प्राथमिकता वाली स्थितियों को संभालने के लिए किया जाता है जिसके लिए केंद्रीय प्रसंस्करण इकाई द्वारा निष्पादित वर्तमान कोड के व्यवधान की आवश्यकता होती है।[1][2]

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

इंटरप्ट हैंडलर में कई प्रकार के कार्य होते हैं जो इस बात पर निर्भर करते हैं कि किस चीज ने इंटरप्ट को ट्रिगर किया और जिस गति से इंटरप्ट हैंडलर अपने कार्य को पूरा करता है। उदाहरण के लिए कंप्यूटर कीबोर्ड पर कुंजी दबाने पर[1]या माउस कंप्यूटिंग उस कॉल इंटरप्ट हैंडलर को ट्रिगर करता है जो कुंजी या माउस की स्थिति को पढ़ता है और संबंधित जानकारी को कंप्यूटर की मेमोरी में कॉपी करता है।[2]

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

इंटरप्ट हैंडलर्स

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

इंटरप्ट हैंडलर की कार्यगतिविधि अगर सही स्थिति में है तो इस परिस्थिति में इंटरप्ट सिस्टम के साथ इंटरप्ट हैंडलर से बाहर निकलना कठिन और सटीक कार्य है और इसका गलत संचालन सिस्टम को पूरी तरह से रोक देता है।इंटरप्ट हैंडलर्स का औपचारिक सत्यापन काफी कठिन है जबकि परीक्षण आमतौर पर लगातार विफलता की पहचान करता है इस प्रकार इंटरप्ट हैंडलर्स में सूक्ष्म और आंतरिक बग अक्सर अंतिम ग्राहक तक सम्प्रेषित किये जाते हैं।

निष्पादन संदर्भ

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

स्टैक स्पेस विचार

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

जब आवंटित स्टैक जिसे स्टैक ओवरफ्लो के रूप में जाना जाता है सामान्य रूप से हार्डवेयर में नहीं पाया जाता है। यदि स्टैक को किसी अन्य लिखने योग्य मेमोरी क्षेत्र में स्थांतरित किया गया तो हैंडलर आमतौर पर अपेक्षित रूप से क्रियान्वित होता है

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

उच्च थ्रेड काउंट का समर्थन करने वाले सिस्टम में यह बेहतर होता है कि हार्डवेयर इंटरप्ट मैकेनिज्म स्टैक को विशेष सिस्टम स्टैक पर स्विच करता है ताकि किसी भी थ्रेड स्टैक को सबसे खराब स्थिति वाले नेस्टेड इंटरप्ट उपयोग के लिए खाते की आवश्यकता न हो।

समय और संगामिति में प्रतिबन्ध

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

आधुनिक ऑपरेटिंग सिस्टम में विभाजित हैंडलर

कई ऑपरेटिंग सिस्टम में‍—‌माइक्रोसॉफ्ट विंडोज लाइनक्स, यूनिक्स,मैक ओएस व कुछ अन्य ऑपरेटिंग सिस्टम‍—‌इंटरप्ट हैंडलर को दो भागों में बांटा गया हैI फर्स्ट-लेवल इंटरप्ट हैंडलर और सेकेंड-लेवल इंटरप्ट हैंडलर को हार्ड इंटरप्ट हैंडलर्स या फास्ट इंटरप्ट हैंडलर्स के रूप में भी जाना जाता हैI को विंडोज़ में स्लो/सॉफ्ट इंटरप्ट हैंडलर्स या आस्थगित प्रक्रिया कॉल के रूप में भी जाना जाता है।

ऍफ़ एल आई एच 'इंटरप्ट रूटीन' के समान न्यूनतम प्लेटफॉर्म-विशिष्ट इंटरप्ट हैंडलिंग पर लागू होता है। ऍफ़ एल आई एच का कार्य इंटरप्ट को जल्दी से सर्विस करना है या विशिष्ट महत्वपूर्ण जानकारी को रिकॉर्ड करना है जो केवल इंटरप्ट के समय उपलब्ध है और आगे लंबे समय तक चलने वाले इंटरप्ट हैंडलिंग के लिए एलएसआईएच प्रणाली का क्रियान्वन और निष्पादन करता हैI

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

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

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

यह भी देखें


संदर्भ

  1. 1.0 1.1 "The Linux Kernel Module Programming Guide, Chapter 12. Interrupt Handlers". The Linux Documentation Project. May 18, 2007. Retrieved February 20, 2015.
  2. 2.0 2.1 Jonathan Corbet; Alessandro Rubini; Greg Kroah-Hartman (January 27, 2005). "Linux Device Drivers, Chapter 10. Interrupt Handling" (PDF). O'Reilly Media. Retrieved February 20, 2015.