सेमाफोर और मॉनिटर के बीच का अंतर

Anonim

सेमाफोर बनाम मॉनिटर

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

एक सेमाफोर क्या है?

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

मॉनिटर क्या है?

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

सेमाफोर और मॉनिटर में क्या अंतर है?

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