जब एक म्यूटेक्स पहले ही टी 1 द्वारा लॉक हो जाता है, और टी 2 इसे लॉक करने का प्रयास करता है, तो टी 2 की प्रक्रिया क्या होती है?म्यूटेक्स कार्यान्वयन और सिग्नलिंग
मैं यह कुछ इस तरह चला जाता है लगता है:
-T2, लॉक करने के लिए कोशिश करता है विफल रहता है, हो सकता है थोड़ा spinlocks, तो उपज कॉल ...
-T2 निष्पादन समय के एक जोड़े के लिए निर्धारित है, पैदावार ...
-Eventually टी 1 बातें बताता है, टी 2 निष्पादन के लिए निर्धारित है और म्युटेक्स लॉक करने के लिए प्रबंधन करता है ...
करता T1 स्पष्ट अनुसूचक या अन्य धागे कि म्युटेक्स को यह संकेत दे अनलॉक करते लॉक करने के लिए कोशिश करता है विफल रहता है, अनलॉक है? या क्या यह अनलॉक करता है, और शेड्यूलर को अवरुद्ध धागे को शेड्यूल करने के लिए छोड़ देता है जब ऐसा करने के लिए उपयुक्त लगता है (उर्फ शेड्यूलर में अवरुद्ध धागे की कोई धारणा नहीं है और उन्हें विशेष रूप से नहीं माना जाता है)?
'मुझे लगता है कि पारस्परिक बहिष्करण सिद्धांत गारंटी देता है कि कोई भी 2 या अधिक धागे एक ही समय में महत्वपूर्ण अनुभाग में प्रवेश नहीं करते हैं। अब, क्या आपके पास mutex को लॉक करने का प्रयास करने वाले धागे के लिए कतार है या आप एक म्यूटेक्स मुक्त होने तक बस व्यस्त रहें, यह इस बात पर निर्भर है कि आप इसे कैसे कार्यान्वित करते हैं और म्यूटेक्स के लिए आपकी क्या ज़रूरत है। उदाहरण के लिए, आरटीओएस में 'म्यूटेक्स' जैसे वीएक्सवर्क्स प्राथमिकता छत प्रोटोकॉल को लागू करते हैं, जिसे आपको सामान्य उद्देश्य ओएस (जीपीओएस) में आवश्यकता नहीं हो सकती है। – Raj