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