मैंने द आर्ट ऑफ़ मल्टीप्रोसेसर प्रोग्रामिंग 1 का अध्ययन किया है और उनके पाठ में स्पष्टता का अभाव है, ठीक उसी तरह जैसे आप जिस पुस्तक का उल्लेख करते हैं। यहां TAMPP के कुछ उद्धरण दिए गए हैं:
उद्धरण 1 (लॉक-फ़्री की परिभाषा)
एक विधि लॉक-मुक्त है अगर यह गारंटी देता है कि असीम रूप से अक्सर कुछ विधि कॉल एक सीमित संख्या में चरणों में खत्म होती है।
Quote 2 (नॉनब्लॉकिंग की परिभाषा)
कुल विधि का एक लंबित आह्वान पूरा होने के लिए किसी अन्य लंबित आह्वान की प्रतीक्षा करने की आवश्यकता नहीं है।
Quote 3 (दावा है कि लॉक-फ्री नॉनब्लॉकिंग है)
प्रतीक्षा-मुक्त और लॉक-फ़्री नॉनब्लॉकिंग प्रगति की स्थिति गारंटी देती है कि समग्र रूप से गणना प्रगति करती है, स्वतंत्र रूप से सिस्टम शेड्यूल कैसे करता है।
समस्या यह है कि उद्धरण 3 में दावा स्पष्ट रूप से उद्धरण 1 में परिभाषा से पालन नहीं करता है। जैसा कि पहले ही उल्लेख किया गया है, एक समन्वित कतार उद्धरण 1 को संतुष्ट करने के लिए लगती है: असीम रूप से अक्सर कुछ विधि सफलतापूर्वक लॉक और पूर्ण का अधिग्रहण करेगी।
नोट 3 में विशेष रूप से काफी अस्पष्ट वाक्यांश नोट करें: "स्वतंत्र रूप से सिस्टम शेड्यूल कैसे करता है"। यह, "धागे की शेड्यूलिंग प्रणाली 'का औपचारिक वर्णन के किसी भी प्रकार से पहले नहीं कर रहा है तो हम परिभाषाओं क्या पर हमारे पूर्वाग्रहों के आधार पर उसके गुण फिर से संगठित करने छोड़ दिया जाता है चाहिए मतलब है:
- सिस्टम हमेशा कुछ थ्रेड के निर्देशों को निष्पादित करता है ;
- यह कभी भी किसी दिए गए धागे के निर्देशों को निष्पादित नहीं कर सकता है ;
- सभी सूत्र विचाराधीन विधि को लागू कर रहे हैं।
इस तरह की प्रणाली पर, एक अवरुद्ध विधि लॉक-मुक्त नहीं हो सकती है: यदि लॉक को पकड़े हुए धागे को फिर से निष्पादन के लिए निर्धारित नहीं किया गया है, तो कोई अन्य धागा नहीं होगा जो अपने तरीके के आह्वान को एक सीमित संख्या में चरणों में पूरा कर सकता है, फिर भी वहाँ होगा कुछ सूत्र जो विधि के चरणों को क्रियान्वित कर रहे हैं। अधिक यथार्थवादी प्रणाली के लिए, जो अंततः प्रत्येक थ्रेड को सीपीयू समय देने की गारंटी देता है, परिभाषा में स्पष्ट रूप से गैर-लाभकारी संपत्ति शामिल होनी चाहिए:
लॉक-फ़्री की सही परिभाषा
एक विधि लॉक-मुक्त है यदि यह गैर-अवरुद्ध है और, इसके अतिरिक्त, गारंटी देता है कि अक्सर असीम रूप से कुछ विधि कॉल चरणों की एक सीमित संख्या में समाप्त होती है।
1 मौरिस हेरलहि, नीर शाविट, द आर्ट ऑफ मल्टीप्रोसेसर प्रोग्रामिंग, एल्सेवियर, पीपी। 58-60।