शब्दावली
घटना : एक प्रकार की बात जो हो सकती है।
ईवेंट फायरिंग : ईवेंट की एक विशिष्ट घटना; एक घटना हो रही है।
ईवेंट श्रोता : कुछ ऐसा जो ईवेंट फ़ेरिंग्स के लिए दिखता है।
ईवेंट हैंडलर : कुछ ऐसा होता है जब एक ईवेंट श्रोता एक इवेंट फायरिंग का पता लगाता है।
ईवेंट सब्सक्राइबर : एक प्रतिक्रिया जो इवेंट हैंडलर को कॉल करने वाली है।
ये परिभाषाएँ कार्यान्वयन पर निर्भर नहीं करती हैं, इसलिए उन्हें अलग-अलग तरीकों से लागू किया जा सकता है।
इनमें से कुछ शब्द आमतौर पर समानार्थक शब्द के लिए गलत हैं क्योंकि अक्सर उपयोगकर्ताओं को उनके बीच अंतर करने की आवश्यकता नहीं होती है।
सामान्य परिदृश्य
प्रोग्रामिंग-लॉजिक इवेंट।
घटना जब कुछ विधि कहा जाता हो जाता है।
एक घटना फायरिंग कि विधि के लिए किसी विशेष कॉल है।
घटना श्रोता घटना विधि है कि प्रत्येक घटना फायरिंग कि ईवेंट हैंडलर कॉल पर कहा जाता है में एक हुक है।
ईवेंट हैंडलर घटना ग्राहकों की एक संग्रह कहता है।
घटना ग्राहक (रों) प्रदर्शन भी कदम (रों) प्रणाली घटना की घटना के जवाब में होने का मतलब है।
बाहरी घटनाएँ।
घटना एक बाहरी हो रहा है कि observables से अनुमान लगाया जा सकता है।
एक ईवेंट फायरिंग तब होती है जब उस बाहरी घटना को होने के रूप में पहचाना जा सकता है।
घटना श्रोता किसी भी तरह घटना फायरिंग का पता लगाता है, अक्सर मतदान से नमूदार (रों), तो यह एक घटना फायरिंग का पता लगाने पर ईवेंट हैंडलर कहता है।
ईवेंट हैंडलर घटना ग्राहकों की एक संग्रह कहता है।
घटना ग्राहक (रों) प्रदर्शन भी कदम (रों) प्रणाली घटना की घटना के जवाब में होने का मतलब है।
मतदान बनाम घटना के फायरिंग तंत्र में हुक डालना
दूसरों द्वारा बनाया गया बिंदु यह है कि मतदान अक्सर आवश्यक नहीं होता है। ऐसा इसलिए है क्योंकि ईवेंट श्रोताओं को स्वचालित रूप से ईवेंट हैंडलर कहकर लागू किया जा सकता है, जो अक्सर घटनाओं को सिस्टम-स्तर पर होने वाली घटनाओं को लागू करने का सबसे कुशल तरीका है।
सादृश्य से, आपको मेल के लिए हर दिन अपने मेल बॉक्स की जांच करने की आवश्यकता नहीं है यदि डाक कर्मचारी आपके दरवाजे पर दस्तक देता है और मेल को सीधे आपको सौंपता है।
हालाँकि, इवेंट श्रोता भी मतदान करके काम कर सकते हैं। मतदान के लिए एक विशिष्ट मूल्य या अन्य अवलोकन योग्य होने की आवश्यकता नहीं है; यह अधिक जटिल हो सकता है। लेकिन, कुल मिलाकर, मतदान की बात यह है कि जब कोई घटना घटित होती है तो इसका उत्तर दिया जा सकता है।
सादृश्य से, आपको हर दिन अपने मेल बॉक्स की जांच करनी होगी जब डाक कर्मचारी बस इसमें मेल ड्रॉप करता है। यदि आप डाक कर्मचारी को अपने दरवाजे पर दस्तक देने का निर्देश दे सकते हैं, तो आपको यह मतदान कार्य नहीं करना होगा, लेकिन यह अक्सर एक संभावना नहीं है।
चैनिंग इवेंट लॉजिक
कई प्रोग्रामिंग भाषाओं में, आप एक ऐसी घटना लिख सकते हैं जिसे बस तब बुलाया जाता है जब कीबोर्ड पर एक कुंजी दबाया जाता है या एक निश्चित समय पर। हालाँकि ये बाहरी घटनाएँ हैं, आपको इनके लिए चुनाव करने की आवश्यकता नहीं है। क्यों?
ऐसा इसलिए है क्योंकि ऑपरेटिंग सिस्टम आपके लिए मतदान कर रहा है। उदाहरण के लिए, कीबोर्ड की स्थिति जैसे सामानों के लिए विंडोज चेक करता है, और यदि यह एक का पता लगाता है, तो यह ईवेंट सब्सक्राइबर्स को बुलाएगा। इसलिए, जब आप एक कीबोर्ड प्रेस ईवेंट की सदस्यता लेते हैं, तो आप वास्तव में एक ईवेंट की सदस्यता ले रहे होते हैं जो स्वयं एक ईवेंट का सब्सक्राइबर होता है जो पोल करता है।
सादृश्य से, यह कहें कि आप एक अपार्टमेंट परिसर में रह रहे हैं और एक डाक कर्मचारी एक सांप्रदायिक मेल रसीद क्षेत्र में मेल बंद कर देता है। फिर, एक ऑपरेटिंग-सिस्टम जैसा कार्यकर्ता हर किसी के लिए उस मेल की जांच कर सकता है, जो कुछ प्राप्त करने वालों के अपार्टमेंट में मेल पहुंचाता है। यह मेल-रिसीव क्षेत्र को प्रदूषित करने की परेशानी को और बढ़ाता है।
मेरा अंतर्ज्ञान यह मान लेगा कि इवेंट श्रोता लगातार जाँचता है कि क्या घटना को निकाल दिया गया है, मतलब, मेरे परिदृश्य में, यह हर फ्रेम की जाँच से अलग नहीं होगा यदि इवेंट को निकाल दिया गया है।
कक्षा में चर्चा के आधार पर, ऐसा लगता है कि इवेंट श्रोता एक अलग तरीके से काम करता है।
एक घटना श्रोता कैसे काम करता है?
जैसा कि आपको संदेह है, एक घटना मतदान के माध्यम से काम कर सकती है । और अगर किसी घटना का संबंध किसी बाहरी घटना से है, उदाहरण के लिए कीबोर्ड की एक कुंजी दबाई जा रही है, तो मतदान किसी बिंदु पर होना है।
यह भी सही है कि घटनाओं में मतदान को शामिल करने की आवश्यकता नहीं है। उदाहरण के लिए, यदि ईवेंट तब होता है जब कोई बटन दबाया जाता है, तो उस बटन की ईवेंट श्रोता एक विधि है जिसे GUI फ्रेमवर्क कॉल कर सकता है जब यह निर्धारित करता है कि माउस-क्लिक बटन हिट करता है। इस स्थिति में, माउस क्लिक का पता लगाने के लिए मतदान अभी भी होना था, लेकिन माउस-श्रोता एक अधिक निष्क्रिय तत्व है जो ईवेंट-चेनिंग के माध्यम से आदिम मतदान तंत्र से जुड़ा है।
अद्यतन: निम्न-स्तरीय हार्डवेयर मतदान पर
यह पता चला है कि USB उपकरणों और अन्य आधुनिक संचार प्रोटोकॉल में परस्पर क्रिया के लिए आकर्षक नेटवर्किंग जैसा प्रोटोकॉल होता है, जिससे मैं / ओ उपकरणों सहित कीबोर्ड और चूहों को तदर्थ टोपोलॉजी में संलग्न करने में सक्षम बनाता हूं ।
दिलचस्प है, " व्यवधान " काफी जरूरी, तुल्यकालिक चीजें हैं, इसलिए वे तदर्थ नेटवर्किंग टोपोलॉजी को संभाल नहीं पाते हैं । इसे ठीक करने के लिए, " इंटरप्ट " को अतुल्यकालिक उच्च-प्राथमिकता वाले पैकेट में " इंटरएक्शन लेनदेन " (यूएसबी के संदर्भ में) या " संदेश-संकेतित इंटरप्ट " (पीसीआई के संदर्भ में) में सामान्यीकृत किया गया है । यह प्रोटोकॉल USB विनिर्देशन में वर्णित है:
- " चित्र 8-31। " यूनिवर्सल सीरियल बस विशिष्टता, संशोधन 2.0 " , मुद्रित-पृष्ठ -222 में बल्क / कंट्रोल / इंटरप्ट ऑउट ट्रांजैक्शन होस्ट स्टेट मशीन " ; पीडीएफ-पृष्ठ -2500 (2000-04-27)
यह प्रतीत होता है कि I / O उपकरण और संचार घटक (जैसे USB हब) मूल रूप से नेटवर्क उपकरणों की तरह काम करते हैं। इसलिए, वे संदेश भेजते हैं, जिसके लिए उनके बंदरगाहों और जैसे मतदान की आवश्यकता होती है। यह समर्पित हार्डवेयर लाइनों की आवश्यकता को कम करता है।
विंडोज जैसे ऑपरेटिंग सिस्टम मतदान प्रक्रिया ही संभाल करने लगते हैं, जैसे में वर्णित के रूप के लिए MSDN प्रलेखीकरण USB_ENDPOINT_DESCRIPTOR
की जो कैसे नियंत्रित करने के लिए बताता है कि कैसे अक्सर विंडोज चुनाव बाधा / समकालिक संदेशों के लिए एक USB होस्ट नियंत्रक:
bInterval
मूल्य बाधा और समकालिक अंतिम बिंदुओं के लिए मतदान अंतराल होता है। अन्य प्रकार के समापन बिंदु के लिए, इस मान को अनदेखा किया जाना चाहिए। यह मान फर्मवेयर में डिवाइस के कॉन्फ़िगरेशन को दर्शाता है। ड्राइवर इसे बदल नहीं सकते।
मतदान अंतराल, डिवाइस की गति और मेजबान नियंत्रक के प्रकार के साथ, उस आवृत्ति को निर्धारित करता है जिसके साथ चालक को एक बाधा या एक समकालिक स्थानांतरण शुरू करना चाहिए। मान bInterval
समय की एक निश्चित राशि का प्रतिनिधित्व नहीं करता है। यह एक सापेक्ष मूल्य है, और वास्तविक मतदान आवृत्ति इस बात पर भी निर्भर करेगी कि डिवाइस और यूएसबी होस्ट नियंत्रक कम, पूर्ण या उच्च गति पर संचालित होता है या नहीं।
- "USB_ENDPOINT_DESCRIPTOR संरचना" , हार्डवेयर देव केंद्र, Microsoft
नए मॉनिटर कनेक्शन प्रोटोकॉल जैसे DisplayPort समान प्रतीत होते हैं:
मल्टी-स्ट्रीम ट्रांसपोर्ट (MST)
-Slide # 14 "DisplayPortTM Ver.1.2 ओवरव्यू" (2010-12-06) से
यह अमूर्त कुछ साफ सुविधाओं के लिए अनुमति देता है, जैसे एक कनेक्शन से 3 मॉनिटर चलाना:
डिस्प्लेपोर्ट मल्टी-स्ट्रीम ट्रांसपोर्ट तीन या अधिक डिवाइसों को एक साथ जोड़ने की अनुमति देता है, लेकिन इसके विपरीत, कम "उपभोक्ता" -ऑर्डिनेटेड कॉन्फ़िगरेशन: एक साथ एक ही आउटपुट पोर्ट से कई डिस्प्ले चला रहा है।
- "डिस्प्लेपोर्ट" , विकिपीडिया
वैचारिक रूप से, इसे दूर करने का मुद्दा यह है कि मतदान तंत्र अधिक सामान्यीकृत धारावाहिक संचार के लिए अनुमति देता है, जो कि तब होता है जब आप सामान्य कार्यक्षमता चाहते हैं। इसलिए, हार्डवेयर और OS तार्किक प्रणाली के लिए बहुत सारे मतदान करते हैं। फिर, उपभोक्ता जो घटनाओं की सदस्यता लेते हैं, वे अपने स्वयं के मतदान / संदेश-पासिंग प्रोटोकॉल को लिखने के बिना, निचले स्तर के सिस्टम द्वारा उनके लिए संभाले जा रहे उन विवरणों का आनंद ले सकते हैं।
अंततः, की-प्रेस जैसी घटनाओं को सॉफ्टवेयर-स्तर की अनिवार्य घटना-फायरिंग तंत्र से मिलने से पहले घटनाओं की एक दिलचस्प श्रृंखला के माध्यम से जाना लगता है।