विकिपीडिया के अनुसार ,
परीक्षण और सेट ऑपरेशन दो से अधिक समवर्ती प्रक्रियाओं के लिए प्रतीक्षा-मुक्त सर्वसम्मति समस्या को हल कर सकता है।
यह दो से अधिक प्रक्रियाओं के लिए समस्या का समाधान क्यों नहीं कर सकता है?
विकिपीडिया के अनुसार ,
परीक्षण और सेट ऑपरेशन दो से अधिक समवर्ती प्रक्रियाओं के लिए प्रतीक्षा-मुक्त सर्वसम्मति समस्या को हल कर सकता है।
यह दो से अधिक प्रक्रियाओं के लिए समस्या का समाधान क्यों नहीं कर सकता है?
जवाबों:
बस यह सुनिश्चित करने के लिए कि हम एक ही पृष्ठ पर हैं, पहले हम इन तीन परिभाषाओं पर विचार करें:
परिभाषा। टेस्ट-एंड-सेट कुछ बाइनरी रजिस्टर पर एक रीड-संशोधित-राइटिंग इंस्ट्रक्शन है (मान लें कि केवल 0 और 1 संभावित मान हैं) जहां एक थ्रेड पुराना मान प्राप्त करता है और 1 लिखता है।
परिभाषा। आम सहमति के बीच तक पहुँच जाता है iff सभी धागे n सूत्र एक ही मूल्य पर (स्थिरता की आवश्यकता) तय और सभी धागे एक मूल्य है कि वास्तव में धागे में से एक (वैधता आवश्यकता) द्वारा प्रस्तावित किया गया था पर फैसला।
Defintion। एक सर्वसम्मति प्रोटोकॉल प्रतीक्षा-मुक्त है यदि प्रत्येक विधि कॉल चरणों की एक सीमित संख्या में समाप्त होती है।
अब दो प्रूफ स्केच का पालन करें।
दावा 1. परीक्षण और सेट की सर्वसम्मति संख्या कम से कम 2. प्रमाण। मान लीजिए कि हमारे पास दो धागे 0 और 1 हैं जिन्हें आम सहमति तक पहुंचने की आवश्यकता है। हम प्रत्येक थ्रेड को नीचे सर्वसम्मति प्रोटोकॉल का पालन करके ऐसा कर सकते हैं:
आप खुद को सत्यापित कर सकते हैं कि आम सहमति और प्रतीक्षा-परिश्रम संतुष्ट हैं।
(अगले सबूत के लिए, मैं कुछ सबूतों और परिभाषाओं को घोंसला बनाऊंगा क्योंकि मुझे लगता है कि इससे पालन करना आसान हो जाएगा।)
दावा 2. परीक्षण और सेट की सर्वसम्मति संख्या सबसे अधिक है 2. प्रमाण। विरोधाभास से। मान लीजिए कि हमें तीन सूत्र है , बी और सी है कि मूल्यों पर फैसला करना चाहते हैं एक , ख और ग , क्रमशः, और है कि हम (कुछ वैध प्रतीक्षा मुक्त आम सहमति प्रोटोकॉल है कि परीक्षण और सेट का उपयोग कार्यान्वित किया जाता है है और परमाणु रीड और राईट )।
हम एक निर्देशित पेड़ के रूप में आम सहमति प्रक्रिया की कल्पना कर सकते हैं, जहां:
परिभाषा। यदि सहमति प्रक्रिया का परिणाम अभी तक निर्धारित नहीं किया गया है, तो एक राज्य को बहुविकल्पी होने दें । दूसरे शब्दों में, शेष चालों के सभी संभव इंटरलेविंग्स एक ही परिणाम की ओर नहीं ले जाते हैं। जब सर्वसम्मति की प्रक्रिया का परिणाम निर्धारित किया जाता है , तो एक राज्य को एकसाथ रहने दें ।
जड़ बहुविध है। प्रमाण। यदि केवल एक थ्रेड सक्रिय है और अन्य थ्रेड्स हमेशा के लिए निष्क्रिय रहते हैं, तो X चरणों की एक सीमित संख्या में समाप्त हो जाएगा (प्रतीक्षा-निर्बाध धारणा द्वारा गारंटीकृत) और यह x तय करेगा (इसके लिए केवल इस मान और इसकी पहुंच है) निर्णय सर्वसम्मति वैधता की आवश्यकता को पूरा करेगा)। तो हमारी स्थिति के लिए, ए , बी और सी सभी संभावित परिणाम हैं। ◻
परिभाषा। एक महत्वपूर्ण राज्य एक राज्य में जो multivalent है, अतिरिक्त संपत्ति को द्वारा एक कदम के साथ होने दो का निर्धारण करेगा एक , और से एक कदम बी का निर्धारण करेगा ख ।
वहाँ एक महत्वपूर्ण राज्य मौजूद है। प्रमाण। ऊपर से हम जानते हैं कि हम एक बहुसंख्यक राज्य में शुरू करते हैं। को कोई भी चाल न चलने दें । जब तक ए या बी पेड़ को एक असंगत स्थिति में मजबूर नहीं करता है, तब तक इसे चलने दें। प्रतीक्षा-परिश्रम की गारंटी है कि पेड़ परिमित है, इसलिए किसी समय एक महत्वपूर्ण अवस्था का सामना करना होगा। ◻
अब एक परिदृश्य पर विचार करें जहां हम एक महत्वपूर्ण स्थिति में हैं। कर रहे हैं कम से कम दो संभावनाएं:
1) अपनी चाल बनाता है (जिससे निर्धारण होता है ) और हाल्ट। B तब अपनी चाल बनाता है और रुकता है। अगला सी चलाता है जब तक यह खत्म, अंत में निर्णय लेने से एक ।
2) अपनी चाल बनाता है (जिससे बी निर्धारित करता है ) और हाल्ट। अगला C तब तक चलता है, जब तक वह खत्म नहीं हो जाता, अंत में b तय करता है । A चाल नहीं बनाता है।
चूंकि परमाणु पढ़ता है और लिखता है, सर्वसम्मति संख्या 1, और बी की चालों को एक ही रजिस्टर पर परीक्षण-और-निर्धारित निर्देश होना था (यदि रजिस्टर अलग हैं, तो सी उस क्रम को नहीं बता पाएगा जिसमें ए और की चालें हुई)। से सी के परिप्रेक्ष्य, तो, परिदृश्यों 1 और 2 अप्रभेद्य हैं, इसलिए हम चाहते हैं कि होना आवश्यक है सी दोनों का फैसला करता है एक और ख । यह असंभव है। ◻
परीक्षण और सेट निर्देश में सर्वसम्मति संख्या 2 का दावा 1 और 2 दोनों से किया गया है।
विकिपीडिया लेख में एक संदर्भ होता है जो आपके प्रश्न का उत्तर देता है, लेकिन शायद आप उस 26 पृष्ठ के पेपर को पढ़ना नहीं चाहते हैं। मैं (काफी तकनीकी) प्रमाण का एक सरलीकृत संस्करण दूंगा, यह दिखाते हुए कि परीक्षण और सेट 3 प्रक्रियाओं के लिए द्विआधारी आम सहमति को हल नहीं कर सकता है। इस तरह के तर्क का व्यापक रूप से सर्वसम्मति संख्या साबित करने में उपयोग किया जाता है।
मान लें कि हमारे पास 3 प्रक्रियाओं के लिए टीएएस रजिस्टरों का उपयोग करके एक सर्वसम्मति एल्गोरिथ्म है।
किसी भी समय, प्रत्येक प्रक्रिया में एक चाल (निर्देश) होगा जो निष्पादित होने के लिए तैयार है। तीन निर्देशों में से कौन सा निष्पादित किया जाएगा गैर-नियतात्मक है।
मान लीजिए कि हम एक द्वीपीय स्थिति में हैं (एक ऐसी स्थिति जिसमें 0 या 1 निर्णय दोनों अभी भी संभव है) और जो भी प्रक्रिया आगे बढ़ती है, बाद की स्थिति असमान होगी। ऐसी स्थिति को अंततः प्रतीक्षा-मुक्त स्थिति के कारण पहुंचना चाहिए।
मान लीजिए (wlg) कि अगर प्रक्रिया 1 चलती है, तो राज्य 0-वैलेंट होगा, और अगर प्रक्रिया 2 चलती है, तो राज्य 1-वैलेंट होगा। दोनों चालों को एक ही रजिस्टर पर एक TAS ऑपरेशन (या कम से कम: किसी प्रकार का लिखना) होना चाहिए, क्योंकि अगर वे अलग-अलग रजिस्टरों पर TAS ऑपरेशन थे, तो हम यह नहीं बता सकते थे कि क्या प्रक्रिया 1 पहले चली गई या प्रक्रिया 2 पहले चली गई।
आइए इन दो संभावित निष्पादनों पर विचार करें:
प्रक्रिया 3 के दृष्टिकोण से, ये राज्य अप्रभेद्य हैं क्योंकि यह सिर्फ प्रक्रिया 2 द्वारा लिखे गए मूल्य को देखता है। हालांकि, पहले मामले में इसे 0 को आउटपुट के रूप में देना चाहिए, और दूसरे को आउटपुट के रूप में। स्पष्ट रूप से, यह एक विरोधाभास है।
प्रक्रिया 1 और 2 आपस में तय कर सकते हैं जो पहले चले गए (क्योंकि वे देख सकते हैं कि उनके लिखने से पहले रजिस्टर में क्या मूल्य था) लेकिन तीसरी दर्शक प्रक्रिया नहीं हो सकती।
3-प्रोसेसर की सहमति को हल करने के लिए परीक्षण-और-सेट का उपयोग नहीं किया जा सकता है, यह साबित करने का एक और तरीका यह है कि 2-प्रोसेसर की सहमति का उपयोग करके परीक्षण-और-सेट को लागू किया जा सकता है। फिर, यह मानते हुए कि परीक्षण-और-सेट 3-प्रोसेसर सहमति को हल कर सकता है, एक विरोधाभास की ओर जाता है: मान लीजिए कि परीक्षण-और-सेट 3-प्रोसेसर आम सहमति को हल कर सकता है; फिर 2-प्रोसेसर सर्वसम्मति का उपयोग करके इसके कार्यान्वयन के द्वारा परीक्षण-और-सेट की जगह 2-प्रोसेसर आम सहमति का उपयोग करके 3-प्रोसेसर आम सहमति का कार्यान्वयन प्राप्त होता है, जो असंभव है। इस प्रकार परीक्षण और सेट 3-प्रोसेसर आम सहमति को हल नहीं कर सकता है।
2-प्रोसेसर सर्वसम्मति का उपयोग करते हुए n- प्रोसेसर्स के लिए टेस्ट-एंड-सेट को लागू करने के लिए, प्रोसेसर एक टूर्नामेंट का उपयोग करके टेस्ट-सेट के एक विजेता को निर्धारित करते हैं, जिसमें प्रत्येक प्रोसेसर को 2-प्रोसेसर सर्वसम्मति (एक मैच में, प्रोसेसर का उपयोग करके लागू किया जाता है) उनके पहचानकर्ता को प्रस्ताव दें और सर्वसम्मति परिणाम उन्हें बताता है कि कौन जीतता है)।
व्यावहारिक अर्थ में एक कम सख्त आम सहमति परिभाषा पर्याप्त हो सकती है (यहाँ मैं इसे प्रकाश-सर्वसम्मति कहता हूँ):
परिभाषा । लाइट-सर्वसम्मति n थ्रेड्स iff (a) के बीच पहुँच जाती है, प्रत्येक थ्रेड या तो एक ही मान पर निर्णय लेता है या मान इसके लिए अज्ञात है, (b) कम से कम एक थ्रेड मूल्य जानता है और (c) यह मान वास्तव में किसी एक के द्वारा प्रस्तावित किया गया था धागे।
इसलिए यह आम सहमति अपने हल्के अर्थों में अनुमति देती है कि कुछ सूत्र आम सहमति नहीं जानते हैं, जो मूल्य तय किया गया है।
कोरोलरी : इस हल्के अर्थ में परीक्षण और सेट में अनंत प्रकाश-सर्वसम्मति संख्या होती है।
दावा : यह हल्का अर्थ व्यावहारिक है। उदाहरण के लिए, महत्वपूर्ण खंड में प्रवेश करने के लिए धागे का चयन करने के लिए यह सख्त अर्थों में आम सहमति बनाने के लिए आवश्यक नहीं है। यह कहना है: प्रत्येक थ्रेड को यह जानना होगा कि उसे चुना गया है या नहीं, हालांकि अगर वह चयनित नहीं है तो उसे यह जानना नहीं होगा कि उसका चयन किया गया था। दूसरे शब्दों में, पारस्परिक बहिष्करण के लिए सख्त-आम सहमति आवश्यक नहीं है, प्रकाश पर्याप्त है।