समवर्तीता और मेमोरी मॉडल
समवर्तीता और मेमोरी मॉडल यह परिभाषित करते हैं कि समवर्ती प्रोग्राम कैसे संरचित होते हैं और उनके परस्पर क्रिया करने वाले थ्रेड साझा मेमोरी का कैसे अवलोकन करते हैं, जो सही समानांतर सॉफ्टवेयर का आधार है।
Definition
समवर्तीता मॉडल यह वर्णन करते हैं कि स्वतंत्र रूप से निष्पादित होने वाली गणनाएँ कैसे संयोजित और संचार करती हैं, जबकि एक मेमोरी मॉडल यह निर्दिष्ट करता है कि जब समवर्ती थ्रेड साझा मेमोरी तक पहुँचते हैं तो कौन से मान पढ़े जा सकते हैं, जो प्रोग्रामर, भाषा और हार्डवेयर के बीच अनुबंध को परिभाषित करता है।
Scope
यह क्षेत्र समवर्तीता की भाषा और सिद्धांत को शामिल करता है: संचार और तुल्यकालन के लिए प्रक्रिया कैलकुलस और समवर्तीता मॉडल, मेमोरी सुसंगतता मॉडल जो मेमोरी संचालन के अनुमत क्रमों को निर्दिष्ट करते हैं, तुल्यकालन तंत्र और डेटा-रेस स्वतंत्रता, और सत्र प्रकार जैसे समवर्तीता के लिए प्रकार प्रणालियाँ। यह बताता है कि भाषाएँ उन प्रोग्रामों को कैसे अर्थ देती हैं जो एक साथ निष्पादित होते हैं और स्थिति साझा करते हैं।
Sub-topics
Core questions
- समवर्ती संचार प्रक्रियाओं को कैसे मॉडल और तर्क दिया जा सकता है?
- मेमोरी संचालन के कौन से क्रम एक प्रोग्राम अवलोकन कर सकता है?
- डेटा रेस से स्वतंत्रता की गारंटी या उसे कैसे निर्दिष्ट किया जाता है?
- प्रकार संचार को कैसे अनुशासित कर सकते हैं और समवर्तीता त्रुटियों को कैसे रोक सकते हैं?
Key theories
- प्रक्रिया कैलकुलस
- होरे का CSP और मिलनर का CCS और पाई-कैलकुलस समवर्ती, संचार प्रक्रियाओं के बीजगणितीय सिद्धांत प्रदान करते हैं, जिसमें संयोजन और तुल्यकालन के लिए ऑपरेटर और व्यवहारिक समतुल्यता की धारणाएँ जैसे कि बिसिमुलेशन शामिल हैं।
- अनुक्रमिक सुसंगतता
- लैम्पर्ट ने अनुक्रमिक सुसंगतता को इस आवश्यकता के रूप में परिभाषित किया कि एक मल्टीप्रोसेसर निष्पादन प्रत्येक प्रोसेसर के संचालन के कुछ इंटरलीविंग के रूप में प्रोग्राम क्रम में दिखाई दे, जिसके विरुद्ध कमजोर मेमोरी मॉडल की तुलना की जाती है।
- मेमोरी सुसंगतता मॉडल
- एडवे और घराचोरलू साझा-मेमोरी सुसंगतता मॉडल के स्पेक्ट्रम को व्यवस्थित करते हैं, यह समझाते हुए कि कैसे शिथिल क्रम प्रदर्शन को सक्षम करते हैं जबकि समवर्ती प्रोग्रामों के बारे में तर्क को जटिल बनाते हैं।
Clinical relevance
मेमोरी मॉडल अब मुख्यधारा की भाषा विशिष्टताओं (उदाहरण के लिए C++ और Java में) का हिस्सा हैं क्योंकि मल्टीकोर हार्डवेयर ने शिथिल क्रमों को अवलोकन योग्य बना दिया है; उन्हें सही ढंग से समझना सही, पोर्टेबल समवर्ती सॉफ्टवेयर के लिए आवश्यक है। प्रक्रिया कैलकुलस और सत्र प्रकार संदेश-पासिंग भाषाओं और प्रोटोकॉल के डिजाइन को सूचित करते हैं।
History
समवर्तीता सिद्धांत पेट्री नेट और होरे (CSP) और मिलनर (CCS) के 1970 के दशक के काम से विकसित हुआ, बाद में मोबाइल प्रक्रियाओं के लिए पाई-कैलकुलस। लैम्पर्ट ने 1979 में अनुक्रमिक सुसंगतता को परिभाषित किया; जैसे-जैसे शिथिल हार्डवेयर का प्रसार हुआ, 2000 के दशक में जावा और C++ जैसी भाषाओं के लिए मेमोरी मॉडल को औपचारिक रूप दिया गया, और कमजोर-मेमोरी सिमेंटिक्स एक सक्रिय अनुसंधान क्षेत्र बन गया।
Debates
- मजबूत बनाम शिथिल मेमोरी सुसंगतता
- डिजाइनर अनुक्रमिक सुसंगतता जैसे मजबूत मॉडल की सहज सादगी को शिथिल मॉडल के प्रदर्शन के खिलाफ व्यापार करते हैं जो पुनर्व्यवस्था की अनुमति देते हैं, जो तर्क को जटिल बनाते हैं और सावधानीपूर्वक भाषा-स्तरीय सिमेंटिक्स की आवश्यकता होती है।
Key figures
- C. A. R. Hoare
- Robin Milner
- Leslie Lamport
- Sarita Adve
Related topics
Seminal works
- hoare1978
- milner1989
- lamport1979
- adve1996
Frequently asked questions
- मेमोरी मॉडल क्या है?
- एक मेमोरी मॉडल औपचारिक अनुबंध है जो यह निर्दिष्ट करता है कि जब कई थ्रेड साझा मेमोरी तक पहुँचते हैं तो एक रीड कौन से मान लौटा सकता है, यह परिभाषित करता है कि कंपाइलर और हार्डवेयर कौन सी पुनर्व्यवस्था कर सकते हैं और प्रोग्रामर किस पर भरोसा कर सकता है।
- अनुक्रमिक सुसंगतता क्या है?
- अनुक्रमिक सुसंगतता की आवश्यकता है कि एक समवर्ती निष्पादन थ्रेड्स के संचालन के कुछ एकल इंटरलीविंग के रूप में व्यवहार करे जो प्रत्येक थ्रेड के प्रोग्राम क्रम का सम्मान करता है, जिससे यह सबसे सहज (लेकिन अक्सर शिथिल) मेमोरी मॉडल बन जाता है।