एक मॉनिटर और एक सेमाफोर के बीच प्रमुख अंतर क्या हैं ?
एक मॉनिटर और एक सेमाफोर के बीच प्रमुख अंतर क्या हैं ?
जवाबों:
एक मॉनिटर एक वस्तु से अधिक थ्रेड से पहुँचा जा करने के लिए बनाया है। मॉनिटर ऑब्जेक्ट के सदस्य फ़ंक्शन या तरीके आपसी बहिष्करण को लागू करेंगे, इसलिए केवल एक धागा किसी निश्चित समय पर ऑब्जेक्ट पर कोई कार्रवाई कर सकता है। यदि एक धागा वर्तमान में ऑब्जेक्ट के सदस्य फ़ंक्शन को निष्पादित कर रहा है, तो कोई भी अन्य धागा जो उस ऑब्जेक्ट के सदस्य फ़ंक्शन को कॉल करने का प्रयास करता है, उसे पहले समाप्त होने तक इंतजार करना होगा।
एक सेमाफोर एक निचले स्तर की वस्तु है। मॉनीटर को लागू करने के लिए आप अच्छी तरह से एक सेमाफोर का उपयोग कर सकते हैं। एक सेमाफोर अनिवार्य रूप से सिर्फ एक काउंटर है। जब काउंटर पॉजिटिव होता है, यदि कोई थ्रेड सेमाफोर का अधिग्रहण करने की कोशिश करता है, तो उसे अनुमति दी जाती है, और काउंटर को डिक्रिप्ट किया जाता है। जब एक धागा किया जाता है तो यह अर्ध-विमोचन करता है, और काउंटर को बढ़ाता है।
यदि काउंटर पहले से ही शून्य है जब एक धागा सेमीफोर का अधिग्रहण करने की कोशिश करता है तो उसे तब तक इंतजार करना पड़ता है जब तक कि एक और धागा सेमीफोर जारी नहीं करता है। यदि कई धागे प्रतीक्षा कर रहे हैं जब एक धागा एक अर्धकुंभ जारी करता है, तो उनमें से एक इसे प्राप्त करता है। जो धागा एक सेमाफोर जारी करता है, उसे उसी धागे की आवश्यकता नहीं है जो उसे अधिग्रहित करता है।
एक मॉनिटर एक सार्वजनिक शौचालय की तरह है। एक समय में केवल एक ही व्यक्ति प्रवेश कर सकता है। वे किसी और को आने से रोकने के लिए, अपना सामान करने के लिए दरवाजे को बंद कर देते हैं, और जब वे जाते हैं तब इसे अनलॉक करते हैं।
एक सेमीफोर बाइक किराए की जगह की तरह है। उनके पास निश्चित संख्या में बाइक हैं। यदि आप बाइक चलाने की कोशिश करते हैं और उनके पास एक मुफ्त है तो आप इसे ले सकते हैं, अन्यथा आपको इंतजार करना होगा। जब कोई अपनी बाइक वापस करता है तो कोई और ले सकता है। अगर आपके पास एक बाइक है तो आप इसे किसी और को वापस करने के लिए दे सकते हैं --- बाइक किराए पर लेने वाले को इसकी परवाह नहीं है कि वह किसे लौटाता है, जब तक कि उन्हें अपनी बाइक वापस नहीं मिल जाती।
निम्नलिखित विवरण वास्तव में बताते हैं कि कैसे प्रतीक्षा () और संकेत () मॉनिटर के पी और वी से अलग हैं।
प्रतीक्षा () और संकेत () एक में हालत चर पर कार्रवाई की निगरानी के लिए समान हैं पी और वी गिनती पर कार्रवाई संकेतबाहु ।
एक प्रतीक्षा विवरण एक प्रक्रिया के निष्पादन को अवरुद्ध कर सकता है, जबकि एक सिग्नल स्टेटमेंट किसी अन्य प्रक्रिया को अनब्लॉक करने का कारण बन सकता है। हालाँकि, कुछ अंतर हैंउनके बीच। जब कोई प्रक्रिया P ऑपरेशन को अंजाम देती है, तो यह जरूरी नहीं कि उस प्रक्रिया को अवरुद्ध कर दे क्योंकि गिनती का सेमाफोर शून्य से अधिक हो सकता है। इसके विपरीत, जब एक प्रतीक्षा विवरण निष्पादित होता है, तो यह हमेशा प्रक्रिया को अवरुद्ध करता है। जब कोई कार्य किसी सेमाफ़ोर पर V ऑपरेशन को अंजाम देता है, तो यह या तो उस अर्धवृत्त पर प्रतीक्षा करने वाले कार्य को अनब्लॉक कर देता है या अनलॉक करने के लिए कोई कार्य नहीं होने पर सेमाफ़ोर काउंटर को बढ़ाता है। दूसरी ओर, यदि कोई प्रक्रिया सिग्नल स्टेटमेंट निष्पादित करती है जब अनब्लॉक करने के लिए कोई अन्य प्रक्रिया नहीं होती है, तो स्थिति चर पर कोई प्रभाव नहीं पड़ता है। सेमाफोर और मॉनिटर के बीच एक और अंतर यह है कि वी ऑपरेशन द्वारा जागृत उपयोगकर्ता बिना देरी के निष्पादन को फिर से शुरू कर सकते हैं। इसके विपरीत, एक सिग्नल ऑपरेशन द्वारा जागृत उपयोगकर्ताओं को मॉनिटर के अनलॉक होने पर ही पुनः आरंभ किया जाता है। के अतिरिक्त,
लिंक: यहाँ आगे पढ़ने के लिए। आशा करता हूँ की ये काम करेगा।
सेमफोर एक साझा ऑब्जेक्ट तक पहुंचने के लिए कई थ्रेड्स (एक सेट संख्या तक) की अनुमति देता है। किसी साझा किए गए ऑब्जेक्ट पर पारस्परिक रूप से अनन्य पहुंच की अनुमति देता है।
java.util.ArrayList
: क्या यह एक वस्तु या कई वस्तुओं का कंटेनर है? खैर, यह दोनों एक ही समय में है। तो क्या इसके उपयोग को नियंत्रित करने के लिए सेमाफोर उपयुक्त है? मैं कहूंगा: नहीं।
जब किसी महत्वपूर्ण क्षेत्र की सुरक्षा के लिए एक सेमाफोर का उपयोग किया जाता है, तो सेमीफोर और डेटा की सुरक्षा के बीच कोई सीधा संबंध नहीं होता है। यह इस कारण का एक कारण है कि कोड के चारों ओर सेमाफोर क्यों फैलाए जा सकते हैं, और प्रतीक्षा या सूचना को कॉल करना क्यों आसान है , इस मामले में, परिणाम क्रमशः पारस्परिक बहिष्कार का उल्लंघन करने या स्थायी रूप से संसाधन को लॉक करने के लिए होगा।
इसके विपरीत, इन खराब चीजों का नीटर मॉनिटर के साथ हो सकता है। एक मॉनिटर सीधे डेटा से थक जाता है (यह डेटा को एनकैप्सुलेट करता है) और, क्योंकि मॉनिटर ऑपरेशन परमाणु क्रियाएं हैं, कोड लिखना असंभव है जो एंट्री प्रोटोकॉल को कॉल किए बिना डेटा तक पहुंच सकता है। मॉनिटर ऑपरेशन पूरा होने पर निकास प्रोटोकॉल स्वचालित रूप से कहा जाता है।
मॉनीटर में आगे बढ़ने से पहले हालत चर के रूप में स्थिति तुल्यकालन के लिए एक अंतर्निहित तंत्र होता है। यदि हालत संतुष्ट नहीं है, तो प्रक्रिया को तब तक इंतजार करना होगा जब तक कि यह स्थिति में बदलाव की सूचना न हो। जब एक प्रक्रिया स्थिति तुल्यकालन की प्रतीक्षा कर रही है, तो मॉनिटर कार्यान्वयन आपसी बहिष्करण समस्या का ध्यान रखता है, और एक अन्य प्रक्रिया को मॉनिटर तक पहुंच प्राप्त करने की अनुमति देता है।
ओपन यूनिवर्सिटी M362 यूनिट 3 "इंटरैक्टिंग प्रोसेस" पाठ्यक्रम सामग्री से लिया गया।
सेमाफोर:
समवर्ती प्रणाली में कुछ साझा संसाधनों तक पहुंच को नियंत्रित करने के लिए एक काउंटर या ध्वज का उपयोग करना, सेमाफोर के उपयोग को दर्शाता है ।
उदाहरण:
झंडे केवल संसाधन की वर्तमान स्थिति, कोई गणना या संसाधन पर प्रतीक्षा या चल रही वस्तुओं पर कोई अन्य जानकारी प्रकट नहीं करते हैं।
मॉनिटर:
एक मॉनिटर ऑब्जेक्ट में रुचि रखने वाले थ्रेड्स के साथ संचार करके किसी ऑब्जेक्ट तक पहुंच को सिंक्रनाइज़ करता है, जिससे उन्हें एक्सेस प्राप्त करने या किसी स्थिति के सही होने की प्रतीक्षा करने के लिए कहता है।
उदाहरण: