म्यूटक्स और सेमाफोर के बीच का अंतर

Anonim

म्यूटक्स बनाम सेमाफोर

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

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

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

कहा जा रहा है के साथ, semaphores समवर्ती किसी भी धागे या प्रक्रिया से संकेत दिया जा सकता है और सिंक्रनाइज़ेशन की आवश्यकता होती है कि अनुप्रयोगों के लिए आदर्श हैं। फिर भी, सेमाफोर का उपयोग अधिकतम सेमाफोर गिनती के आधार पर आम संसाधनों के समवर्ती उपयोगकर्ताओं की संख्या को प्रभावी ढंग से प्रतिबंधित करने के लिए किया जाता है।

तो मूल रूप से, एक म्यूट एक्स को सैकॉयर के रूप में माना जा सकता है जिसमें एक का मान हो।

सिकंदरा की कमी और वेतन वृद्धि इस बात पर निर्भर है कि क्या धागे आम संसाधनों तक पहुंच का अनुरोध कर रहे हैं या अनुभाग को छोड़ रहे हैं

सिद्धांत में, म्यूट एक्स और (द्विआधारी) semaphores अर्थात् समान हैं। म्यूट एक्स के कार्यान्वयन को सैकफार्गे का उपयोग करके किया जा सकता है और ऐसा अन्य तरह से है। हालांकि, व्यावहारिक रूप से, वे थोड़ा अलग हो सकते हैं।

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

सारांश:

1 आम तौर पर म्यूटक्स को आम संसाधन तक पहुंच बनाने के क्रम में उपयोग किया जाता है, जबकि एक सिकंदरा एक साथ कई समसामयिक अभिगम है

2। म्यूटक्स एक की गणना के साथ एक सिकंदरा की तरह है

3। म्यूटक्स केवल एक थ्रेड को एक्सेस करने की अनुमति देता है, जबकि सैकफाफर्स को किसी भी थ्रेड या प्रोसेस से समवर्ती सिग्नल किया जा सकता है।

4। सिमफोर सिंक्रोनाइजेशन के लिए आदर्श हैं और प्रायः इवेंट नोटिफिकेशन और पारस्परिक बहिष्करण के लिए उपयोग किया जाता है, जबकि म्यूट एक्स केवल म्यूचुअल बहिष्करण के लिए लागू होता है।