समवर्ती कंप्यूटिंग: Difference between revisions
(→परिचय) |
No edit summary |
||
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> | ||
Revision as of 06:58, 2 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]संभावित समस्याओं में दौड़ की शर्त सॉफ्टवेयर गतिरोध और संसाधन भुखमरी सम्मिलित हैं। उदाहरण के लिए साझा संसाधन द्वारा दर्शाए गए चेकिंग खाते से निकासी करने के लिए निम्नलिखित एल्गोरिथम पर विचार करें ।
वाक्यविन्यास लैंग = सीपीपी लाइन हाइलाइट = 3,5 बूल निकासी
कल्पना करना बैलेंस=500
और दो समवर्ती धागे हैं साथ ही(300)
और (350)
यदि दोनों ऑपरेशनों में लाइन 3 को लाइन 5 से पहले निष्पादित किया जाता है तो दोनों ऑपरेशन उसे खोज लेंगे बैलेंस= एक साथ
का मूल्यांकन करता है और निकासी राशि घटाने के लिए निष्पादन करता है। जबकि दोनों प्रक्रियाएं अपनी निकासी करती हैं इसलिए निकाली गई कुल राशि मूल शेष राशि से अधिक होगी साझा संसाधनों के साथ इस तरह की समस्याएं संगमिति नियंत्रण या गैर-अवरुद्ध एल्गोरिदम के उपयोग से लाभान्वित होती हैं।
लाभ
समवर्ती गणना के लाभों में सम्मिलित हैं-
- कार्यक्रम थ्रूपुट में वृद्धि - एक समवर्ती कार्यक्रम के समानांतर निष्पादन गुस्ताफसन के नियम के अनुसार प्रोसेसर की संख्या के अनुपात में आनुपातिक रूप से बढ़ने के लिए एक निश्चित समय में पूर्ण किए गए कार्यों की संख्या की अनुमति देता है।
- इनपुट/आउटपुट के लिए उच्च प्रतिक्रियात्मकता, इनपुट/आउटपुट गहन कार्यक्रम अधिकतर इनपुट या आउटपुट संचालन के पूरा होने की प्रतीक्षा करते हैं। समवर्ती गणना उस समय की अनुमति देता है जो किसी अन्य कार्य के लिए उपयोग किए जाने की प्रतीक्षा में व्यतीत होगा।[citation needed]
- अधिक उपयुक्त कार्यक्रम संरचना-कुछ समस्याएं और समस्या डोमेन समवर्ती कार्यों या प्रक्रियाओं के रूप में प्रतिनिधित्व के लिए उपयुक्त हैं।[citation needed]
मॉडल
1962 में पेश किया गया कि पेट्री नेट समवर्ती निष्पादन के नियमों को संहिताबद्ध करने का एक प्रारंभिक प्रयास था। डेटाफ्लो सिद्धांत बाद में इन पर बनाया गया था और डेटाफ्लो सिद्धांत के विचारों को भौतिक रूप से लागू करने के लिए डेटाफ्लो वास्तुकला बनाए गए थे। 1970 के दशक के उत्तरार्ध में प्रक्रिया गणना संचार प्रणालियों की गणना सीसीएस और अनुक्रमिक प्रक्रियाओं का संचार करना सीएसपी की गणना विकसित की गई थी जिससे अंतःक्रियात्मक घटकों से बने प्रणाली के बारे में बीजगणितीय तर्क को अनुमति दी जा सके पाई कैलकुलस ने डायनेमिक टोपोलॉजी के बारे में तर्क करने की क्षमता को जोड़ा गया।
इनपुट/आउटपुट स्वचालित इनपुट/आउटपुट ऑटोमेटा को 1987 में पेश किया गया था।
समवर्ती प्रणालियों के व्यवहार का वर्णन करने के लिए लामपोर्ट के क्रियाओं का अस्थायी तर्क टीएलए और गणितीय मॉडल जैसे ट्रेस सिद्धांत और अभिनेता मॉडल सिद्धांत जैसे तर्क भी विकसित किए गए हैं।
सॉफ्टवेयर लेनदेन स्मृति डेटाबेस प्रबंधन प्रणाली से परमाणु प्रतिबद्ध की अवधारणा को उधार लेती है और उन्हें स्मृति अनुलेख पर लागू करती है।
संगति मॉडल
समवर्ती गणना की भाषा और बहुगुणक कार्यक्रम में एक संगति मॉडल होना चाहिए। संगत मॉडल नियमों को परिभाषित करता है कि कंप्यूटर डेटा संग्रहण पर संचालन कैसे होता है और परिणाम कैसे उत्पन्न होते हैं।
पहले स्थिरता मॉडल में से एक लेस्ली लामपोर्ट का अनुक्रमिक स्थिरता मॉडल था। अनुक्रमिक स्थिरता एक कार्यक्रम की संपत्ति है कि इसका निष्पादन अनुक्रमिक कार्यक्रम के समान परिणाम उत्पन्न करता है। विशेष रूप से एक प्रोग्राम यदि किसी निष्पादन के परिणाम के समान हैं जैसे कि सभी प्रोसेसर के संचालन को कुछ अनुक्रमिक क्रम में निष्पादित किया गया था और प्रत्येक व्यक्तिगत प्रोसेसर के संचालन इस क्रम में उसके द्वारा निर्दिष्ट क्रम में दिखाई देते हैं।[8]
कार्यान्वयन
समवर्ती कार्यक्रमों को लागू करने के लिए कई अलग-अलग तरीकों का उपयोग किया जा सकता है जैसे प्रत्येक गणितीय निष्पादन को एक प्रक्रिया (कंप्यूटर विज्ञान) के रूप में लागू करना या गणितीय प्रक्रियाओं को धागे के एक सेट के रूप में एक संचालन प्रणाली प्रक्रिया के भीतर लागू करना होगा।
बातचीत और संचार
कुछ समवर्ती गणना प्रणालियों में समवर्ती घटकों के बीच संचार कार्यक्रम छिपा होता है जबकि अन्य में इसे स्पष्ट रूप से नियंत्रित किया जाना चाहिए स्पष्ट संचार को दो वर्गों में विभाजित किया जा सकता है।
साझा स्मृति संचार समवर्ती घटक साझा स्मृति स्थानों (गणितीय भाषा) और सामग्री को बदलकर संचार करते हैं। समवर्ती गणना की इस शैली को आमतौर पर धागे के बीच समन्वय करने के लिए परिबंधन के कुछ रूपों (जैसे आपसी बहिष्कार, सेमाफोर (गणना) या मॉनिटर (सिंक्रनाइज़ेशन)) के उपयोग की आवश्यकता होती है। एक कार्यक्रम जो इनमें से किसी को भी ठीक से लागू करता है उसे थ्रेड सुरक्षा या थ्रेड-सेफ कहा जाता है।
संदेश देना सम्प्रेषण समवर्ती घटक संदेश पासिंग (एमपीआई) स्काला , एरलांग(गणितीय भाषा) और ओकैम (गणितीय भाषा) द्वारा संचार करते हैं। संदेशों का आदान-प्रदान समकालिक रूप से किया जा सकता है या एक समकालिक मिलनसार शैली का उपयोग कर सकता है जिसमें प्रेषक संदेश प्राप्त होने तक ब्लॉक करता है। समकालिक संदेश पास करना विश्वसनीय या अविश्वसनीय हो सकता है। साझा-स्मृति संगमिति की तुलना में संदेश-पासिंग संगमिति के बारे में तर्क करना कहीं अधिक आसान होता है और इसे आमतौर पर समवर्ती गणना का अधिक मजबूत रूप माना जाता है।[citation needed] संदेश-पासिंग प्रणाली को समझने और उसका विश्लेषण करने के लिए विभिन्न प्रकार के गणितीय सिद्धांत उपलब्ध हैं जिनमें अभिनेता मॉडल और विभिन्न प्रक्रिया गणना सम्मिलित हैं। साझा स्मृति कैश सुसंगतता के साथ या उसके बिना संदेश पासिंग को सममित बहु प्रसंस्करण के माध्यम से कुशलतापूर्वक कार्यान्वित किया जा सकता है।
साझा की गई स्मृति और संदेश पास करने वाली संगमिति में अलग-अलग प्रदर्शन विशेषताएँ होती हैं। आमतौर पर संदेश पासिंग प्रणाली में प्रति-प्रक्रिया स्मृति ओवरहेड और कार्य स्विचिंग ओवरहेड कम होता है लेकिन संदेश पासिंग का ओवरहेड प्रक्रिया कॉल के दौरान अधिक होता है। ये अंतर अधिकतर अन्य प्रदर्शन कारकों से अभिभूत होते हैं।
इतिहास
19वीं और 20वीं सदी की शुरुआत में रेलमार्ग और टेलीग्राफी पर किए गए पहले से समवर्ती गणना विकसित हुई और कुछ शर्तें इस अवधि की हैं जैसे कि संकेत से प्रकट करना ये एक ही रेल प्रणाली पर कई ट्रेनों को संभालने के तरीके और तारों के एक सेट पर कई प्रसारणों को कैसे संभालना है जैसे समय-विभाजन बहुसंकेतन 1870 के दशक के रूप में है।
समवर्ती प्रारूप का अकादमिक अध्ययन 1960 के दशक में शुरू हुआ था [[#CITEREF|]][9]
पारस्परिक बहिष्करण की पहचान करने और हल करने वाला इस क्षेत्र का पहला पेपर होने का श्रेय था।
व्यापकता
संगणना व्यापक है एक चिप निम्न-स्तरीयर हार्डवेयर से लेकर विश्वव्यापी नेटवर्क तक होती है। उदाहरण -
गणितीय भाषा स्तर पर।
संचालन प्रणाली स्तर पर।
- कंप्यूटर मल्टीटास्किंग जिसमें सहकारी मल्टीटास्किंग और प्रीमेप्टिव मल्टीटास्किंग दोनों सम्मिलित हैं।
- समय साझा जिसनेे समवर्ती उपयोग के साथ नौकरियों के अनुक्रमिक बैच प्रसंस्करण को बदल दिया।
- गणितीय प्रक्रिया।
- गणितीय धागे।
नेटवर्क स्तर पर नेटवर्क प्रणाली आम तौर पर उनके स्वभाव से समवर्ती होते हैं क्योंकि उनमें अलग-अलग डिवाइस होते हैं।
समवर्ती गणना का समर्थन करने वाली भाषाएं
समवर्ती गणना भाषाओं की सूची गणितीय भाषाएं हैं जो समवर्ती के लिए भाषा निर्माण का उपयोग करती हैं। इन निर्माणों में थ्रेड मल्टी-थ्रेडिंग वितरित गणना के लिए समर्थन संदेश पासिंग गणितीय, बंटवारे या भविष्य और वादे में सम्मिलित हो सकते हैं। ऐसी भाषाओं को कभी-कभी समवर्ती-उन्मुख भाषाओं या संगमिति-उन्मुख प्रोग्रामिंग भाषाओं (सीओपीएल) के रूप में वर्णित किया जाता है।[10]आज सबसे अधिक उपयोग की जाने वाली गणितीय भाषा के लिए विशिष्ट हैं जावा और सी शार्प मॉनिटर द्वारा प्रदान की गई लॉकिंग के साथ ये दोनों भाषाएँ मौलिक रूप से एक साझा-स्मृति समवर्ती मॉडल का उपयोग करती हैं अंतर्निहित साझा-स्मृति मॉडल के शीर्ष पर लागू किए जा सकते हैं और उन भाषाओं में से जो एक संदेश-संचारी संगमिति मॉडल का उपयोग करती हैं एरलांग वर्तमान में उद्योग में सबसे अधिक व्यापक रूप से उपयोग की जाती है।[citation needed]कई समवर्ती प्रोग्रामिंग भाषाओं को उत्पादन के उपयोग के लिए भाषाओं के लिए अनुसंधान भाषाओं के रूप में विकसित किया गया है जबकि पिछले 20 वर्षों में एरलैैंग लिम्बो भाषा और गणितीय भाषा जैसी भाषाओं ने कई बार औद्योगिक के रूप में देखा है। समवर्ती सुविधाओं का उपयोग करने या प्रदान करने वाली भाषाओं की गैर-विस्तृत सूची इस प्रकार है-
- गणितीय भाषा का सामान्य उद्देश्य संदेश भेजने और मॉनिटर आधारित संगमिति के लिए मूल समर्थन का प्रयोग करना।
- एलएएफ समवर्ती थ्रेड्स और संदेश पासिंग के साथ, बेल लैब्स से प्लान 9 के शुरुआती संस्करणों में प्रणाली गणितीय भाषा के लिए।
- एएलएस मानक एमएल का विस्तार भविष्य के माध्यम से कंसीडर के लिए समर्थन जोड़ता है।
- पीएक्स पाई गणना से प्रेरित समानांतर प्रिमिटिव के साथ जावा भाषा का विस्तार।
- एक्सएम डोमेन विशिष्ट समवर्ती अभिनेता मॉडल पर आधारित सी-जैसे सिंटैक्स का उपयोग करके एनईटी की सामान्य भाषा।
- बीएमडीएफएम—बाइनरी मॉड्यूलर डाटाफ्लो मशीन।
- सी एसटीडी थ्रेड।
- सी ओमेगा अनुसंधान सी का विस्तार करता है समकालिक संचार का उपयोग करता है।
- सी तेज सी ताला उपज का उपयोग कर समवर्ती गणना का समर्थन करता है संसककरण 5.0 एसिंक्स और प्रतीक्षित संपर्क पेश किए जाते हैं।
- समवर्ती संग्रह (सीएनसी) डेटा और नियंत्रण के प्रवाह को स्पष्ट रूप से परिभाषित करके स्मृति मॉडल से स्वतंत्र अंतर्निहित समानांतरता प्राप्त करता है।
- समवर्ती हास्केल आलसी शुद्ध कार्यात्मक भाषा साझा स्मृति पर समवर्ती प्रक्रियाओं का संचालन करती है।
- समवर्ती एमएल मानक एमएल का समवर्ती विस्तार।
- समवर्ती पास्कल पर ब्रिन्च हेन्सन द्वारा।
- करी गणितीय भाषा।
- डी गणितीय भाषा बहु-प्रतिमान भाषा समवर्ती भाषा के लिए स्पष्ट समर्थन के साथ बहु-प्रतिमान प्रणाली गणितीय भाषा।
- ई गणितीय भाषा डेडलॉक्स को रोकने के लिए वादों का उपयोग करता है।
- ईसीएमए लिखी कहानी समकालिक संचालन के लिए वादों का उपयोग करता है।
- एफिल भाषा अनुबंध द्वारा बनावट की अवधारणाओं के आधार पर अपने स्कूप (सॉफ्टवेयर) तंत्र के माध्यम ।
- इलीक्सिर भाषा निर्देशांक और काल्पनिक मेटा-भाषा जागरूक भाषा एरलैंग वीएम पर चल रही है।
- एरलांग भाषा बिना किसी साझा किए समकालिक संदेश का उपयोग करता है।
- एफयूटीएस भाषा इशारा स्वरूप के लिए वास्तविक समय खुलाएमपी या एक विशिष्ट शेड्यूलर के माध्यम से स्वचालित समानांतरण प्रदान करता है।
- फोरट्रान-कोएरे फोरट्रान और डू समवर्ती फोरट्रान 2008 मानक का हिस्सा है।
- भाषा प्रणाली गणना के लिए एक समवर्ती मॉडल के साथ संचार अनुक्रमिक प्रक्रियाओं पर आधारित है।
- हास्केल गणितीय भाषा समवर्ती और समानांतर कार्यात्मक भाषा। [11]
- ह्यूम भाषा सीमित स्थान और समय के वातावरण के लिए कार्यात्मक समवर्ती जहां ऑटोमेटा प्रक्रियाओं को सिंक्रोनस चैनल पैटर्न और संदेश पासिंग द्वारा वर्णित किया जाता है।
- लो भाषा अभिनेता आधारित संगमिति।
- जानूस समवर्ती बाधा भाषा तार्किक चर बैग चैनलों के लिए अलग-अलग पूछने वाले और बतानेे वाले विशुद्ध रूप से घोषणात्मक है।
- जूलिया गणितीय भाषा समवर्ती प्रोग्रामिंग कार्य, एएसऑवाईएनसी प्रतीक्षा चैनल।[12]
- जावास्क्रिप्ट वेब कार्यकर्ता के माध्यम से एक ब्राउज़र वातावरण में भविष्य और कॉलबैक कंप्यूटर प्रोग्रामिंग।
- जेओकॉलम समवर्ती और वितरित चैनल आधारित ओकॉलम का विस्तार प्रक्रियाओं के जोड़-कलन को लागू करता है।
- जावा से जुड़ें समवर्ती जावा गणितीय भाषा पर आधारित।
- जूल गणितीय भाषा डेटा प्रवाह पर आधारित संदेश पास करके संचार करता है।
- जॉयस गणितीय भाषा समवर्ती शिक्षण समवर्ती पास्कल पर निर्मित पेर ब्रिंक हैनसेन द्वारा अनुक्रमिक प्रक्रियाओं के संचार ।
- प्रयोगशाला—ग्राफिकल डेटा प्रवाह फ़ंक्शन एक ग्राफ़ में नहीं होते हैं डेटा नोड्स के बीच तार होते हैं वस्तु-उन्मुख भाषा सम्मिलित है।
- लिंबो गणितीय भाषा इन्फर्नो में प्रणाली के लिए एलएफसे संबंधित है।
- मल्टीलिस्प स्कीम वेरिएंट को समानता का समर्थन करने के लिए विस्तारित किया गया।
- मॉड्यूल-2— गणितीय प्रणाली के लिए एन विर्थ द्वारा पास्कल के उत्तराधिकारी के रूप में कोरआउटिन के लिए मूल समर्थन किया।
- मॉड्यूल -3—अल्गोल परिवार का आधुनिक सदस्य जिसके पास थ्रेड्स, म्यूटेक्स, शर्त, सत्यापन लिए व्यापक समर्थन है।
- न्यूज़क्वीक—अनुसंधान के लिए प्रथम श्रेणी के मूल्यों के रूप में चैनलों के साथ एलेफ़ के पूर्ववर्ती भाषा।
- ओकैम भाषा - अनुक्रमिक प्रक्रियाओं (सीएसपी) को संप्रेषित करके अत्यधिक प्रभावित करना।
- ओकैएम पाइ—ओकैएम का एक आधुनिक संस्करण जिसमें मिलनर के पाई कैलकुलस के विचार सम्मिलित हैं।
- ओआरजी भाषा -भारी समवर्ती गैर नियतात्मक क्लेन बीजगणित पर आधारित है।
- ओज भाषा ओज़-मोजार्ट-मल्टीपैराडाइम के अनुसार साझा-स्थिति और संदेश-पासिंग संगमिति का समर्थन करता है।
- पैरासेल गणितीय भाषा - तंत्र उन्मुख, पैरेलल, पॉइंटर्स से मुक्त, दौड़ की स्थिति।
- चित्रात्मक भाषा - अनिवार्य रूप से मिलनर के पाई-गणना का एक निष्पादन योग्य कार्यान्वयन।
- राकू भाषा में दोष के रूप से और चैनलों के लिए कक्षाएं सम्मिलित हैं।[13]
- पायथन भाषा - धागे पर आधारित समानता और प्रक्रिया-आधारित समानता का उपयोग करता है। [14]
- रेया गणितीय भाषा) - साझा-कुछ भी नहीं वस्तुओं के बीच अतुल्यकालिक संदेश का उपयोग करता है।
- लाल गणितीय भाषा लाल प्रणाली—रिबोल पर आधारित प्रणाली के लिए।
- जंग की भाषा) - प्रणाली प्रोग्रामिंग के साथ चाल के साथ संदेश पासिंग का उपयोग करते हुए साझा अपरिवर्तनीय स्मृति और साझा उत्परिवर्तनीय स्मृति।[15]
- स्काला भाषा- सामान्य उद्देश्य सामान्य प्रोग्रामिंग पैटर्न को संक्षिप्त सुरुचिपूर्ण और सुरक्षित तरीके से व्यक्त करने के लिए बनावट का प्रयोगना। गया
- अनुक्रम एल-सामान्य कार्यात्मक का मुख्य बनावट उद्देश्य प्रोग्रामिंग में आसानी, संहिता, स्पष्टता-पठनीयता, और मल्टीकोर हार्डवेयर पर प्रदर्शन के लिए स्वत: समानांतरण, और दौड़ की स्थिति से मुक्त होता है।
- एसआर भाषा-अनुसंधान के लिए।
- सुपरपास्कल-समवर्ती शिक्षण के लिए प्रति ब्रिन्च हैनसेन द्वारा समवर्ती पास्कल और जॉयस पर निर्मित भाषा।
- स्विफ्ट भाषा - समकालिक और समानांतर संहिता को संचरित तरीके से लिखने के लिए अंतर्निहित भाषाओं का समर्थन करना। [16]
- यूनिकॉन भाषा—अनुसंधान के लिए।
- एनएसडीएल—दूरसंचार आदान-प्रदान विकसित करने के लिए समकालिक संदेश पासिंग का उपयोग करता है।
- वीएचएसआईसी हार्डवेयर विवरण भाषा (वीएचडीएल)—आई एसटीडी-1076।
- एक्स सी भाषा - एक्स मॉस द्वारा विकसित भाषा का संगमिति-विस्तारित उपसमुच्चय क्रमिक प्रक्रियाओं के संचार पर आधारित प्रोग्राम योग्य आइओ के लिए अंतर्निहित निर्माण।
कई अन्य भाषाएँ पुस्तकालयों में समवर्ती के लिए समर्थन प्रदान करती हैं उपरोक्त सूची लगभग तुलनीय स्तर पर है।
यह भी देखें
- समकालिक।
- स्थान।
- प्रवाह आधारित कार्यक्रम।
- जावा समवर्ती मानचित्र।
- टॉलेमी परियोजना।
- शेफ गणित।
- संचरित संगमिति।
- लेनदेन प्रक्रिया।
टिप्पणियाँ
- ↑ 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