क्या परीक्षण-सेट या स्वैप के बिना हार्डवेयर लॉक कार्यान्वयन हैं?


19

आमतौर पर ताले परीक्षण और सेट और स्वैप मशीन-स्तरीय निर्देशों के माध्यम से लागू किए जाते हैं। क्या अन्य कार्यान्वयन हैं जो इनका उपयोग नहीं करते हैं?

क्या हम यह भी कह सकते हैं कि महत्वपूर्ण खंड की समस्या के सभी हार्डवेयर स्तर के समाधानों को केवल तीन में वर्गीकृत किया जा सकता है, अर्थात्, व्यवधान, परीक्षण और सेट और स्वैप?

जवाबों:


13

हां, आप केवल मेमोरी लोड और स्टोर निर्देशों के साथ पारस्परिक बहिष्करण को लागू कर सकते हैं। इस समस्या के क्रमिक रूप से सरल समाधान तैयार करने की एक लंबी परंपरा है।

सबसे पहला संस्करण जो मुझे पता है, जिसे "डेकर का समाधान" कहा जाता है, को दिज्क्स्ट्रा, एल्ड्स डब्ल्यू; में पेश किया गया था एफ। गेनुइज, एड।, प्रोग्रामिंग लैंग्वेजेस: नाटो एडवांस्ड स्टडी इंस्टीट्यूट , पीपी। 43-112, अकादमिक प्रेस, 1968 में "अनुक्रमिक प्रक्रियाओं का सहयोग" । तब से दर्जनों समाधान हो चुके हैं। मैं केवल कुछ और उल्लेखनीय लोगों की चर्चा करूंगा।

लैम्पपोर्ट, लेस्ली; "दिजाकस्ट्रा के समवर्ती प्रोग्रामिंग समस्या का एक नया समाधान", कॉम एसीएम 17 (8): 453-455, 1974 "बेकरी एल्गोरिथ्म" का परिचय देता है (क्योंकि यह उन लोगों की सादृश्य पर आधारित है जो क्रम को निर्धारित करने के लिए संख्या लेते हैं जिसमें वे होंगे बेकरी की दुकान पर सेवा की)। इस एल्गोरिथ्म की विशेष रूप से उल्लेखनीय विशेषताओं में से एक यह है कि यह दर्शाता है कि आपसी अपवर्जन समस्या को हल करने के लिए किसी भी तरह की हार्डवेयर परमाणुता की आवश्यकता नहीं है। एक ही स्थान पर ओवरलैप लिखने वाले किसी भी मूल्य को वापस कर सकते हैं और एल्गोरिथ्म अभी भी काम करता है। लैम्पपोर्ट अपने होम पेज पर पेपर के विवरण में इस पर थोड़ी चर्चा करते हैं

पीटरसन का समाधान, पीटरसन, जीएल; "आपसी बहिष्कार समस्या के बारे में मिथक," Inf। प्रोक। लेट्ट। , १२ (३): ११५-११६, १ ९ :१ , एक ऐसा है जिसे विशेष रूप से समझने में आसान बनाया गया है, और इसके बारे में कारण। अंत में, मेरा एक विशेष पसंदीदा लैम्पपोर्ट, लेस्ली है; "एक तेज़ म्यूचुअल बहिष्करण एल्गोरिथम," एसीएम ट्रांस। अनि। Sys। , 5 (1): 1-11, 1987। इस पत्र में लैम्पपोर्ट (आम) मामले में आपसी बहिष्करण समस्या के समाधान का अनुकूलन करने की कोशिश कर रहा था कि महत्वपूर्ण खंड के लिए बहुत कम विवाद है। यह आपसी बहिष्कार और गतिरोध स्वतंत्रता की गारंटी देता है, लेकिन निष्पक्षता नहीं। यह (मेरा मानना ​​है) केवल सामान्य रीडिंग का उपयोग करके पहला पारस्परिक बहिष्करण एल्गोरिदम है और लिखता है कि जब कोई विवाद नहीं होता है तो ओ (1) समय में एन प्रोसेसर को सिंक्रनाइज़ कर सकते हैं। (जब कोई विवाद होता है, तो यह एक O (N) परीक्षण पर वापस आ जाता है।) वह एक अनौपचारिक प्रदर्शन देता है कि आप विवाद मुक्त मामले में सबसे अच्छा कर सकते हैं सात मेमोरी एक्सेस है। (डेकर और पीटरसन दोनों इसे 4 के साथ करते हैं, लेकिन वे केवल 2 प्रोसेसर संभाल सकते हैं, जब आप अपने एल्गोरिदम को एन तक बढ़ाते हैं तो उन्हें एक अतिरिक्त ओ (एन) एक्सेस जोड़ना होगा।)

जाहिरा तौर पर जो लोग सिर्फ मेमोरी का उपयोग करके आपसी बहिष्कार को हल करने की समस्या पर काम करते हैं, वे पढ़ते हैं और लिखते हैं कि अन्य लोग (समस्या की समझ) की कमी और इसके समाधान से निराश हो जाते हैं। यह आंशिक रूप से पीटरसन के पेपर ("आपसी बहिष्कार समस्या के बारे में मिथक") के शीर्षक से और आंशिक रूप से एक छोटे नोट द्वारा प्रदर्शित किया जाता है जिसे लैमपोर्ट ने 1991 में प्रकाशित किया: लैमपोर्ट, लेस्ली; "द म्युचुअल एक्सक्लूज़न प्रॉब्लम सॉल्व्ड बीडेड", कॉम एसीएम 34 (1): 110, 1991 , जो लैमपोर्ट अपने होमपेज पर कुछ कड़वा वर्णन करता है

तो आपके दूसरे प्रश्न का उत्तर देने के लिए: नहीं। महत्वपूर्ण खंड समस्या के लिए हार्डवेयर स्तर के समाधानों की तीन से अधिक श्रेणियां हैं (बस लोड और स्टोर का उपयोग करना एक है, अन्य में तुलना-और-स्वैप निर्देश, लोड-लिंक्ड / स्टोर-सशर्त शामिल हैं निर्देश (एटोमिसिटी के लिए परीक्षण करने के लिए कैश जुटना प्रोटोकॉल का उपयोग करना), और निर्देशों को लाना।) एक अन्य अर्थ में वास्तव में समाधानों की एक श्रेणी है: वे जो अतुल्यकालिक प्रक्रियाओं का एक गुच्छा प्राप्त करने के लिए घटनाओं के वैश्विक आदेश पर सहमत होते हैं। ।

(ध्यान दें कि यह उत्तर पहले के उत्तर का एक (व्यापक) संपादन है जो मैंने बहुत ही अलग प्रश्न के लिए दिया था


बेशक, sc / sc को अधिक सामान्य लेन-देन की मेमोरी तक बढ़ाया जा सकता है, जो केवल लॉक अधिग्रहण के बजाय पूरे महत्वपूर्ण खंड को कवर करता है। हार्डवेयर प्रदान करता है की गारंटी के बीच अंतर भी महत्वपूर्ण लगता है; आगे की प्रगति की गारंटी कभी-कभी दी जाती है (यानी, एक एजेंट एक निश्चित समय पर ताला पाने के लिए दौड़ जीत जाएगा), लेकिन निष्पक्षता से संबंधित कमजोर अवधारणाएं भी आमतौर पर सॉफ्टवेयर (कुछ हद तक समझ में) के लिए थकाऊ लगती हैं।
पॉल ए। क्लेटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.