2011-09-08 18 views
5

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

क्या यह कहना उचित है कि यदि एक म्यूटेक्स सीएएस का उपयोग करके लागू किया गया है, तो उस म्यूटेक्स पर ट्राई-लॉक ​​कॉल समान/समान प्रदर्शन सीएएस संचालन की तुलना में समान होगा?

सीएएस, अत्यधिक प्रणाली निर्भर होने के नाते, मैं सोच रहा था कि इसे संक्षेप में अधिक प्रसिद्ध/मानकीकृत व्युत्पन्न, म्यूटेक्स ट्राइक-लॉक के साथ प्रतिस्थापित किया जा सकता है।

उत्तर

4

आपकी तर्क ध्वनि है; किसी भी सायन कार्यान्वयन पर, "trylock" ऑपरेशन की लागत लगभग सीएएस के समान ही होगी। हालांकि, सामान्य रूप से सीएएस को trylock द्वारा प्रतिस्थापित नहीं किया जा सकता है; ट्रायलॉक एक कमजोर आदिम है जो मनमाना डेटा में हेरफेर नहीं कर सकता है।

2

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

मैं लॉकिंग अबास्ट्रक्शन का उपयोग करने के लिए अपनी भाषा/प्लेटफॉर्म का उपयोग करने की सलाह दूंगा। प्रदर्शन को मापें और देखें कि यह आपके लिए स्वीकार्य है या नहीं।

+0

Win32 में उपयोगकर्ता-स्थान म्यूटेक्स ('क्रिटिकलसेक्शन ') है, यह केवल शब्दावली की समस्या है। –

संबंधित मुद्दे