क्या वास्तव में वितरित कंप्यूटिंग है? [बन्द है]


15

क्या वास्तव में वितरित कंप्यूटिंग का गठन होता है, और यह समानांतर / समवर्ती कंप्यूटिंग से कैसे भिन्न होता है?

कई समानांतर थ्रेड्स में म्यूटेक्स और सेमाफोर का उपयोग संसाधन के उपयोग के लिए सिंक्रनाइज़ करने के लिए वितरित कंप्यूटिंग के क्षेत्र में एक समस्या का गठन करता है?

जवाबों:


9

वास्तव में वितरित कंप्यूटिंग का गठन क्या है?

वितरित कंप्यूटिंग प्रसंस्करण तत्वों का एक अंतर्निहित समानांतर संग्रह है जो एक या अधिक समस्याओं से निपटने के लिए एक दूसरे के साथ संवाद करता है। उन प्रसंस्करण तत्वों को एक दूसरे से पर्याप्त रूप से अलग किया जाता है कि उनके बीच एक विश्वसनीय और समय पर संदेश भेजने वाले कपड़े का निर्माण करना व्यावहारिक नहीं है, और इसलिए सिस्टम की स्थिति का वैश्विक ज्ञान होना असंभव है। वितरण प्रणाली के साथ संदेश के विशेष सुविधाओं संदेश जो कर रहे हैं होगा खो दिया हो, होगा , ठीक से प्रदर्शित हो जाएगा देरी हो - इस क्षेत्र में समाधान इस के कारण लेना है। इस प्रकार, वितरित प्रोग्रामिंग नेटवर्क और संदेशों, समानता और वैश्विक जानकारी की कमी से निपटने के बारे में है।

समस्याओं के इर्द-गिर्द काम करने का सबसे आसान तरीका यह है कि किसी विशेष जानकारी के लिए एक एकल प्रसंस्करण तत्व को विशेष रूप से प्राधिकृत किया जाए। फिर अन्य तत्व या तो इसे हर बार वापस भेज सकते हैं, या जानकारी को कैश कर सकते हैं और आशा करते हैं कि यह पुराना नहीं है (क्योंकि वे बदलावों के बारे में नहीं बता सकते हैं)। यह क्लासिक क्लाइंट / सर्वर आर्किटेक्चर है।

इंटरनेट कंप्यूटिंग को कंप्यूटिंग वितरित किया जाता है, लेकिन यह नियंत्रित करने की क्षमता के बिना कि वितरित नोड्स में से अधिकांश वास्तव में क्या करते हैं।

क्या संसाधन के उपयोग के लिए सिंक्रनाइज़ करने के लिए कई समानांतर धागे वितरित कंप्यूटिंग के क्षेत्र में एक समस्या का गठन करते हैं?

वे एक संभावित समाधान का गठन करते हैं जो क्लाइंट / सर्वर मॉडल का निर्माण करते समय उपयोगी होता है, लेकिन संसाधन विवाद में संभावित नाटकीय वृद्धि की कीमत पर। रीड्स के लिए, यह बहुत बड़ी बात नहीं है (प्रदान करने के लिए पर्याप्त हार्डवेयर) लेकिन लिखते हैं कि यह वास्तव में एक बड़ी समस्या है।

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


6

क्या संसाधन के उपयोग के लिए सिंक्रनाइज़ करने के लिए कई समानांतर धागे वितरित कंप्यूटिंग के क्षेत्र में एक समस्या का गठन करते हैं?

वे करते हैं यदि वे धागे विभिन्न मशीनों पर चल रहे हों, या भले ही वे एक ही मशीन पर चल रहे हों, लेकिन विभिन्न प्रक्रियाओं में।


1
विभिन्न मशीनों पर चलने वाले धागे मूल रूप से म्यूटेक्स और सेमाफोर के पारंपरिक तरीके को सिंक्रनाइज़ नहीं किए जा सकते हैं।
जन हडेक

@JanHudec मुझे लगता है कि साक्षात्कारकर्ता के सवाल का बिंदु था। एटॉमिक टेस्ट-एंड-सेट या तुलना-और-स्वैप निर्देशों या साझा मेमोरी के बिना, वितरित कंप्यूटिंग को सिंक्रनाइज़ेशन के लिए मशीनों के बीच संदेश पर भरोसा करना पड़ता है। सौभाग्य से, ऐसे एल्गोरिदम हैं जो इसे पूरा करते हैं।
कालेब

मैं "सौभाग्य से" से सहमत नहीं हूँ। एल्गोरिदम जटिल हैं और गलत सहिष्णु नहीं हैं, इसलिए उन्हें टाला जाना चाहिए।
Jan Hudec

5

डिस्ट्रिब्यूटेड कंप्यूटिंग एक कंप्यूटिंग सिस्टम है, जिसमें विभिन्न कंप्यूटरों पर प्रोसेसिंग होती है (यानी वितरित सिस्टम पर)। व्यक्तिगत कार्यक्रम संचार चैनलों की एक श्रृंखला के माध्यम से एक दूसरे के साथ संवाद करते हैं। ये चैनल आमतौर पर नेटवर्क कनेक्शन (उदाहरण के लिए टीसीपी सॉकेट्स) हैं, लेकिन अक्सर अन्य संचार प्रोटोकॉल और उपकरणों (जैसे डिवाइसनेट, बीएसीनेट, एसईसीएस -2, मोडबस, आदि) या यहां तक ​​कि प्रोटोकॉल का उपयोग करते हैं जो एक विशिष्ट डिवाइस के लिए कस्टम हैं।

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

वितरित सिस्टम कई रूपों को लेते हैं और वर्तमान में कई अनुप्रयोगों में उपयोग किए जाते हैं। वेब अनुप्रयोग वितरित सिस्टम हैं। N-Tiered सिस्टम में आमतौर पर कम से कम N विभिन्न प्रोसेसर होते हैं (विभिन्न अनुप्रयोगों के साथ)। कई फैक्ट्री ऑटोमेशन सिस्टम में भी डिस्ट्रीब्यूटेड सिस्टम का इस्तेमाल किया जाता है।

लेख विकिपीडिया में वितरित अभिकलन पर पढ़ने लायक है।

बहु-थ्रेडेड अनुप्रयोग एक वितरित अनुप्रयोग का गठन करता है या नहीं, इसके बारे में सवाल के जवाब में - यदि थ्रेड एकल कंप्यूटर पर चल रहे हैं, तो सिस्टम वितरित नहीं है। इसे वितरित प्रणालियों में निहित कुछ समस्याओं को हल करना है, लेकिन उन सभी को नहीं।


3

सख्ती से "वितरित कंप्यूटिंग" बोलना एक समाधान है जिसमें एक से अधिक कंप्यूटरों पर एकल लेनदेन / अनुरोध / गणना को संसाधित करना शामिल है।

आप "डिस्ट्रीब्यूटेड सिस्टम्स" शब्द पर भी आएंगे, जो विंडोज़, यूनिक्स और अन्य छोटे सिस्टम सर्वर के लिए एक शब्द है, जो मूल रूप से केंद्रीय डेटा सेंटर के बाहर तैनात किया गया होगा। यद्यपि इन प्रणालियों के लिए इन दिनों डेटा सेंटर के अंदर तैनात किया जाना सामान्य है, लेकिन यह शब्द अटक गया है।


3

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

यद्यपि न तो म्यूटेक्स और न ही सेमाफोर का उल्लेख कागज में किया गया है, यह एक वितरित सॉफ्टवेयर प्रणाली के उचित इंजीनियरिंग में मूल्यवान अंतर्दृष्टि प्रदान करता है।

जैसे कि आपके साक्षात्कारकर्ता ने म्यूटेक्स और सेमाफोरस के बारे में क्यों पूछा, मैं @ कालेब से सहमत होगा:

वे करते हैं यदि वे धागे विभिन्न मशीनों पर चल रहे हों, या भले ही वे एक ही मशीन पर चल रहे हों, लेकिन विभिन्न प्रक्रियाओं में।

केवल एक चीज मैं जोड़ूंगा कि म्यूटेक्स और सेमाफोर निम्न स्तर की लॉकिंग प्राइमेट हैं जो आपको कई कंप्यूटिंग डिवाइसों में काम वितरित करने की अनुमति देते हैं, और उनका ऑपरेशन (आमतौर पर) आवेदन की सफलता के लिए महत्वपूर्ण है। जाहिर है, यह इस्तेमाल की जाने वाली भाषा और तकनीक पर निर्भर करता है। यदि आप Erlang या Scala का उपयोग कर रहे हैं, तो आप शायद पारंपरिक, लॉक-आधारित संगामिति के बजाय अभिनेता मॉडल-आधारित संगामिति का उपयोग करेंगे।


2

शब्द यह सब कहता है। आपको कुछ कंप्यूटिंग ऑपरेशन करना होगा और यदि आप इस कंप्यूटिंग के कुछ हिस्सों को वितरित कर सकते हैं जैसे कि प्रत्येक कंप्यूटिंग दूसरे कंप्यूटिंग के बावजूद काम करता है और तब जब सभी किए जाते हैं तो आप मुख्य कंप्यूटिंग का उत्तर पाने के लिए प्रत्येक कंप्यूटिंग के परिणाम को जोड़ते हैं। उदाहरण होगा: मैप-रिड्यूस


1

हमारे पास "वितरित सिस्टम" पर एक कोर्स था और जब मुझे परिभाषा बिल्कुल याद नहीं थी, तो यह निम्नलिखित था:

  1. संदेशों के माध्यम से संवाद करने वाले कई अलग-अलग नोड्स पर चल सकते हैं (मेमोरी साझा नहीं कर सकते)
  2. ऑब्जेक्ट्स को नोड्स के बीच माइग्रेट किया जा सकता है
  3. माइग्रेट होने पर ऑब्जेक्ट अपनी पहचान रखते हैं और माइग्रेट होने पर पारदर्शी रूप से संबोधित किए जा सकते हैं
  4. ऑब्जेक्ट उस नोड पर निर्भर नहीं करते हैं जिसने उन्हें बनाया है
  5. सिस्टम नोड्स को जोड़ने और हटाने का काम कर सकता है

(मेरा मानना ​​है कि कुछ और थे और मैं अंतिम बिंदु के बारे में निश्चित नहीं हूं)

अब पाठ्यक्रम में हमने सीखा कि वितरित लेनदेन और वितरित लॉक को कैसे लागू किया जाए। सबक यह है कि वितरित लॉक को मूल रूप से वितरित लेनदेन का उपयोग करके लागू किया जाता है, जो कि आप स्थानीय रूप से जो करते हैं, उसकी तुलना में आसपास का दूसरा तरीका है, और यह स्वाभाविक रूप से दोष सहिष्णु नहीं है, जो पहले स्थान पर वितरित प्रणाली होने के उद्देश्य को पराजित करता है।

संपादित करें: यह परिभाषा ऑपरेटिंग सिस्टम या डेटाबेस सिस्टम के संकीर्ण अर्थ में "वितरित सिस्टम" के लिए है और केवल क्लाइंट-सर्वर सिस्टम के विपरीत है। पहली स्थिति को संतुष्ट करने वाली कुछ चीज़ों को कुछ संदर्भों में वितरित किया जा सकता है।

संयोगवश, परिभाषा वितरित और पारंपरिक संस्करण नियंत्रण प्रणालियों के बीच के अंतर से मेल खाती है, जिनमें से सभी कम से कम क्लाइंट-सर्वर हैं और अक्सर प्रतिकृति भी होती हैं।


यह वितरित कंप्यूटिंग की एक विशेष शैली है। अन्य हैं, और केवल एक चीज जो वे वास्तव में साझा करते हैं वह पहला बिंदु है। संदेश महत्वपूर्ण है, अन्य ... इतना नहीं।
डोनल फैलो

1
@DonalFellows: खैर, यह वितरित प्रणाली है , ऑपरेटिंग या डेटाबेस सिस्टम की समझ में। वहां प्रवास और दोष-सहनशीलता उन्हें करने के लिए मुख्य बिंदु हैं। वितरित "कंप्यूटिंग" कुछ भी है जो कई नोड्स पर चलता है।
Jan Hudec

खैर, उस मामले में इसे किसी निर्णय पर आने के व्यवसाय को कवर करना चाहिए था। एक वितरित प्रणाली में यह कठिन है। (इसके अलावा, इस विषय पर मैंने जो भी शैक्षिक पत्र देखे हैं, उनमें से अधिकांश मान्य ग्राफ़ टोपोलॉजी के बारे में पूरी तरह से अवास्तविक धारणाएँ हैं, जो वैध लेकिन बेकार निष्कर्ष देते हैं।)
डोनल फैलो

@ डोनल फेलो: निश्चित रूप से पाठ्यक्रम ने निर्णय पर आने के व्यवसाय को कवर किया और सभी मध्यस्थता और विभाजित मस्तिष्क सामान (बहुत गहराई से नहीं, यह केवल परिचयात्मक-स्तर था)। लेकिन यह वितरित प्रणाली की संपत्ति को परिभाषित नहीं कर रहा है। यदि आप एक बनाना चाहते हैं तो यह केवल एक बाधा है जिसे आपको कूदना होगा।
जन हडेक

0

एंटरप्राइज़ कंप्यूटिंग के लिए "गैर-विपणन" शब्द की गणना की जाती है, जिसे आप वास्तविक जीवन में बहुत अधिक सुन सकते हैं। हालाँकि, दूसरों द्वारा बताए गए सामान्य विचार "आप काम करने के लिए एक से अधिक कंप्यूटर का उपयोग कर रहे हैं"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.