समवर्ती कंप्यूटिंग: Difference between revisions
No edit summary |
No edit summary |
||
(5 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{short description|Executing several computations during overlapping time periods}} | {{short description|Executing several computations during overlapping time periods}} | ||
समवर्ती [[कम्प्यूटिंग]] गणना का एक रूप है जिसमें कई गणनाएँ समवर्ती रूप में निष्पादित की जाती हैं जो अतिव्यापक अवधि के दौरान | समवर्ती [[कम्प्यूटिंग]] गणना का एक रूप है जिसमें कई गणनाएँ समवर्ती रूप में निष्पादित की जाती हैं जो अतिव्यापक अवधि के दौरान समवर्ती गणना की प्रारंभआत पहले की जाती है। | ||
समवर्ती कम्प्यूटिंग प्रणाली की एक संपत्ति है जो एक [[कंप्यूटर प्रोग्राम|कंप्यूटर कार्यक्रम]] या [[संगणक संजाल]] का भाग है जहां प्रत्येक प्रक्रिया के लिए एक अलग निष्पादन बिंदु का नियंत्रण होता है। एक समवर्ती प्रणाली वह है जहां एक कम्प्यूटिंग सभी संगणनाओं को पूरा होने की प्रतीक्षा किए बिना ही आगे बढ़ जाती है तथा<ref>''Operating System Concepts'' 9th edition, Abraham Silberschatz. "Chapter 4: Threads"</ref> समवर्ती गणना नियंत्रित [[मॉड्यूलर प्रोग्रामिंग|कार्यक्रम]] का रूप है इसके [[प्रोग्रामिंग प्रतिमान]] में एक समग्र अभिकलन तथा [[अपघटन (कंप्यूटर विज्ञान)|अपघटन कंप्यूटर विज्ञान]] गणनाओं में होता है जिसे समवर्ती रूप से निष्पादित किया जाता है। [[एडवर्ड डिजस्ट्रा]] तथा ब्रिन्च हेन्सन और सी.ए.आर. होरे ने कहा कि समवर्ती गणना के क्षेत्र में नियंत्रित कार्यक्रम भी सम्मिलित हैं।<ref>{{Cite book |url=https://link.springer.com/book/10.1007/978-1-4757-3472-0 |title=The Origin of Concurrent Programming |year=2002 |language=en |doi=10.1007/978-1-4757-3472-0|isbn=978-1-4419-2986-0 |s2cid=44909506 |editor-last1=Hansen |editor-first1=Per Brinch }}</ref> | |||
== परिचय == | == परिचय == | ||
{{See also| | {{See also|समानांतर कंप्यूटिंग}} | ||
समवर्ती गणना की अवधारणा [[समानांतर कंप्यूटिंग|गणना]] से संबंधित है | समवर्ती गणना की अवधारणा [[समानांतर कंप्यूटिंग|गणना]] से संबंधित है इसलिए यह अधिक भ्रमित होती है <ref name=waza>[[Rob Pike|Pike, Rob]] (2012-01-11). "Concurrency is not Parallelism". ''Waza conference'', 11 January 2012. Retrieved from http://talks.golang.org/2012/waza.slide (slides) and http://vimeo.com/49718712 (video).</ref><ref>{{cite web | ||
|url=https://wiki.haskell.org/Parallelism_vs._Concurrency | |url=https://wiki.haskell.org/Parallelism_vs._Concurrency | ||
|title=Parallelism vs. Concurrency | |title=Parallelism vs. Concurrency | ||
|work=Haskell Wiki | |work=Haskell Wiki | ||
}}</ref> जबकि दोनों को समान अवधि के साथ कई प्रक्रियाओं के रूप में दर्शाया गया | }}</ref> जबकि दोनों को समान अवधि के साथ कई प्रक्रियाओं के रूप में दर्शाया गया है समान्तर गणना के निष्पादन में एक भौतिक क्षण होता है उदाहरण के लिए एक बहु-प्रोसेसर मशीन केंद्रीय प्रसंस्करण इकाई में संगणना को गतिक लक्ष्य के साथ-एक [[मल्टी-कोर प्रोसेसर]] की गणना करना असंभव है लेकिन एकल प्रोसेसर किसी भी क्षण गणना कर सकता है {{efn|This is discounting parallelism internal to a processor core, such as pipelining or vectorized instructions. A one-core, one-processor ''machine'' may be capable of some parallelism, such as with a [[coprocessor]], but the processor alone is not.}} तथा इसके विपरीत समवर्ती गणना में प्रक्रिया का जीवनकाल अतिव्यापक होता है जिसकी आवश्यकता नहीं होती है इसका लक्ष्य बाहरी दुनिया की प्रक्रियाओं को नियंत्रित करना है जो समवर्ती गणना के रूप में दर्शाये गये हैं जैसे कि एक ही समय में सर्वर तक पहुंचने वाले कई क्लाइंट तथा कई समवर्ती गणना सॉफ्टवेयर से बनी संरचना प्रणाली को जटिलता से उपयोग कर सकते हैं भले ही कुछ भागों को समान्तर भाग में निष्पादित कर दिया जाए।<ref>{{cite book |last=Schneider |first=Fred B. |url=https://archive.org/details/onconcurrentprog0000schn |title=On Concurrent Programming |date=1997-05-06 |publisher=Springer |isbn=9780387949420 |url-access=registration}}</ref>{{rp|1}} समय-साझाकरण के टुकड़े के माध्यम से प्रत्येक प्रक्रिया के चरणों को अंतःस्थापित करके समवर्ती प्रक्रियाओं को एक कोर पर स्थित किया जा सकता है तथा एक समय में एक ही प्रक्रिया चल सकती है और यदि यह अपने समय को पूरा नहीं होने देती है तो इसे रोक दिया जाता है और दूसरी प्रक्रिया प्रारंभ कर दी जाती है तथा बाद में मूल प्रक्रिया प्रारंभ हो जाती है इस तरह कई प्रक्रियाएं एक ही क्षण में निष्पादन के माध्यम से होती हैं लेकिन उस क्षण में केवल एक प्रक्रिया को ही किया जा सकता है।{{citation needed|date=December 2016}}समवर्ती संगणनाओं को समानांतर में निष्पादित किया जा जाता है <ref name=waza/><ref name="benari2006">{{cite book|last=Ben-Ari|first=Mordechai|title=Principles of Concurrent and Distributed Programming|publisher=Addison-Wesley|year=2006|edition=2nd|isbn=978-0-321-31283-9}}</ref> जैसे प्रत्येक प्रक्रिया को एक अलग प्रोसेसर या एक नेटवर्क पर गणना करके समवर्ती प्रोग्रामिंग के लिए उपयुक्त नहीं किया जा सकता है और इसके विपरीत {{citation needed|date=December 2016}}जब एक समवर्ती प्रणाली में कार्यों को किया जाता है तो समय [[निर्धारण (कंप्यूटिंग)|निर्धारण]] गणना पर निर्भर करता है और कार्यों को हमेशा समवर्ती कम्प्यूटिंग की आवश्यकता नहीं होती है। उदाहरण टी1और टी2 हैं।{{citation needed|date=December 2016}} | ||
* टी1 को टी2 या इसके विपरीत होने से पहले और समाप्त किया जा सकता है। | * टी1 को टी2 या इसके विपरीत होने से पहले और समाप्त किया जा सकता है। | ||
* | * | ||
Line 17: | Line 17: | ||
* टी1 और टी2 को एक ही समय पर एक साथ स्थिर किया जा सकता है । | * टी1 और टी2 को एक ही समय पर एक साथ स्थिर किया जा सकता है । | ||
अनुक्रमिक शब्द समवर्ती और समानांतर दोनों के लिए एक विलोम के रूप में प्रयोग किया जाता है जब इन्हें स्पष्ट रूप से अलग किया जाता है | अनुक्रमिक शब्द समवर्ती और समानांतर दोनों के लिए एक विलोम के रूप में प्रयोग किया जाता है जब इन्हें स्पष्ट रूप से अलग किया जाता है जिन्हें समवर्ती अनुक्रमिक और समानांतर को विरोधी जोड़े के रूप में उपयोग किया जाता है।{{sfn|Patterson|Hennessy|2013|p=503}} इस कार्य को एक ही समय में किया जाता है बिना अंतपत्रण का कार्य तब तक प्रारंभ नहीं होता जब तक समाप्त कार्यों को क्रमिक रूप से निर्धारित न किया जाए [[Serializability|क्रमबद्धता]] ही संगमिति नियंत्रण को सरल करता है।{{citation needed|date=December 2016}} | ||
=== साझा संसाधनों तक पहुंचने का समन्वय करना === | === साझा संसाधनों तक पहुंचने का समन्वय करना === | ||
समवर्ती कार्यक्रमों की बनावट में मुख्य चुनौती समवर्ती नियंत्रण की है जो विभिन्न गणतीय निष्पादनों के बीच बातचीत या संचार का सही क्रम सुनिश्चित करता है तथा निष्पादन के बीच साझा किए गए संसाधनों तक पहुंच का समन्वय करना ही <ref name=benari2006/>संभावित समस्याओं में [[गतिरोध]], [[संसाधन भुखमरी|संसाधन और भुखमरी]] सम्मिलित करता है साझा संसाधन द्वारा दर्शाए गए चेकिंग खाते से निकासी करने के लिए | समवर्ती कार्यक्रमों की बनावट में मुख्य चुनौती समवर्ती नियंत्रण की है जो विभिन्न गणतीय निष्पादनों के बीच बातचीत या संचार का सही क्रम सुनिश्चित करता है तथा निष्पादन के बीच साझा किए गए संसाधनों तक पहुंच का समन्वय करना ही <ref name=benari2006/>संभावित समस्याओं में [[गतिरोध]], [[संसाधन भुखमरी|संसाधन और भुखमरी]] सम्मिलित करता है साझा संसाधन द्वारा दर्शाए गए चेकिंग खाते से निकासी करने के लिए निम्नलिखित विधि हैं। | ||
=== लाभ === | === लाभ === | ||
Line 27: | Line 27: | ||
* गुस्ताफसन के नियम के अनुसार कार्यक्रम में वृद्धि करना और एक समवर्ती कार्यक्रम के समानांतर निष्पादन गणतीय संख्या के अनुपात में आनुपातिक रूप से बढ़ने के लिए एक निश्चित समय में पूर्ण की गई संख्या को अनुमति देता है। | * गुस्ताफसन के नियम के अनुसार कार्यक्रम में वृद्धि करना और एक समवर्ती कार्यक्रम के समानांतर निष्पादन गणतीय संख्या के अनुपात में आनुपातिक रूप से बढ़ने के लिए एक निश्चित समय में पूर्ण की गई संख्या को अनुमति देता है। | ||
* इनपुट आउटपुट की उच्च प्रतिक्रियात्मकता में इनपुट या आउटपुट संचालन की प्रतीक्षा करते हैं तथा समवर्ती गणना उस समय की अनुमति देता है जो किसी अन्य कार्य के लिए उपयोग किए जाने की प्रतीक्षा में व्यस्त होता है। | * इनपुट आउटपुट की उच्च प्रतिक्रियात्मकता में इनपुट या आउटपुट संचालन की प्रतीक्षा करते हैं तथा समवर्ती गणना उस समय की अनुमति देता है जो किसी अन्य कार्य के लिए उपयोग किए जाने की प्रतीक्षा में व्यस्त होता है। | ||
* | * | ||
== मॉडल == | == मॉडल == | ||
1962 में कहा गया कि [[पेट्री नेट|पेट्री शुद्ध]] समवर्ती निष्पादन के नियमों को संहिताबद्ध करने का एक प्रारंभिक प्रयास था डेटाफ्लो सिद्धांत बाद में | 1962 में कहा गया कि [[पेट्री नेट|पेट्री शुद्ध]] समवर्ती निष्पादन के नियमों को संहिताबद्ध करने का एक प्रारंभिक प्रयास था डेटाफ्लो सिद्धांत बाद में बनाया गया था और डेटाफ्लो सिद्धांत के विचारों को भौतिक रूप से लागू करने के लिए [[डेटाफ्लो आर्किटेक्चर|डेटाफ्लो वास्तुकला]] बनाए गए थे 1970 के दशक के बाद में [[प्रक्रिया गणना]] [[संचार प्रणालियों की गणना]] और [[अनुक्रमिक प्रक्रियाओं का संचार करना|अनुक्रमिक प्रक्रियाओं का संचार करने]] की गणना विकसित की गई थी जिससे अंतःक्रियात्मक घटकों से बनी प्रणाली के बारे में बीजगणितीय तर्क को अनुमति दी जा सके पाई कैलकुलस ने डायनेमिक टोपोलॉजी के बारे में तर्क करने की क्षमता को जोड़ा गया। | ||
इनपुट आउटपुट स्वचालित रूप से 1987 में पेश किया गया था। | इनपुट आउटपुट स्वचालित रूप से 1987 में पेश किया गया था। | ||
Line 41: | Line 41: | ||
=== संगति मॉडल === | === संगति मॉडल === | ||
{{main| | {{main|संगति मॉडल}} | ||
समवर्ती गणना की भाषा और बहुगुणक कार्यक्रम में एक संगति मॉडल होना चाहिए जो संगत मॉडल नियमों को परिभाषित करता है कि कंप्यूटर डेटा संग्रहण पर संचालन कैसे होता है और परिणाम कैसे उत्पन्न होते हैं। | समवर्ती गणना की भाषा और बहुगुणक कार्यक्रम में एक संगति मॉडल होना चाहिए जो संगत मॉडल नियमों को परिभाषित करता है कि कंप्यूटर डेटा संग्रहण पर संचालन कैसे होता है और परिणाम कैसे उत्पन्न होते हैं। एक [[लेस्ली लामपोर्ट]] का [[अनुक्रमिक स्थिरता]] कार्यक्रम की संपत्ति है [[अनुक्रमिक स्थिरता|स्थिरता]] कार्यक्रम के समान परिणाम उत्पन्न करता है जो विशेष रूप से एक प्रोग्राम [[अनुक्रमिक स्थिरता|कार्यक्रम]] के समान है जैसे सभी प्रोसेसर के संचालन को कुछ अनुक्रमिक क्रम में स्थित किया गया था और प्रत्येक व्यक्तिगत प्रोसेसर के संचालन के इस क्रम में निर्दिष्ट किया गया है।<ref>{{cite journal|last=Lamport|first=Leslie|title=How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs|journal=IEEE Transactions on Computers|date=1 September 1979|volume=C-28|issue=9|pages=690–691|doi=10.1109/TC.1979.1675439|s2cid=5679366}}</ref> | ||
== कार्यान्वयन == | == कार्यान्वयन == | ||
समवर्ती कार्यक्रमों को लागू करने के लिए कई अलग-अलग तरीकों का उपयोग किया जाता है जो प्रत्येक गणितीय निष्पादन की [[प्रक्रिया (कंप्यूटर विज्ञान)|प्रक्रिया कंप्यूटर विज्ञान]] के रूप में लागू की जाती है गणितीय प्रक्रियाओं को धागे | समवर्ती कार्यक्रमों को लागू करने के लिए कई अलग-अलग तरीकों का उपयोग किया जाता है जो प्रत्येक गणितीय निष्पादन की [[प्रक्रिया (कंप्यूटर विज्ञान)|प्रक्रिया कंप्यूटर विज्ञान]] के रूप में लागू की जाती है गणितीय प्रक्रियाओं को धागे के रूप में एक संचालन प्रणाली के भीतर जोड़ते हैं। | ||
===बातचीत और संचार === | ===बातचीत और संचार === | ||
कुछ समवर्ती गणना प्रणालियों में समवर्ती घटकों के बीच संचार कार्यक्रम छिपा होता है जबकि इसे स्पष्ट रूप से नियंत्रित किया जाना चाहिए संचार को दो वर्गों में विभाजित किया जाता है। | कुछ समवर्ती गणना प्रणालियों में समवर्ती घटकों के बीच संचार कार्यक्रम छिपा होता है जबकि इसे स्पष्ट रूप से नियंत्रित किया जाना चाहिए संचार को दो वर्गों में विभाजित किया जाता है। | ||
साझा स्मृति संचार | साझा स्मृति संचार या [[साझा मेमोरी (इंटरप्रोसेस संचार)|साझा स्मृति]] स्थानों को [[जावा (प्रोग्रामिंग भाषा)|गणितीय भाषा]] और सामग्री को बदलकर संचार करते हैं तथा समवर्ती गणना की इस शैली को धागे के बीच समन्वय करने के लिए परिबंधन के कुछ रूपों जैसे [[आपसी बहिष्कार]] [[सेमाफोर (प्रोग्रामिंग)|सेमाफोर गणना]] या [[मॉनिटर (सिंक्रनाइज़ेशन)|मॉनिटर]] के उपयोग की आवश्यकता होती है एक कार्यक्रम जो इनमें से किसी को भी ठीक से लागू कर सकता है उसे [[थ्रेड सुरक्षा|धागा सुरक्षा]] कहा जाता है। | ||
[[संदेश देना]] सम्प्रेषण समवर्ती घटक संदेश अस्थायी [[एमपीआई खोलें|एमपीआई]] [[Erlang (प्रोग्रामिंग भाषा)|एरलांग गणितीय भाषा]] और [[ओकैम (प्रोग्रामिंग भाषा)|ओकैम गणितीय भाषा]] द्वारा संचार करते हैं। संदेशों का आदान-प्रदान समकालिक रूप से किया जा सकता है एक समकालिक मिलनसार शैली का उपयोग किया जाता है जिसमें प्रेषक संदेश प्राप्त होने तक एक क्षेत्र में रहता | [[संदेश देना]] सम्प्रेषण समवर्ती घटक संदेश अस्थायी [[एमपीआई खोलें|एमपीआई]] [[Erlang (प्रोग्रामिंग भाषा)|एरलांग गणितीय भाषा]] और [[ओकैम (प्रोग्रामिंग भाषा)|ओकैम गणितीय भाषा]] द्वारा संचार करते हैं। संदेशों का आदान-प्रदान समकालिक रूप से किया जा सकता है तथा एक समकालिक मिलनसार शैली का उपयोग किया जाता है जिसमें प्रेषक संदेश प्राप्त होने तक एक क्षेत्र में रहता है समकालिक संदेश पास करना विश्वसनीय या अविश्वसनीय हो सकता है तथा साझा-स्मृति संगमिति की तुलना में संदेश अस्थायी संगमिति के बारे में तर्क करना अधिक आसान होता है और इसे समवर्ती गणना का अधिक मजबूत रूप माना जाता है।{{Citation needed|date=May 2013}} संदेश अस्थायी प्रणाली को समझने और उसका विश्लेषण करने के लिए विभिन्न प्रकार के गणितीय सिद्धांत उपलब्ध कराये जाते हैं जिनमें [[अभिनेता मॉडल]] और विभिन्न प्रक्रिया गणना सम्मिलित हैं साझा स्मृति [[कैश सुसंगतता|सुसंगतता]] के साथ या उसके बिना संदेश अस्थायी [[सममित बहु प्रसंस्करण]] के माध्यम से कुशलतापूर्वक कार्यान्वित किया जा सकता है। | ||
साझा की गई स्मृति और संदेश पास करने वाली संगमिति में अलग-अलग विशेषताएँ होती हैं संदेश में अस्थायी प्रणाली की स्मृति में ओवरहेड और कार्य स्विचिंग ओवरहेड कम होता है लेकिन संदेश अस्थायी ओवरहेड प्रक्रिया कॉल के दौरान अधिक होता है ये अंतर अधिकतर अन्य प्रदर्शन कारकों से अभिभूत होते हैं। | साझा की गई स्मृति और संदेश पास करने वाली संगमिति में अलग-अलग विशेषताएँ होती हैं संदेश में अस्थायी प्रणाली की स्मृति में ओवरहेड और कार्य स्विचिंग ओवरहेड कम होता है लेकिन संदेश अस्थायी ओवरहेड प्रक्रिया कॉल के दौरान अधिक होता है ये अंतर अधिकतर अन्य प्रदर्शन कारकों से अभिभूत होते हैं। | ||
== इतिहास == | == इतिहास == | ||
19वीं और 20वीं सदी की | 19वीं और 20वीं सदी की आरंभ में रेलमार्ग और [[टेलीग्राफी]] पर की गयी तथा समवर्ती गणना विकसित हुई और कुछ शर्तें इसमें इस अवधि की हैं जैसे कि संकेत से प्रकट करना ये एक ही रेल प्रणाली पर कई ट्रेनों को संभालने के तौरतरीके के एक सेट पर कई प्रसारणों को कैसे संभालना है जैसे समय-विभाजन बहुसंकेतन 1870 के दशक के रूप में है। | ||
समवर्ती प्रारूप का अकादमिक अध्ययन 1960 के दशक में | समवर्ती प्रारूप का अकादमिक अध्ययन 1960 के दशक में प्रारंभ हुआ था समवर्ती कम्प्यूटिंग की पहचान करने तथा पेपर हल करने का यह पहला क्षेत्र था।<ref>{{Citation | url=http://www.podc.org/influential/2002.html | title=PODC Influential Paper Award: 2002 | work=ACM Symposium on Principles of Distributed Computing | access-date=2009-08-24}}</ref> | ||
Line 72: | Line 64: | ||
संगणना व्यापक है जिसमें एक चिप निम्न-स्तरीयर हार्डवेयर से लेकर विश्वव्यापी नेटवर्क तक होती है। उदाहरण - | संगणना व्यापक है जिसमें एक चिप निम्न-स्तरीयर हार्डवेयर से लेकर विश्वव्यापी नेटवर्क तक होती है। उदाहरण - | ||
गणितीय भाषा स्तर पर। | गणितीय भाषा स्तर पर। | ||
* [[चैनल (प्रोग्रामिंग)|गणितीय चैनल।]] | * [[चैनल (प्रोग्रामिंग)|गणितीय चैनल।]] | ||
* [[Coroutine|कॉरटीन।]] | * [[Coroutine|कॉरटीन।]] | ||
Line 87: | Line 80: | ||
=={{anchor|Concurrent programming languages|Languages supporting concurrent programming}}समवर्ती गणना का समर्थन करने वाली भाषाएं == | =={{anchor|Concurrent programming languages|Languages supporting concurrent programming}}समवर्ती गणना का समर्थन करने वाली भाषाएं == | ||
<!-- This section is linked from [[occam (programming language)]] and [[COPL]] --> | <!-- This section is linked from [[occam (programming language)]] and [[COPL]] --> | ||
[[समवर्ती प्रोग्रामिंग भाषाओं की सूची|समवर्ती गणना भाषाओं की सूची]] गणितीय भाषाएं हैं जो समवर्ती के लिए भाषा निर्माण का उपयोग करती हैं। इन निर्माणों में थ्रेड मल्टी-थ्रेडिंग वितरित गणना के लिए समर्थन [[संदेश पासिंग प्रोग्रामिंग|संदेश अस्थायी गणितीय]] [[बंटवारे]] या भविष्य और वादे में सम्मिलित हो सकते हैं। ऐसी भाषाओं को कभी-कभी समवर्ती-उन्मुख भाषाओं या संगमिति-उन्मुख प्रोग्रामिंग भाषाओं सीओपीएल के रूप में वर्णित किया जाता है।<ref name="armstrong2003">{{cite web|title=Making reliable distributed systems in the presence of software errors|last1=Armstrong|first1=Joe|year=2003|url=http://www.diva-portal.org/smash/get/diva2:9492/FULLTEXT01.pdf}}</ref>आज सबसे अधिक उपयोग की जाने वाली गणितीय भाषा के लिए विशिष्ट हैं जावा सी शार्प मॉनिटर द्वारा प्रदान की गई लॉकिंग के साथ ये दोनों भाषाएँ मौलिक रूप से एक साझा-स्मृति समवर्ती मॉडल का उपयोग करती हैं अंतर्निहित साझा-स्मृति मॉडल के शीर्ष पर लागू किए जा सकते हैं और उन भाषाओं में से जो एक संदेश-संचारी संगमिति मॉडल का उपयोग करती हैं एरलांग वर्तमान में उद्योग में सबसे अधिक व्यापक रूप से उपयोग की जाती है। | [[समवर्ती प्रोग्रामिंग भाषाओं की सूची|समवर्ती गणना भाषाओं की सूची]] गणितीय भाषाएं हैं जो समवर्ती के लिए भाषा निर्माण का उपयोग करती हैं। इन निर्माणों में थ्रेड मल्टी-थ्रेडिंग वितरित गणना के लिए समर्थन [[संदेश पासिंग प्रोग्रामिंग|संदेश अस्थायी गणितीय]] [[बंटवारे]] या भविष्य और वादे में सम्मिलित हो सकते हैं। ऐसी भाषाओं को कभी-कभी समवर्ती-उन्मुख भाषाओं या संगमिति-उन्मुख प्रोग्रामिंग भाषाओं सीओपीएल के रूप में वर्णित किया जाता है।<ref name="armstrong2003">{{cite web|title=Making reliable distributed systems in the presence of software errors|last1=Armstrong|first1=Joe|year=2003|url=http://www.diva-portal.org/smash/get/diva2:9492/FULLTEXT01.pdf}}</ref>आज सबसे अधिक उपयोग की जाने वाली गणितीय भाषा के लिए विशिष्ट हैं जावा सी शार्प मॉनिटर द्वारा प्रदान की गई लॉकिंग के साथ ये दोनों भाषाएँ मौलिक रूप से एक साझा-स्मृति समवर्ती मॉडल का उपयोग करती हैं अंतर्निहित साझा-स्मृति मॉडल के शीर्ष पर लागू किए जा सकते हैं और उन भाषाओं में से जो एक संदेश-संचारी संगमिति मॉडल का उपयोग करती हैं एरलांग वर्तमान में उद्योग में सबसे अधिक व्यापक रूप से उपयोग की जाती है। कई समवर्ती प्रोग्रामिंग भाषाओं को उत्पादन के उपयोग के लिए भाषाओं के लिए अनुसंधान भाषाओं के रूप में विकसित किया गया है जबकि पिछले 20 वर्षों में एरलैैंग [[लिम्बो (प्रोग्रामिंग भाषा)|लिम्बो भाषा]] और गणितीय भाषा जैसी भाषाओं ने कई बार औद्योगिक के रूप में देखा है। समवर्ती सुविधाओं का उपयोग करने या प्रदान करने वाली भाषाओं की गैर-विस्तृत सूची इस प्रकार है- | ||
* गणितीय भाषा का सामान्य उद्देश्य संदेश भेजने और मॉनिटर आधारित संगमिति के लिए मूल समर्थन का प्रयोग करना। | * गणितीय भाषा का सामान्य उद्देश्य संदेश भेजने और मॉनिटर आधारित संगमिति के लिए मूल समर्थन का प्रयोग करना। | ||
* एलएएफ समवर्ती थ्रेड्स और संदेश पासिंग के साथ, [[बेल लैब्स से प्लान 9]] के | * एलएएफ समवर्ती थ्रेड्स और संदेश पासिंग के साथ, [[बेल लैब्स से प्लान 9]] के आरंभी संस्करणों में प्रणाली [[सिस्टम प्रोग्रामिंग भाषा|गणितीय भाषा]] के लिए। | ||
* एएलएस मानक एमएल का विस्तार भविष्य के माध्यम से कंसीडर के लिए समर्थन जोड़ता है। | * एएलएस मानक एमएल का विस्तार भविष्य के माध्यम से कंसीडर के लिए समर्थन जोड़ता है। | ||
* [[Ateji PX|पीएक्स]] पाई गणना से प्रेरित समानांतर प्रिमिटिव के साथ जावा भाषा का विस्तार। | * [[Ateji PX|पीएक्स]] पाई गणना से प्रेरित समानांतर प्रिमिटिव के साथ जावा भाषा का विस्तार। | ||
Line 108: | Line 101: | ||
* [[ई (प्रोग्रामिंग भाषा)|ई गणितीय भाषा]] डेडलॉक्स को रोकने के लिए वादों का उपयोग करता है। | * [[ई (प्रोग्रामिंग भाषा)|ई गणितीय भाषा]] डेडलॉक्स को रोकने के लिए वादों का उपयोग करता है। | ||
* [[ECMAScript|ईसीएमए लिखी कहानी]] समकालिक संचालन के लिए वादों का उपयोग करता है। | * [[ECMAScript|ईसीएमए लिखी कहानी]] समकालिक संचालन के लिए वादों का उपयोग करता है। | ||
* [[एफिल (प्रोग्रामिंग भाषा)|एफिल | * [[एफिल (प्रोग्रामिंग भाषा)|एफिल भाषा]] अनुबंध द्वारा बनावट की अवधारणाओं के आधार पर अपने [[स्कूप (सॉफ्टवेयर)]] तंत्र के माध्यम । | ||
* इलीक्सिर भाषा निर्देशांक और काल्पनिक मेटा-भाषा जागरूक भाषा | * इलीक्सिर भाषा निर्देशांक और काल्पनिक मेटा-भाषा जागरूक भाषा प्रक्रिया वीएम पर चल रही है। | ||
* एरलांग भाषा बिना किसी साझा किए समकालिक संदेश का उपयोग करता है। | * एरलांग भाषा बिना किसी साझा किए समकालिक संदेश का उपयोग करता है। | ||
* एफयूटीएस भाषा इशारा स्वरूप के लिए वास्तविक समय [[OpenMP|खुलाएमपी]] या एक विशिष्ट शेड्यूलर के माध्यम से स्वचालित समानांतरण प्रदान करता है। | * एफयूटीएस भाषा इशारा स्वरूप के लिए वास्तविक समय [[OpenMP|खुलाएमपी]] या एक विशिष्ट शेड्यूलर के माध्यम से स्वचालित समानांतरण प्रदान करता है। | ||
Line 119: | Line 112: | ||
* [[जानूस (समवर्ती बाधा प्रोग्रामिंग भाषा)|जानूस समवर्ती बाधा भाषा]] तार्किक चर बैग चैनलों के लिए अलग-अलग पूछने वाले और बतानेे वाले विशुद्ध रूप से घोषणात्मक है। | * [[जानूस (समवर्ती बाधा प्रोग्रामिंग भाषा)|जानूस समवर्ती बाधा भाषा]] तार्किक चर बैग चैनलों के लिए अलग-अलग पूछने वाले और बतानेे वाले विशुद्ध रूप से घोषणात्मक है। | ||
* | * | ||
* [[जूलिया (प्रोग्रामिंग भाषा)|जूलिया गणितीय भाषा]] समवर्ती प्रोग्रामिंग कार्य, एएसऑवाईएनसी प्रतीक्षा | * [[जूलिया (प्रोग्रामिंग भाषा)|जूलिया गणितीय भाषा]] समवर्ती प्रोग्रामिंग कार्य, एएसऑवाईएनसी प्रतीक्षा चैनल है।<ref>https://juliacon.talkfunnel.com/2015/21-concurrent-and-parallel-programming-in-julia Concurrent and Parallel programming in Julia</ref> | ||
* [[जावास्क्रिप्ट]] [[वेब कार्यकर्ता]] के माध्यम से एक ब्राउज़र वातावरण में भविष्य और | * [[जावास्क्रिप्ट]] [[वेब कार्यकर्ता]] के माध्यम से एक ब्राउज़र वातावरण में भविष्य और कॉलबैक कंप्यूटर प्रोग्रामिंग है। | ||
* [[JoCaml|जेओकॉलम]] समवर्ती और वितरित चैनल आधारित ओकॉलम का विस्तार प्रक्रियाओं के जोड़-कलन को लागू करता है। | * [[JoCaml|जेओकॉलम]] समवर्ती और वितरित चैनल आधारित ओकॉलम का विस्तार प्रक्रियाओं के जोड़-कलन को लागू करता है। | ||
* [[जावा से जुड़ें]] समवर्ती जावा गणितीय भाषा पर आधारित। | * [[जावा से जुड़ें]] समवर्ती जावा गणितीय भाषा पर आधारित। | ||
* [[जूल (प्रोग्रामिंग भाषा)|जूल गणितीय भाषा]] डेटा प्रवाह पर आधारित संदेश पास करके संचार करता है। | * [[जूल (प्रोग्रामिंग भाषा)|जूल गणितीय भाषा]] डेटा प्रवाह पर आधारित संदेश पास करके संचार करता है। | ||
* [[जॉयस (प्रोग्रामिंग भाषा)|जॉयस गणितीय भाषा]] समवर्ती शिक्षण समवर्ती पास्कल पर निर्मित पेर ब्रिंक हैनसेन द्वारा अनुक्रमिक प्रक्रियाओं के संचार | * [[जॉयस (प्रोग्रामिंग भाषा)|जॉयस गणितीय भाषा]] समवर्ती शिक्षण समवर्ती पास्कल पर निर्मित पेर ब्रिंक हैनसेन द्वारा अनुक्रमिक प्रक्रियाओं के संचार है। | ||
* [[LabVIEW|प्रयोगशाला]] ग्राफिकल डेटा प्रवाह फ़ंक्शन एक ग्राफ में नहीं होते हैं डेटा नोड्स के बीच तार होते हैं वस्तु-उन्मुख भाषा सम्मिलित है। | * [[LabVIEW|प्रयोगशाला]] ग्राफिकल डेटा प्रवाह फ़ंक्शन एक ग्राफ में नहीं होते हैं डेटा नोड्स के बीच तार होते हैं वस्तु-उन्मुख भाषा सम्मिलित है। | ||
* लिंबो गणितीय भाषा [[इन्फर्नो (ऑपरेटिंग सिस्टम)|इन्फर्नो]] में प्रणाली के लिए एलएफसे संबंधित है। | * लिंबो गणितीय भाषा [[इन्फर्नो (ऑपरेटिंग सिस्टम)|इन्फर्नो]] में प्रणाली के लिए एलएफसे संबंधित है। | ||
* [[मल्टीलिस्प]] स्कीम सत्यापन को समानता का समर्थन करने के लिए विस्तारित किया | * [[मल्टीलिस्प]] स्कीम सत्यापन को समानता का समर्थन करने के लिए विस्तारित किया गया है। | ||
* [[मॉड्यूल-2]] गणितीय प्रणाली के लिए एन विर्थ द्वारा पास्कल के उत्तराधिकारी के रूप में कोरआउटिन के लिए मूल समर्थन किया गया है। | * [[मॉड्यूल-2]] गणितीय प्रणाली के लिए एन विर्थ द्वारा पास्कल के उत्तराधिकारी के रूप में कोरआउटिन के लिए मूल समर्थन किया गया है। | ||
* [[मॉड्यूल -3]] अल्गोल परिवार का आधुनिक सदस्य जिसके पास धागे सत्यापन लिए व्यापक समर्थन है। | * [[मॉड्यूल -3]] अल्गोल परिवार का आधुनिक सदस्य जिसके पास धागे सत्यापन लिए व्यापक समर्थन है। | ||
Line 152: | Line 145: | ||
* | * | ||
* [[TNSDL|एनएसडीएल]] दूरसंचार आदान-प्रदान विकसित करने के लिए समकालिक अस्थायी संदेश का उपयोग करता है। | * [[TNSDL|एनएसडीएल]] दूरसंचार आदान-प्रदान विकसित करने के लिए समकालिक अस्थायी संदेश का उपयोग करता है। | ||
* वीएचएसआईसी हार्डवेयर विवरण भाषा [[वीएचडीएल]] आई | * वीएचएसआईसी हार्डवेयर विवरण भाषा [[वीएचडीएल]] आई एसटीडी। | ||
* एक्स सी भाषा [[XMOS|एक्स मॉस]] द्वारा विकसित भाषा का संगमिति-विस्तारित उपसमुच्चय क्रमिक प्रक्रियाओं के संचार पर आधारित कार्यक्रम अंतर्निहित है। | * एक्स सी भाषा [[XMOS|एक्स मॉस]] द्वारा विकसित भाषा का संगमिति-विस्तारित उपसमुच्चय क्रमिक प्रक्रियाओं के संचार पर आधारित कार्यक्रम अंतर्निहित है। | ||
== यह भी देखें == | == यह भी देखें == | ||
Line 194: | Line 185: | ||
*{{Commons category-inline|Concurrent programming}} | *{{Commons category-inline|Concurrent programming}} | ||
*[https://web.archive.org/web/20060128114620/http://vl.fmnet.info/concurrent/ Concurrent Systems Virtual Library] | *[https://web.archive.org/web/20060128114620/http://vl.fmnet.info/concurrent/ Concurrent Systems Virtual Library] | ||
[[Category:Machine Translated Page]] | |||
[[Category:All articles with unsourced statements]] | |||
[[Category:Articles with hatnote templates targeting a nonexistent page]] | |||
[[Category: | [[Category:Articles with unsourced statements from December 2016]] | ||
[[Category:Articles with unsourced statements from May 2013]] | |||
[[Category:CS1 English-language sources (en)]] | |||
[[Category: | |||
[[Category:Created On 17/02/2023]] | [[Category:Created On 17/02/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:ऑपरेटिंग सिस्टम प्रौद्योगिकी]] | |||
[[Category:समवर्ती कंप्यूटिंग| समवर्ती कंप्यूटिंग ]] |
Latest revision as of 10:13, 15 March 2023
समवर्ती कम्प्यूटिंग गणना का एक रूप है जिसमें कई गणनाएँ समवर्ती रूप में निष्पादित की जाती हैं जो अतिव्यापक अवधि के दौरान समवर्ती गणना की प्रारंभआत पहले की जाती है।
समवर्ती कम्प्यूटिंग प्रणाली की एक संपत्ति है जो एक कंप्यूटर कार्यक्रम या संगणक संजाल का भाग है जहां प्रत्येक प्रक्रिया के लिए एक अलग निष्पादन बिंदु का नियंत्रण होता है। एक समवर्ती प्रणाली वह है जहां एक कम्प्यूटिंग सभी संगणनाओं को पूरा होने की प्रतीक्षा किए बिना ही आगे बढ़ जाती है तथा[1] समवर्ती गणना नियंत्रित कार्यक्रम का रूप है इसके प्रोग्रामिंग प्रतिमान में एक समग्र अभिकलन तथा अपघटन कंप्यूटर विज्ञान गणनाओं में होता है जिसे समवर्ती रूप से निष्पादित किया जाता है। एडवर्ड डिजस्ट्रा तथा ब्रिन्च हेन्सन और सी.ए.आर. होरे ने कहा कि समवर्ती गणना के क्षेत्र में नियंत्रित कार्यक्रम भी सम्मिलित हैं।[2]
परिचय
समवर्ती गणना की अवधारणा गणना से संबंधित है इसलिए यह अधिक भ्रमित होती है [3][4] जबकि दोनों को समान अवधि के साथ कई प्रक्रियाओं के रूप में दर्शाया गया है समान्तर गणना के निष्पादन में एक भौतिक क्षण होता है उदाहरण के लिए एक बहु-प्रोसेसर मशीन केंद्रीय प्रसंस्करण इकाई में संगणना को गतिक लक्ष्य के साथ-एक मल्टी-कोर प्रोसेसर की गणना करना असंभव है लेकिन एकल प्रोसेसर किसी भी क्षण गणना कर सकता है [lower-alpha 1] तथा इसके विपरीत समवर्ती गणना में प्रक्रिया का जीवनकाल अतिव्यापक होता है जिसकी आवश्यकता नहीं होती है इसका लक्ष्य बाहरी दुनिया की प्रक्रियाओं को नियंत्रित करना है जो समवर्ती गणना के रूप में दर्शाये गये हैं जैसे कि एक ही समय में सर्वर तक पहुंचने वाले कई क्लाइंट तथा कई समवर्ती गणना सॉफ्टवेयर से बनी संरचना प्रणाली को जटिलता से उपयोग कर सकते हैं भले ही कुछ भागों को समान्तर भाग में निष्पादित कर दिया जाए।[5]: 1 समय-साझाकरण के टुकड़े के माध्यम से प्रत्येक प्रक्रिया के चरणों को अंतःस्थापित करके समवर्ती प्रक्रियाओं को एक कोर पर स्थित किया जा सकता है तथा एक समय में एक ही प्रक्रिया चल सकती है और यदि यह अपने समय को पूरा नहीं होने देती है तो इसे रोक दिया जाता है और दूसरी प्रक्रिया प्रारंभ कर दी जाती है तथा बाद में मूल प्रक्रिया प्रारंभ हो जाती है इस तरह कई प्रक्रियाएं एक ही क्षण में निष्पादन के माध्यम से होती हैं लेकिन उस क्षण में केवल एक प्रक्रिया को ही किया जा सकता है।[citation needed]समवर्ती संगणनाओं को समानांतर में निष्पादित किया जा जाता है [3][6] जैसे प्रत्येक प्रक्रिया को एक अलग प्रोसेसर या एक नेटवर्क पर गणना करके समवर्ती प्रोग्रामिंग के लिए उपयुक्त नहीं किया जा सकता है और इसके विपरीत[citation needed]जब एक समवर्ती प्रणाली में कार्यों को किया जाता है तो समय निर्धारण गणना पर निर्भर करता है और कार्यों को हमेशा समवर्ती कम्प्यूटिंग की आवश्यकता नहीं होती है। उदाहरण टी1और टी2 हैं।[citation needed]
- टी1 को टी2 या इसके विपरीत होने से पहले और समाप्त किया जा सकता है।
- टी1 और टी2 को वैकल्पिक रूप से स्थित किया जा सकता है।
- टी1 और टी2 को एक ही समय पर एक साथ स्थिर किया जा सकता है ।
अनुक्रमिक शब्द समवर्ती और समानांतर दोनों के लिए एक विलोम के रूप में प्रयोग किया जाता है जब इन्हें स्पष्ट रूप से अलग किया जाता है जिन्हें समवर्ती अनुक्रमिक और समानांतर को विरोधी जोड़े के रूप में उपयोग किया जाता है।[7] इस कार्य को एक ही समय में किया जाता है बिना अंतपत्रण का कार्य तब तक प्रारंभ नहीं होता जब तक समाप्त कार्यों को क्रमिक रूप से निर्धारित न किया जाए क्रमबद्धता ही संगमिति नियंत्रण को सरल करता है।[citation needed]
साझा संसाधनों तक पहुंचने का समन्वय करना
समवर्ती कार्यक्रमों की बनावट में मुख्य चुनौती समवर्ती नियंत्रण की है जो विभिन्न गणतीय निष्पादनों के बीच बातचीत या संचार का सही क्रम सुनिश्चित करता है तथा निष्पादन के बीच साझा किए गए संसाधनों तक पहुंच का समन्वय करना ही [6]संभावित समस्याओं में गतिरोध, संसाधन और भुखमरी सम्मिलित करता है साझा संसाधन द्वारा दर्शाए गए चेकिंग खाते से निकासी करने के लिए निम्नलिखित विधि हैं।
लाभ
समवर्ती गणना के निम्नलिखित लाभ हैं-
- गुस्ताफसन के नियम के अनुसार कार्यक्रम में वृद्धि करना और एक समवर्ती कार्यक्रम के समानांतर निष्पादन गणतीय संख्या के अनुपात में आनुपातिक रूप से बढ़ने के लिए एक निश्चित समय में पूर्ण की गई संख्या को अनुमति देता है।
- इनपुट आउटपुट की उच्च प्रतिक्रियात्मकता में इनपुट या आउटपुट संचालन की प्रतीक्षा करते हैं तथा समवर्ती गणना उस समय की अनुमति देता है जो किसी अन्य कार्य के लिए उपयोग किए जाने की प्रतीक्षा में व्यस्त होता है।
मॉडल
1962 में कहा गया कि पेट्री शुद्ध समवर्ती निष्पादन के नियमों को संहिताबद्ध करने का एक प्रारंभिक प्रयास था डेटाफ्लो सिद्धांत बाद में बनाया गया था और डेटाफ्लो सिद्धांत के विचारों को भौतिक रूप से लागू करने के लिए डेटाफ्लो वास्तुकला बनाए गए थे 1970 के दशक के बाद में प्रक्रिया गणना संचार प्रणालियों की गणना और अनुक्रमिक प्रक्रियाओं का संचार करने की गणना विकसित की गई थी जिससे अंतःक्रियात्मक घटकों से बनी प्रणाली के बारे में बीजगणितीय तर्क को अनुमति दी जा सके पाई कैलकुलस ने डायनेमिक टोपोलॉजी के बारे में तर्क करने की क्षमता को जोड़ा गया।
इनपुट आउटपुट स्वचालित रूप से 1987 में पेश किया गया था।
समवर्ती प्रणालियों के व्यवहार का वर्णन करने के लिए लामपोर्ट के क्रियाओं का अस्थायी तर्क टीएलए और गणितीय मॉडल जैसे ट्रेस सिद्धांत और अभिनेता मॉडल सिद्धांत जैसे तर्क भी विकसित किए गए हैं।
सॉफ्टवेयर लेनदेन स्मृति डेटाबेस प्रबंधन प्रणाली से परमाणु प्रतिबद्ध की अवधारणा को उधार लेती है और उन्हें स्मृति अनुलेख पर लागू करती है।
संगति मॉडल
समवर्ती गणना की भाषा और बहुगुणक कार्यक्रम में एक संगति मॉडल होना चाहिए जो संगत मॉडल नियमों को परिभाषित करता है कि कंप्यूटर डेटा संग्रहण पर संचालन कैसे होता है और परिणाम कैसे उत्पन्न होते हैं। एक लेस्ली लामपोर्ट का अनुक्रमिक स्थिरता कार्यक्रम की संपत्ति है स्थिरता कार्यक्रम के समान परिणाम उत्पन्न करता है जो विशेष रूप से एक प्रोग्राम कार्यक्रम के समान है जैसे सभी प्रोसेसर के संचालन को कुछ अनुक्रमिक क्रम में स्थित किया गया था और प्रत्येक व्यक्तिगत प्रोसेसर के संचालन के इस क्रम में निर्दिष्ट किया गया है।[8]
कार्यान्वयन
समवर्ती कार्यक्रमों को लागू करने के लिए कई अलग-अलग तरीकों का उपयोग किया जाता है जो प्रत्येक गणितीय निष्पादन की प्रक्रिया कंप्यूटर विज्ञान के रूप में लागू की जाती है गणितीय प्रक्रियाओं को धागे के रूप में एक संचालन प्रणाली के भीतर जोड़ते हैं।
बातचीत और संचार
कुछ समवर्ती गणना प्रणालियों में समवर्ती घटकों के बीच संचार कार्यक्रम छिपा होता है जबकि इसे स्पष्ट रूप से नियंत्रित किया जाना चाहिए संचार को दो वर्गों में विभाजित किया जाता है।
साझा स्मृति संचार या साझा स्मृति स्थानों को गणितीय भाषा और सामग्री को बदलकर संचार करते हैं तथा समवर्ती गणना की इस शैली को धागे के बीच समन्वय करने के लिए परिबंधन के कुछ रूपों जैसे आपसी बहिष्कार सेमाफोर गणना या मॉनिटर के उपयोग की आवश्यकता होती है एक कार्यक्रम जो इनमें से किसी को भी ठीक से लागू कर सकता है उसे धागा सुरक्षा कहा जाता है।
संदेश देना सम्प्रेषण समवर्ती घटक संदेश अस्थायी एमपीआई एरलांग गणितीय भाषा और ओकैम गणितीय भाषा द्वारा संचार करते हैं। संदेशों का आदान-प्रदान समकालिक रूप से किया जा सकता है तथा एक समकालिक मिलनसार शैली का उपयोग किया जाता है जिसमें प्रेषक संदेश प्राप्त होने तक एक क्षेत्र में रहता है समकालिक संदेश पास करना विश्वसनीय या अविश्वसनीय हो सकता है तथा साझा-स्मृति संगमिति की तुलना में संदेश अस्थायी संगमिति के बारे में तर्क करना अधिक आसान होता है और इसे समवर्ती गणना का अधिक मजबूत रूप माना जाता है।[citation needed] संदेश अस्थायी प्रणाली को समझने और उसका विश्लेषण करने के लिए विभिन्न प्रकार के गणितीय सिद्धांत उपलब्ध कराये जाते हैं जिनमें अभिनेता मॉडल और विभिन्न प्रक्रिया गणना सम्मिलित हैं साझा स्मृति सुसंगतता के साथ या उसके बिना संदेश अस्थायी सममित बहु प्रसंस्करण के माध्यम से कुशलतापूर्वक कार्यान्वित किया जा सकता है।
साझा की गई स्मृति और संदेश पास करने वाली संगमिति में अलग-अलग विशेषताएँ होती हैं संदेश में अस्थायी प्रणाली की स्मृति में ओवरहेड और कार्य स्विचिंग ओवरहेड कम होता है लेकिन संदेश अस्थायी ओवरहेड प्रक्रिया कॉल के दौरान अधिक होता है ये अंतर अधिकतर अन्य प्रदर्शन कारकों से अभिभूत होते हैं।
इतिहास
19वीं और 20वीं सदी की आरंभ में रेलमार्ग और टेलीग्राफी पर की गयी तथा समवर्ती गणना विकसित हुई और कुछ शर्तें इसमें इस अवधि की हैं जैसे कि संकेत से प्रकट करना ये एक ही रेल प्रणाली पर कई ट्रेनों को संभालने के तौरतरीके के एक सेट पर कई प्रसारणों को कैसे संभालना है जैसे समय-विभाजन बहुसंकेतन 1870 के दशक के रूप में है।
समवर्ती प्रारूप का अकादमिक अध्ययन 1960 के दशक में प्रारंभ हुआ था समवर्ती कम्प्यूटिंग की पहचान करने तथा पेपर हल करने का यह पहला क्षेत्र था।[9]
व्यापक
संगणना व्यापक है जिसमें एक चिप निम्न-स्तरीयर हार्डवेयर से लेकर विश्वव्यापी नेटवर्क तक होती है। उदाहरण -
गणितीय भाषा स्तर पर।
संचालन प्रणाली स्तर पर।
- कंप्यूटर मल्टीटास्किंग जिसमें सहकारी मल्टीटास्किंग और प्रीमेटिव मल्टीटास्किंग दोनों सम्मिलित हैं।
- समय साझा जिसनेे समवर्ती उपयोग के साथ नौकरियों के अनुक्रमिक बैच प्रसंस्करण को बदल दिया।
- गणितीय प्रक्रिया।
- गणितीय धागे।
नेटवर्क स्तर पर नेटवर्क प्रणाली आम तौर पर उनके स्वभाव के अनुरूप होते हैं क्योंकि उनमें अलग-अलग डिवाइस होती हैं।
समवर्ती गणना का समर्थन करने वाली भाषाएं
समवर्ती गणना भाषाओं की सूची गणितीय भाषाएं हैं जो समवर्ती के लिए भाषा निर्माण का उपयोग करती हैं। इन निर्माणों में थ्रेड मल्टी-थ्रेडिंग वितरित गणना के लिए समर्थन संदेश अस्थायी गणितीय बंटवारे या भविष्य और वादे में सम्मिलित हो सकते हैं। ऐसी भाषाओं को कभी-कभी समवर्ती-उन्मुख भाषाओं या संगमिति-उन्मुख प्रोग्रामिंग भाषाओं सीओपीएल के रूप में वर्णित किया जाता है।[10]आज सबसे अधिक उपयोग की जाने वाली गणितीय भाषा के लिए विशिष्ट हैं जावा सी शार्प मॉनिटर द्वारा प्रदान की गई लॉकिंग के साथ ये दोनों भाषाएँ मौलिक रूप से एक साझा-स्मृति समवर्ती मॉडल का उपयोग करती हैं अंतर्निहित साझा-स्मृति मॉडल के शीर्ष पर लागू किए जा सकते हैं और उन भाषाओं में से जो एक संदेश-संचारी संगमिति मॉडल का उपयोग करती हैं एरलांग वर्तमान में उद्योग में सबसे अधिक व्यापक रूप से उपयोग की जाती है। कई समवर्ती प्रोग्रामिंग भाषाओं को उत्पादन के उपयोग के लिए भाषाओं के लिए अनुसंधान भाषाओं के रूप में विकसित किया गया है जबकि पिछले 20 वर्षों में एरलैैंग लिम्बो भाषा और गणितीय भाषा जैसी भाषाओं ने कई बार औद्योगिक के रूप में देखा है। समवर्ती सुविधाओं का उपयोग करने या प्रदान करने वाली भाषाओं की गैर-विस्तृत सूची इस प्रकार है-
- गणितीय भाषा का सामान्य उद्देश्य संदेश भेजने और मॉनिटर आधारित संगमिति के लिए मूल समर्थन का प्रयोग करना।
- एलएएफ समवर्ती थ्रेड्स और संदेश पासिंग के साथ, बेल लैब्स से प्लान 9 के आरंभी संस्करणों में प्रणाली गणितीय भाषा के लिए।
- एएलएस मानक एमएल का विस्तार भविष्य के माध्यम से कंसीडर के लिए समर्थन जोड़ता है।
- पीएक्स पाई गणना से प्रेरित समानांतर प्रिमिटिव के साथ जावा भाषा का विस्तार।
- एक्सएम डोमेन विशिष्ट समवर्ती अभिनेता मॉडल पर आधारित सी-जैसे सिंटैक्स का उपयोग करके एनईटी की सामान्य भाषा।
- बीएमडीएफएम—बाइनरी मॉड्यूलर डाटाफ्लो मशीन।
- सी एसटीडी थ्रेड।
- सी ओमेगा अनुसंधान सी का विस्तार करता है समकालिक संचार का उपयोग करता है।
- सी तेज सी ताला उपज का उपयोग कर समवर्ती गणना का समर्थन करता है संसककरण 5.0 एसिंक्स और प्रतीक्षित संपर्क पेश किए जाते हैं।
- समवर्ती संग्रह (सीएनसी) डेटा और नियंत्रण के प्रवाह को स्पष्ट रूप से परिभाषित करके स्मृति मॉडल से स्वतंत्र अंतर्निहित समानांतरता प्राप्त करता है।
- समवर्ती हास्केल आलसी शुद्ध कार्यात्मक भाषा साझा स्मृति पर समवर्ती प्रक्रियाओं का संचालन करती है।
- समवर्ती एमएल मानक एमएल का समवर्ती विस्तार।
- समवर्ती पास्कल पर ब्रिन्च हेन्सन द्वारा।
- करी गणितीय भाषा।
- डी गणितीय भाषा बहु-प्रतिमान भाषा समवर्ती भाषा के लिए स्पष्ट समर्थन के साथ बहु-प्रतिमान प्रणाली गणितीय भाषा।
- ई गणितीय भाषा डेडलॉक्स को रोकने के लिए वादों का उपयोग करता है।
- ईसीएमए लिखी कहानी समकालिक संचालन के लिए वादों का उपयोग करता है।
- एफिल भाषा अनुबंध द्वारा बनावट की अवधारणाओं के आधार पर अपने स्कूप (सॉफ्टवेयर) तंत्र के माध्यम ।
- इलीक्सिर भाषा निर्देशांक और काल्पनिक मेटा-भाषा जागरूक भाषा प्रक्रिया वीएम पर चल रही है।
- एरलांग भाषा बिना किसी साझा किए समकालिक संदेश का उपयोग करता है।
- एफयूटीएस भाषा इशारा स्वरूप के लिए वास्तविक समय खुलाएमपी या एक विशिष्ट शेड्यूलर के माध्यम से स्वचालित समानांतरण प्रदान करता है।
- फोरट्रान-कोएरे फोरट्रान और डू समवर्ती फोरट्रान 2008 मानक का हिस्सा है।
- भाषा प्रणाली गणना के लिए एक समवर्ती मॉडल के साथ संचार अनुक्रमिक प्रक्रियाओं पर आधारित है।
- हास्केल गणितीय भाषा समवर्ती और समानांतर कार्यात्मक भाषा। [11]
- ह्यूम भाषा सीमित स्थान और समय के वातावरण के लिए कार्यात्मक समवर्ती जहां ऑटोमेटा प्रक्रियाओं को सिंक्रोनस चैनल पैटर्न और संदेश पासिंग द्वारा वर्णित किया जाता है।
- लो भाषा अभिनेता आधारित संगमिति।
- जानूस समवर्ती बाधा भाषा तार्किक चर बैग चैनलों के लिए अलग-अलग पूछने वाले और बतानेे वाले विशुद्ध रूप से घोषणात्मक है।
- जूलिया गणितीय भाषा समवर्ती प्रोग्रामिंग कार्य, एएसऑवाईएनसी प्रतीक्षा चैनल है।[12]
- जावास्क्रिप्ट वेब कार्यकर्ता के माध्यम से एक ब्राउज़र वातावरण में भविष्य और कॉलबैक कंप्यूटर प्रोग्रामिंग है।
- जेओकॉलम समवर्ती और वितरित चैनल आधारित ओकॉलम का विस्तार प्रक्रियाओं के जोड़-कलन को लागू करता है।
- जावा से जुड़ें समवर्ती जावा गणितीय भाषा पर आधारित।
- जूल गणितीय भाषा डेटा प्रवाह पर आधारित संदेश पास करके संचार करता है।
- जॉयस गणितीय भाषा समवर्ती शिक्षण समवर्ती पास्कल पर निर्मित पेर ब्रिंक हैनसेन द्वारा अनुक्रमिक प्रक्रियाओं के संचार है।
- प्रयोगशाला ग्राफिकल डेटा प्रवाह फ़ंक्शन एक ग्राफ में नहीं होते हैं डेटा नोड्स के बीच तार होते हैं वस्तु-उन्मुख भाषा सम्मिलित है।
- लिंबो गणितीय भाषा इन्फर्नो में प्रणाली के लिए एलएफसे संबंधित है।
- मल्टीलिस्प स्कीम सत्यापन को समानता का समर्थन करने के लिए विस्तारित किया गया है।
- मॉड्यूल-2 गणितीय प्रणाली के लिए एन विर्थ द्वारा पास्कल के उत्तराधिकारी के रूप में कोरआउटिन के लिए मूल समर्थन किया गया है।
- मॉड्यूल -3 अल्गोल परिवार का आधुनिक सदस्य जिसके पास धागे सत्यापन लिए व्यापक समर्थन है।
- न्यूज़क्वीक अनुसंधान के लिए प्रथम श्रेणी के मूल्यों के रूप में चैनलों के साथ एलेफ के पूर्ववर्ती भाषा है।
- ओकैम भाषा अनुक्रमिक प्रक्रियाओं सीएसपी को संप्रेषित करके अत्यधिक प्रभावित करना।
- ओकेएम पाइ ओकेएम का एक आधुनिक संस्करण जिसमें मिलनर के पाई कैलकुलस के विचार सम्मिलित हैं।
- ओआरजी भाषा भारी समवर्ती गैर नियतात्मक क्लेन बीजगणित पर आधारित है।
- ओज भाषा ओज-मोजार्ट-मल्टीपैराडाइम के अनुसार साझा-स्थिति और संदेश-अस्थायी संगमिति का समर्थन करता है।
- पैरासेल गणितीय भाषा तंत्र उन्मुख पैरेलल पॉइंटर्स से मुक्त दौड़ की स्थिति।
- चित्रात्मक भाषा अनिवार्य रूप से मिलनर के पाई-गणना का एक निष्पादन योग्य कार्यान्वयन है।
- राकू भाषा में दोष के रूप से और चैनलों के लिए कक्षाएं सम्मिलित हैं।[13]
- पायथन भाषा धागे पर आधारित समानता और प्रक्रिया-आधारित समानता का उपयोग करता है। [14]
- रेया गणितीय भाषा साझा-कुछ भी नहीं वस्तुओं के बीच अतुल्यकालिक संदेश का उपयोग करता है।
- लाल गणितीय भाषा लाल प्रणाली यह रिबोल पर आधारित होती है।
- जंग की भाषा प्रणाली प्रोग्रामिंग के साथ चाल के साथ संदेश अस्थायी रूप से उपयोग करते हुए साझा अपरिवर्तनीय स्मृति और साझा उत्परिवर्तनीय स्मृति का रूप होता है।[15]
- स्काला भाषा का सामान्य उद्देश्य सामान्य प्रोग्रामिंग यथार्थता को संक्षिप्त सुरुचिपूर्ण और सुरक्षित तरीके से व्यक्त करने के लिए बनावट का प्रयोग किया गया।
- अनुक्रम एल सामान्य कार्यात्मक की मुख्य बनावट उद्देश्य प्रोग्रामिंग में आसानी, संहिता, स्पष्टता-पठनीयता, और मल्टीकोर हार्डवेयर पर प्रदर्शन के लिए स्वत: समानांतरण और दौड़ की स्थिति से मुक्त होता है।
- एसआर भाषा-अनुसंधान के लिए उपयुक्त होती है।
- सुपर पास्कल समवर्ती शिक्षण के लिए प्रति ब्रिन्च हैनसेन द्वारा समवर्ती पास्कल और जॉयस पर निर्मित भाषा होती है।
- स्विफ्ट भाषा समकालिक और समानांतर संहिता को संचरित तरीके से लिखने के लिए अंतर्निहित भाषाओं का समर्थन करना पड़ता है। [16]
- यूनिकॉन भाषा अनुसंधान के लिए होती है।
- एनएसडीएल दूरसंचार आदान-प्रदान विकसित करने के लिए समकालिक अस्थायी संदेश का उपयोग करता है।
- वीएचएसआईसी हार्डवेयर विवरण भाषा वीएचडीएल आई एसटीडी।
- एक्स सी भाषा एक्स मॉस द्वारा विकसित भाषा का संगमिति-विस्तारित उपसमुच्चय क्रमिक प्रक्रियाओं के संचार पर आधारित कार्यक्रम अंतर्निहित है।
यह भी देखें
- समकालिक।
- स्थान।
- प्रवाह आधारित कार्यक्रम।
- जावा समवर्ती मानचित्र।
- टॉलेमी परियोजना।
- सुरक्षित गणित।
- संचरित संगमिति।
- लेनदेन प्रक्रिया।
टिप्पणियाँ
- ↑ This is discounting parallelism internal to a processor core, such as pipelining or vectorized instructions. A one-core, one-processor machine may be capable of some parallelism, such as with a coprocessor, but the processor alone is not.
संदर्भ
- ↑ Operating System Concepts 9th edition, Abraham Silberschatz. "Chapter 4: Threads"
- ↑ Hansen, Per Brinch, ed. (2002). The Origin of Concurrent Programming (in English). doi:10.1007/978-1-4757-3472-0. ISBN 978-1-4419-2986-0. S2CID 44909506.
- ↑ 3.0 3.1 Pike, Rob (2012-01-11). "Concurrency is not Parallelism". Waza conference, 11 January 2012. Retrieved from http://talks.golang.org/2012/waza.slide (slides) and http://vimeo.com/49718712 (video).
- ↑ "Parallelism vs. Concurrency". Haskell Wiki.
- ↑ Schneider, Fred B. (1997-05-06). On Concurrent Programming. Springer. ISBN 9780387949420.
- ↑ 6.0 6.1 Ben-Ari, Mordechai (2006). Principles of Concurrent and Distributed Programming (2nd ed.). Addison-Wesley. ISBN 978-0-321-31283-9.
- ↑ Patterson & Hennessy 2013, p. 503.
- ↑ Lamport, Leslie (1 September 1979). "How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs". IEEE Transactions on Computers. C-28 (9): 690–691. doi:10.1109/TC.1979.1675439. S2CID 5679366.
- ↑ "PODC Influential Paper Award: 2002", ACM Symposium on Principles of Distributed Computing, retrieved 2009-08-24
- ↑ Armstrong, Joe (2003). "Making reliable distributed systems in the presence of software errors" (PDF).
- ↑ Marlow, Simon (2013) Parallel and Concurrent Programming in Haskell : Techniques for Multicore and Multithreaded Programming ISBN 9781449335946
- ↑ https://juliacon.talkfunnel.com/2015/21-concurrent-and-parallel-programming-in-julia Concurrent and Parallel programming in Julia
- ↑ "संगामिति". docs.perl6.org (in English). Retrieved 2017-12-24.
- ↑ Documentation » The Python Standard Library » Concurrent Execution
- ↑ Blum, Ben (2012). "Typesafe Shared Mutable State". Retrieved 2012-11-14.
- ↑ "संगामिति" (in English). 2022. Retrieved 2022-12-15.
स्रोत
- Patterson, David A.; Hennessy, John L. (2013). कंप्यूटर संगठन और डिजाइन: हार्डवेयर/सॉफ्टवेयर इंटरफेस. The Morgan Kaufmann Series in Computer Architecture and Design (5 ed.). Morgan Kaufmann. ISBN 978-0-12407886-4.
अग्रिम पठन
- Dijkstra, E. W. (1965). "Solution of a problem in concurrent programming control". Communications of the ACM. 8 (9): 569. doi:10.1145/365559.365617. S2CID 19357737.
- Herlihy, Maurice (2008) [2008]. The Art of Multiprocessor Programming. Morgan Kaufmann. ISBN 978-0123705914.
- Downey, Allen B. (2005) [2005]. The Little Book of Semaphores (PDF). Green Tea Press. ISBN 978-1-4414-1868-5. Archived from the original (PDF) on 2016-03-04. Retrieved 2009-11-21.
- Filman, Robert E.; Daniel P. Friedman (1984). Coordinated Computing: Tools and Techniques for Distributed Software. New York: McGraw-Hill. p. 370. ISBN 978-0-07-022439-1.
- Leppäjärvi, Jouni (2008). A pragmatic, historically oriented survey on the universality of synchronization primitives (PDF). University of Oulu.
- Taubenfeld, Gadi (2006). Synchronization Algorithms and Concurrent Programming. Pearson / Prentice Hall. p. 433. ISBN 978-0-13-197259-9.
बाहरी संबंध
- Media related to Concurrent programming at Wikimedia Commons
- Concurrent Systems Virtual Library