समवर्ती कंप्यूटिंग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 2: Line 2:
समवर्ती [[कम्प्यूटिंग]] गणना का एक रूप है जिसमें कई गणनाएँ समवर्ती रूप में निष्पादित की जाती हैं जो अतिव्यापक अवधि के दौरान क्रमिक रूप से समवर्ती गणना की शुरूआत पहले की जाती है।  
समवर्ती [[कम्प्यूटिंग]] गणना का एक रूप है जिसमें कई गणनाएँ समवर्ती रूप में निष्पादित की जाती हैं जो अतिव्यापक अवधि के दौरान क्रमिक रूप से समवर्ती गणना की शुरूआत पहले की जाती है।  


यह प्रणाली की एक संपत्ति है जो एक [[कंप्यूटर प्रोग्राम|कंप्यूटर कार्यक्रम]] या [[संगणक संजाल]] का भाग है जहां प्रत्येक प्रक्रिया के लिए एक अलग निष्पादन बिंदु का नियंत्रण होता है। एक समवर्ती प्रणाली वह है जहां एक कम्प्यूटिंग सभी संगणनाओं को पूरा होने की प्रतीक्षा किए बिना ही आगे बढ़ जाती हैं तथा<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>
यह प्रणाली की एक संपत्ति है जो एक [[कंप्यूटर प्रोग्राम|कंप्यूटर कार्यक्रम]] या [[संगणक संजाल]] का भाग है जहां प्रत्येक प्रक्रिया के लिए एक अलग निष्पादन बिंदु का नियंत्रण होता है। एक समवर्ती प्रणाली वह है जहां एक कम्प्यूटिंग सभी संगणनाओं को पूरा होने की प्रतीक्षा किए बिना ही आगे बढ़ जाती है तथा<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|Parallel computing}}
{{See also|Parallel computing}}
समवर्ती गणना की अवधारणा [[समानांतर कंप्यूटिंग|गणना]] से संबंधित है लेकिन यह विशिष्ट अवधारणा के साथ अधिकतर भ्रमित होती है <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
समवर्ती गणना की अवधारणा [[समानांतर कंप्यूटिंग|गणना]] से संबंधित है लेकिन इस विशिष्ट अवधारणा के साथ अधिकतर भ्रमित होती है <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> जबकि दोनों को समान अवधि के साथ कई प्रक्रियाओं के रूप में वर्णित किया है। समानांतर गणना के निष्पादन में एक भौतिक क्षण होता है उदाहरण के लिए एक बहु-प्रोसेसर मशीन अलग केंद्रीय प्रसंस्करण इकाई पर संगणना को गति देने के लक्ष्य के साथ-एक [[मल्टी-कोर प्रोसेसर]] को गणना करना असंभव है लेकिन एकल प्रोसेसर किसी भी क्षण गणना कर सकता है {{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}}
}}</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}}
अनुक्रमिक शब्द समवर्ती और समानांतर दोनों के लिए एक विलोम के रूप में प्रयोग किया जाता है जब इन्हें स्पष्ट रूप से अलग किया जाता है तो समवर्ती अनुक्रमिक और समानांतर को विरोधी जोड़े के रूप में उपयोग किया जाता है।{{sfn|Patterson|Hennessy|2013|p=503}} इस कार्य को एक ही समय में किया जाता है बिना अंतपत्रण का कार्य तब तक शुरू नहीं होता जब तक समाप्त कार्यों को क्रमिक रूप से निर्धारित किया जाए [[Serializability|क्रमबद्धता]] ही संगमिति नियंत्रण को सरल करता है।{{citation needed|date=December 2016}}




=== साझा संसाधनों तक पहुंचने का समन्वय करना ===
=== साझा संसाधनों तक पहुंचने का समन्वय करना ===
समवर्ती कार्यक्रमों की बनावट करने में मुख्य चुनौती समवर्ती नियंत्रण है विभिन्न गणतीय निष्पादनों के बीच बातचीत या संचार का सही क्रम सुनिश्चित करना और निष्पादन के बीच साझा किए गए संसाधनों तक पहुंच का समन्वय करना ही <ref name=benari2006/>संभावित समस्याओं में [[गतिरोध]], [[संसाधन भुखमरी|संसाधन और भुखमरी]] सम्मिलित हैं। साझा संसाधन द्वारा दर्शाए गए चेकिंग खाते से निकासी करने के लिए निम्नलिखित एल्गोरिथम हैं।   
समवर्ती कार्यक्रमों की बनावट में मुख्य चुनौती समवर्ती नियंत्रण की है जो विभिन्न गणतीय निष्पादनों के बीच बातचीत या संचार का सही क्रम सुनिश्चित करता है तथा निष्पादन के बीच साझा किए गए संसाधनों तक पहुंच का समन्वय करना ही <ref name=benari2006/>संभावित समस्याओं में [[गतिरोध]], [[संसाधन भुखमरी|संसाधन और भुखमरी]] सम्मिलित करता है साझा संसाधन द्वारा दर्शाए गए चेकिंग खाते से निकासी करने के लिए निम्न कलन विधि हैं।   
 
वाक्यविन्यास लैंग सीपीपी हाइलाइट आदि। 
 
 
संतुलन पॉंच सौ और दो समवर्ती धागे हैं साथ ही तीन सौ यदि दोनों ऑपरेशनों में लाइन तीन को पॉच से पहले निष्पादित किया जाता है तो दोनों ऑपरेशन उसे खोज लेंगे संतुलन मूल्यांकन करता है और निकासी राशि घटाने के लिए निष्पादन  करता है। जबकि दोनों प्रक्रियाएं अपनी निकासी स्वयं करती हैं इसलिए निकाली गई कुल राशि मूल राशि से अधिक होगी साझा संसाधनों के साथ इस तरह की समस्याएं संगमिति नियंत्रण या [[गैर-अवरुद्ध एल्गोरिदम]] के उपयोग से लाभान्वित होती हैं।


=== लाभ ===
=== लाभ ===
समवर्ती गणना के निम्नलिखित लाभ हैं-
समवर्ती गणना के निम्नलिखित लाभ हैं-


* कार्यक्रम में वृद्धि करना एक समवर्ती कार्यक्रम के समानांतर निष्पादन गुस्ताफसन के नियम के अनुसार गणतीय की संख्या के अनुपात में आनुपातिक रूप से बढ़ने के लिए एक निश्चित समय में पूर्ण की गई संख्या को अनुमति देता है।
* गुस्ताफसन के नियम के अनुसार कार्यक्रम में वृद्धि करना और एक समवर्ती कार्यक्रम के समानांतर निष्पादन गणतीय संख्या के अनुपात में आनुपातिक रूप से बढ़ने के लिए एक निश्चित समय में पूर्ण की गई संख्या को अनुमति देता है।
* इनपुट आउटपुट के लिए उच्च प्रतिक्रियात्मकता गहन कार्यक्रम में इनपुट या आउटपुट संचालन की प्रतीक्षा करते हैं। समवर्ती गणना उस समय की अनुमति देता है जो किसी अन्य कार्य के लिए उपयोग किए जाने की प्रतीक्षा में व्यस्त होता है।{{citation needed|date=December 2016}}
* इनपुट आउटपुट की उच्च प्रतिक्रियात्मकता में इनपुट या आउटपुट संचालन की प्रतीक्षा करते हैं तथा समवर्ती गणना उस समय की अनुमति देता है जो किसी अन्य कार्य के लिए उपयोग किए जाने की प्रतीक्षा में व्यस्त होता है।{{citation needed|date=December 2016}}
* उपयुक्त कार्यक्रम संरचना में कुछ समस्याएं डोमेन समवर्ती कार्यों या प्रक्रियाओं के रूप में प्रतिनिधित्व के लिए उपयुक्त होता है।{{citation needed|date=December 2016}}
*
 


== मॉडल ==
== मॉडल ==


1962 में पेश किया गया कि [[पेट्री नेट|पेट्री शुद्ध]] समवर्ती निष्पादन के नियमों को संहिताबद्ध करने का एक प्रारंभिक प्रयास था। डेटाफ्लो सिद्धांत बाद में  बनाया गया था और डेटाफ्लो सिद्धांत के विचारों को भौतिक रूप से लागू करने के लिए [[डेटाफ्लो आर्किटेक्चर|डेटाफ्लो वास्तुकला]] बनाए गए थे 1970 के दशक के उत्तरार्ध में [[प्रक्रिया गणना]] [[संचार प्रणालियों की गणना]] सीसीएस और [[अनुक्रमिक प्रक्रियाओं का संचार करना]] सीएसपी की गणना विकसित की गई थी जिससे अंतःक्रियात्मक घटकों से बनी प्रणाली के बारे में बीजगणितीय तर्क को अनुमति दी जा सके पाई कैलकुलस ने डायनेमिक टोपोलॉजी के बारे में तर्क करने की क्षमता को जोड़ा गया।
1962 में कहा गया कि [[पेट्री नेट|पेट्री शुद्ध]] समवर्ती निष्पादन के नियमों को संहिताबद्ध करने का एक प्रारंभिक प्रयास था डेटाफ्लो सिद्धांत बाद में  बनाया गया था और डेटाफ्लो सिद्धांत के विचारों को भौतिक रूप से लागू करने के लिए [[डेटाफ्लो आर्किटेक्चर|डेटाफ्लो वास्तुकला]] बनाए गए थे 1970 के दशक के बाद में [[प्रक्रिया गणना]] [[संचार प्रणालियों की गणना]] और [[अनुक्रमिक प्रक्रियाओं का संचार करना|अनुक्रमिक प्रक्रियाओं का संचार करने]] की गणना विकसित की गई थी जिससे अंतःक्रियात्मक घटकों से बनी प्रणाली के बारे में बीजगणितीय तर्क को अनुमति दी जा सके पाई कैलकुलस ने डायनेमिक टोपोलॉजी के बारे में तर्क करने की क्षमता को जोड़ा गया।


इनपुट आउटपुट स्वचालित रूप से ऑटोमेटा को 1987 में पेश किया गया था।
इनपुट आउटपुट स्वचालित रूप से 1987 में पेश किया गया था।


समवर्ती प्रणालियों के व्यवहार का वर्णन करने के लिए लामपोर्ट के [[क्रियाओं का अस्थायी तर्क]] टीएलए और गणितीय मॉडल जैसे [[ट्रेस सिद्धांत]] और [[अभिनेता मॉडल सिद्धांत]] जैसे तर्क भी विकसित किए गए हैं।
समवर्ती प्रणालियों के व्यवहार का वर्णन करने के लिए लामपोर्ट के [[क्रियाओं का अस्थायी तर्क]] टीएलए और गणितीय मॉडल जैसे [[ट्रेस सिद्धांत]] और [[अभिनेता मॉडल सिद्धांत]] जैसे तर्क भी विकसित किए गए हैं।

Revision as of 09:22, 10 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]संभावित समस्याओं में गतिरोध, संसाधन और भुखमरी सम्मिलित करता है साझा संसाधन द्वारा दर्शाए गए चेकिंग खाते से निकासी करने के लिए निम्न कलन विधि हैं।

लाभ

समवर्ती गणना के निम्नलिखित लाभ हैं-

  • गुस्ताफसन के नियम के अनुसार कार्यक्रम में वृद्धि करना और एक समवर्ती कार्यक्रम के समानांतर निष्पादन गणतीय संख्या के अनुपात में आनुपातिक रूप से बढ़ने के लिए एक निश्चित समय में पूर्ण की गई संख्या को अनुमति देता है।
  • इनपुट आउटपुट की उच्च प्रतिक्रियात्मकता में इनपुट या आउटपुट संचालन की प्रतीक्षा करते हैं तथा समवर्ती गणना उस समय की अनुमति देता है जो किसी अन्य कार्य के लिए उपयोग किए जाने की प्रतीक्षा में व्यस्त होता है।[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।
  • एक्स सी भाषा एक्स मॉस द्वारा विकसित भाषा का संगमिति-विस्तारित उपसमुच्चय क्रमिक प्रक्रियाओं के संचार पर आधारित कार्यक्रम अंतर्निहित है।

कई अन्य भाषा पुस्तकालयों में कम्प्यूटिंग समवर्ती के लिए समर्थन प्रदान करती हैं सूची लगभग तुलनीय स्तर पर है।

यह भी देखें

टिप्पणियाँ

  1. 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.


संदर्भ

  1. Operating System Concepts 9th edition, Abraham Silberschatz. "Chapter 4: Threads"
  2. 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. 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).
  4. "Parallelism vs. Concurrency". Haskell Wiki.
  5. Schneider, Fred B. (1997-05-06). On Concurrent Programming. Springer. ISBN 9780387949420.
  6. 6.0 6.1 Ben-Ari, Mordechai (2006). Principles of Concurrent and Distributed Programming (2nd ed.). Addison-Wesley. ISBN 978-0-321-31283-9.
  7. Patterson & Hennessy 2013, p. 503.
  8. 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.
  9. "PODC Influential Paper Award: 2002", ACM Symposium on Principles of Distributed Computing, retrieved 2009-08-24
  10. Armstrong, Joe (2003). "Making reliable distributed systems in the presence of software errors" (PDF).
  11. Marlow, Simon (2013) Parallel and Concurrent Programming in Haskell : Techniques for Multicore and Multithreaded Programming ISBN 9781449335946
  12. https://juliacon.talkfunnel.com/2015/21-concurrent-and-parallel-programming-in-julia Concurrent and Parallel programming in Julia
  13. "संगामिति". docs.perl6.org (in English). Retrieved 2017-12-24.
  14. Documentation » The Python Standard Library » Concurrent Execution
  15. Blum, Ben (2012). "Typesafe Shared Mutable State". Retrieved 2012-11-14.
  16. "संगामिति" (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.


अग्रिम पठन


बाहरी संबंध