2009-11-23 9 views
14

के बीच अंतर अंतर और घटना के बीच क्या अंतर है?इंटरप्ट और घटना

+2

पर निष्पादन ट्रिगर करने के लिए यह संदर्भ पर निर्भर करता है। क्या आप एक प्रोग्रामिंग भाषा के बारे में बात कर रहे हैं? ऑपरेटिंग सिस्टम ? हार्डवेयर? शब्द बाधित और घटना अक्सर संदर्भ पर निर्भर करते हैं। –

+0

ऑपरेटिंग सिस्टम कर्नेल टैग हैं। तो, मुझे लगता है कि संदर्भ बताता है। – claws

+0

यह भी देखें: http://stackoverflow.com/q/4835714/119790 –

उत्तर

27

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

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

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

एक बहुत प्रसिद्ध इंटरप्ट INT 0x21 है जो प्रोग्राम एमएस-डॉस से सेवाओं को कॉल करने के लिए [डी] का आह्वान करता है।

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

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

उनके [अपेक्षाकृत सरल] व्यवहार के साथ इंटरप्ट्स के विपरीत जो पूरी तरह से सीपीयू द्वारा परिभाषित किया गया है, ऑपरेटिंग सिस्टम के स्तर के साथ-साथ विभिन्न ढांचे (पूर्व: एमएस विंडोज, जावास्क्रिप्ट, .NET) के स्तर पर विभिन्न इवेंट सिस्टम सिस्टम मौजूद हैं। , क्यूटी आदि जैसे जीयूआई ढांचे ..)। सभी घटनाओं प्रणाली, जबकि उनके कार्यान्वयन में अलग, आम तौर पर इस तरह के

  • हैंडलर की अवधारणा है, जो एक विशेष कार्य/प्रोग्राम है जो विशेष घटना से घटना के किसी विशिष्ट प्रकार संभाल करने के लिए नामित किया गया है की विधि है के रूप में आम गुण का हिस्सा सूत्रों का कहना है।
  • एक घटना की अवधारणा, जो एक [आमतौर पर छोटी] संरचना है जिसमें घटना के बारे में जानकारी होती है: इसका प्रकार, इसका स्रोत, कस्टम पैरामीटर (जो अर्थशास्त्र घटना घटना पर निर्भर करता है)
  • एक कतार जहां घटनाएं डाली जाती हैं सूत्रों का कहना है और उपभोक्ताओं द्वारा/संचालकों सर्वेक्षण में शामिल (प्रेषकों द्वारा या अधिक सटीक, सिस्टम के आधार पर ...)
1

अवरोध हार्डवेयर (CPU) के अंदर लागू किया जाता है एक कार्यक्रम का आमतौर पर रैखिक प्रवाह बाधित करने के लिए। कुंजीपटल इनपुट जैसे बाहरी कार्यक्रमों के लिए यह महत्वपूर्ण है लेकिन मल्टी-टास्किंग ऑपरेटिंग सिस्टम में प्रोग्राम को बाधित करने के लिए भी महत्वपूर्ण है।

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

दोनों की तुलना करने के लिए एक यूज़रस्पेस कार्यक्रम देखने से,:

-Interrupts क्रम में रोकने के लिए अपने कार्यक्रम के लिए मजबूर कुछ निचले स्तर कोड निष्पादित (ओएस कोड की तरह)

-घटनाक्रम आमतौर पर भेजा जाता है यह बताने के लिए होगा आपको निम्न-स्तरीय कोड से और