ताला काफिले और ताला / धागा विवाद के बीच अंतर क्या है?
लॉक काफिले पर विकिपीडिया से:
एक लॉक काफिला तब होता है जब समान प्राथमिकता के कई धागे एक ही लॉक के लिए बार-बार प्रतिस्पर्धा करते हैं। गतिरोध और लाइवलॉक स्थितियों के विपरीत, लॉक काफिले में धागे प्रगति करते हैं; हालाँकि, हर बार एक धागा लॉक को प्राप्त करने का प्रयास करता है और विफल रहता है, यह अपने शेड्यूलिंग क्वांटम के शेष हिस्से को त्यागता है और एक संदर्भ स्विच को मजबूर करता है। बार-बार संदर्भ स्विच के ओवरहेड और शेड्यूलिंग क्वांटा के अंडरटाइजेशन समग्र प्रदर्शन को नीचा दिखाते हैं।
ताला / धागा विवाद विवाद पर विकिपीडिया से:
ताला विवाद: यह तब होता है जब कोई प्रक्रिया या थ्रेड किसी अन्य प्रक्रिया या थ्रेड के द्वारा लॉक प्राप्त करने का प्रयास करता है। उपलब्ध तालों को जितना अधिक बारीक किया जाता है, उतनी ही कम एक प्रक्रिया / धागा दूसरे द्वारा रखे गए ताला का अनुरोध करेगा। (उदाहरण के लिए, संपूर्ण तालिका के बजाय एक पंक्ति को लॉक करना, या संपूर्ण पंक्ति के बजाय सेल को लॉक करना।)
क्या कोई उन दोनों चीजों पर थोड़ा और विस्तार कर सकता है? मेरे लिए ऐसा लगता है कि वे अनिवार्य रूप से एक ही हैं, या यदि वे नहीं हैं, तो निश्चित रूप से ताला विवाद एक ताला काफिले का कारण बनता है। क्या यह मामला है या वे अलग और स्वतंत्र अवधारणाएं हैं? इसके अलावा, मुझे यह वाक्य समझ में नहीं आता है "यह अपने शेड्यूलिंग क्वांटम के शेष हिस्से को छोड़ देता है और एक संदर्भ स्विच को मजबूर करता है"।
जवाब
लॉकिंग एल्गोरिदम में दो अवरुद्ध दृष्टिकोण का उपयोग किया जाता है जब एक ताला व्यस्त होता है । स्पिन प्रतीक्षा या ब्लॉक (सो जाओ, प्रोसेसर को त्यागें और थ्रेड को जागृत करने और पुन: शेड्यूल करने के लिए ओएस की प्रतीक्षा करें)। लॉक काफिला जैसा कि उल्लेख किया गया है जब अवरुद्ध रणनीति का उपयोग किया जाएगा।
ओएस अनुसूची समय-कटा हुआ तरीके से एक कोर पर थ्रेड करता है। प्रत्येक थ्रेड को प्रोसेसर प्रति-निर्धारित समय-स्लाइस के लिए मिलता है, 2 ms कहें। एक राउंड-रॉबिन में ओएसफैशन ने एक-एक करके रेडी-क्यू में सभी धागों को शेड्यूल किया। यदि कोई थ्रेड कहे जाने के बाद शेड्यूल करें और उसका निष्पादन शुरू करें, तो हमें 100 के बाद कहें, लॉक के लिए पूछें। यदि लॉक व्यस्त है, तो लॉक प्राप्त करने में असमर्थ धागा, ब्लॉक और रिसीक्विज़ प्रोसेसर। तो शेष 1.9ms (2ms-100us) टाइम स्लाइस का उपयोग थ्रेड द्वारा नहीं किया जाता है। ओएस द्वारा जगाने के बाद भी जब ताला मुक्त होता है, तो धागे को राउंड-रॉबिन कतार में अपनी बारी का इंतजार करना पड़ता है। सक्रिय धागों की संख्या 100 में हो सकती है।
ताला विवाद का काफिला प्रभाव का कारण बनता है।