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

From Vigyanwiki

कंप्यूटर सिस्टम प्रोग्रामिंग में इंटरप्ट हैंडलर जिसे इंटरप्ट सर्विस रूटीन या 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.