अनुक्रमिक प्रक्रियाओं का संचार करना

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

सीएसपी को पहली बार 1978 में टोनी होरे के लेख में वर्णित किया गया था | किन्तु तब से अधिक सीमा तक विकसित हो गया है। सीएसपी व्यावहारिक रूप से उद्योग में औपचारिक विनिर्देश के लिए एक उपकरण के रूप में विभिन्न प्रणालियों के समवर्ती, जैसे टी 9000 ट्रांसप्यूटर, के रूप में प्रयुक्त किया गया है। साथ ही  सुरक्षित ईकॉमर्स प्रणाली सीएसपी का सिद्धांत अभी भी सक्रिय शोध का विषय है | जिसमें व्यावहारिक प्रयोज्यता की अपनी सीमा को बढ़ाने के लिए काम सम्मिलित है |(उदाहरण के लिए, उन प्रणालियों के मापदंड को बढ़ाना जिनका विश्लेषण किया जा सकता है)।

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

सीएसपी के मूल संस्करण के प्रकाशन के बाद होरे, स्टीफन ब्रूक्स और बिल रोसको|ए. डब्ल्यू रोस्को ने सीएसपी के सिद्धांत को अपने आधुनिक, प्रक्रिया बीजगणितीय रूप में विकसित और परिष्कृत किया। सीएसपी को प्रक्रिया बीजगणित में विकसित करने के लिए लिया गया दृष्टिकोण रॉबिन मिलनर के कम्युनिकेटिंग सिस्टम्स (सीसीएस) के कलन पर काम से प्रभावित था और इसके विपरीत सीएसपी का सैद्धांतिक संस्करण प्रारंभ में ब्रुक्स, होरे और रोसको द्वारा 1984 के  लेख में प्रस्तुत किया गया था, और बाद में होरे की पुस्तक संचार अनुक्रमिक प्रक्रियाओं में, जिसे 1985 में प्रकाशित किया गया था। सितंबर 2006 में, वह पुस्तक अभी भी तीसरा सबसे उद्धृत साइटसीर के अनुसार अब तक का कंप्यूटर विज्ञान संदर्भ था (यद्यपि इसके नमूने की प्रकृति के कारण  अविश्वसनीय स्रोत)। होरे की किताब के प्रकाशन के बाद से सीएसपी के सिद्धांत में कुछ छोटे बदलाव हुए हैं। इनमें से अधिकांश परिवर्तन सीएसपी प्रक्रिया विश्लेषण और सत्यापन के लिए स्वचालित उपकरणों के आगमन से प्रेरित थे। रोसको का सिद्धांत और समवर्ती का अभ्यास सीएसपी के इस नए संस्करण का वर्णन करता है।

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

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

चूंकि सीएसपी जटिल संदेश एक्सचेंजों को सम्मिलित करने वाली प्रणालियों के मॉडलिंग और विश्लेषण के लिए उपयुक्त है | इसलिए इसे संचार और सुरक्षा प्रोटोकॉल के सत्यापन के लिए भी प्रयुक्त किया गया है। इस प्रकार के अनुप्रयोग का प्रमुख उदाहरण लोवे द्वारा सीएसपी और एफडीआर2 शोधन-परीक्षक का उपयोग नीडम-श्रोएडर प्रोटोकॉल प्रमाणीकरण प्रोटोकॉल पर पहले अज्ञात हमले की खोज करने के लिए और फिर  सही प्रोटोकॉल विकसित करने के लिए किया जाता है। आक्रमण को परास्त करने में सक्षम है।

अनौपचारिक विवरण
जैसा कि इसके नाम से पता चलता है | सीएसपी उन घटक प्रक्रियाओं के संदर्भ में प्रणाली के विवरण की अनुमति देता है | जो स्वतंत्र रूप से संचालित होते हैं, और केवल संदेश-पासिंग संचार के माध्यम से एक दूसरे के साथ परस्पर क्रिया करते हैं। चूँकि, सीएसपी नाम का अनुक्रमिक भाग अब  मिथ्या नाम है | क्योंकि आधुनिक सीएसपी घटक प्रक्रियाओं को अनुक्रमिक प्रक्रियाओं के रूप में और अधिक प्राचीन प्रक्रियाओं की समानांतर संरचना के रूप में परिभाषित करने की अनुमति देता है। विभिन्न प्रक्रियाओं के बीच संबंध, और जिस तरह से प्रत्येक प्रक्रिया अपने पर्यावरण के साथ संचार करती है | उसे विभिन्न प्रक्रिया गणना संचालको का उपयोग करके वर्णित किया गया है। इस बीजगणितीय दृष्टिकोण का उपयोग करते हुए, कुछ प्राचीन तत्वों से अधिक जटिल प्रक्रिया विवरणों का निर्माण सरलता से किया जा सकता है।

प्राचीन
सीएसपी अपनी प्रक्रिया बीजगणित में प्राचीन के दो वर्ग प्रदान करता है |
 * कार्य
 * घटनाएँ संचार या परस्पर क्रिया का प्रतिनिधित्व करती हैं। उन्हें अविभाज्य और तात्कालिक माना जाता है। वे परमाणु नाम (जैसे चालू, बंद), यौगिक नाम (जैसे वाल्व.ओपन, वाल्व.क्लोज़), या इनपुट/आउटपुट इवेंट (जैसे माउस एक्सवाई, स्क्रीन!बिटमैप) हो सकते हैं।

प्राचीन प्रक्रियाएं
 * प्राचीन प्रक्रियाएं मौलिक व्यवहारों का प्रतिनिधित्व करती हैं | उदाहरणों में विराम (वह प्रक्रिया जो कुछ भी संचार नहीं करती है, जिसे गतिरोध भी कहा जाता है), और छोडना (जो सफल समाप्ति का प्रतिनिधित्व करता है) सम्मिलित हैं।

बीजगणितीय संचालक
सीएसपी में बीजगणितीय संचालको की विस्तृत श्रृंखला है। प्रमुख हैं:


 * उपसर्ग
 * उपसर्ग संचालक नई प्रक्रिया का उत्पादन करने के लिए  घटना और  प्रक्रिया को जोड़ता है। उदाहरण के लिए, $$a \to P$$ वह प्रक्रिया है जो $a$ अपने पर्यावरण के साथ संचार करने को तैयार है  और उसके बाद $a$, प्रक्रिया $P$ की तरह व्यवहार करता है.


 * निर्धारक विकल्प
 * नियतात्मक (या बाहरी) विकल्प संचालक प्रक्रिया के भविष्य के विकास को दो घटक प्रक्रियाओं के बीच एक विकल्प के रूप में परिभाषित करने की अनुमति देता है और पर्यावरण को किसी  प्रक्रिया के लिए प्रारंभिक घटना को संप्रेषित करके विकल्प को हल करने की अनुमति देता है। उदाहरण के लिए, $$(a \to P) \Box (b \to Q)$$ वह प्रक्रिया है जो प्रारंभिक घटनाओं $a$ और $b$ को संप्रेषित करने के लिए तैयार है  और बाद में या तो  $P$ या $Q$,के रूप व्यवहार करता है जिसके आधार पर पर्यावरण संचार करने के लिए प्रारंभिक घटना का चयन करता है। यदि दोनों $a$ और $b$ को एक साथ संप्रेषित किया गया था, तो विकल्प को गैर-निर्धारित रूप से हल किया जाएगा।


 * गैर नियतात्मक विकल्प
 * गैर नियतात्मक (या आंतरिक) विकल्प संचालक प्रक्रिया के भविष्य के विकास को दो घटक प्रक्रियाओं के बीच  विकल्प के रूप में परिभाषित करने की अनुमति देता है, किन्तु पर्यावरण को किसी भी नियंत्रण की अनुमति नहीं देता है कि कौन से घटक प्रक्रियाओं का चयन किया जाएगा। उदाहरण के लिए, $$(a \to P) \sqcap (b \to Q)$$ जैसा व्यवहार कर सकता है $$(a \to P)$$ या $$(b \to Q)$$. मानने से इंकार कर सकता है $a$ या $b$ और संचार करने के लिए तभी बाध्य है जब पर्यावरण दोनों प्रदान करता है $a$ और $b$. यदि विकल्प के दोनों पक्षों की प्रारंभिक घटनाएँ समान हैं, तो गैर-नियतात्मकता को अनजाने में  नाममात्र निर्धारक विकल्प में प्रस्तुत किया जा सकता है। तो, उदाहरण के लिए,
 * या तो $$(a \to P)$$ या $$(b \to Q)$$ की तरह व्यवहार कर सकता है। यह $a$ या $b$ को स्वीकार करने से इंकार कर सकता है और केवल तभी संचार करने के लिए बाध्य होता है | जब पर्यावरण  $a$ और $b$ दोनों प्रदान करता है। यदि विकल्प के दोनों पक्षों की प्रारंभिक घटनाएँ समान हैं, तो गैर-नियतात्मकता को अनजाने में एक नाममात्र नियतात्मक विकल्प में प्रस्तुत किया जा सकता है। तो उदाहरण के लिए$$(a \to a \to \text{STOP}) \Box (a \to b \to \text{STOP})$$ के समान है |$$a \to \big((a \to \text{STOP}) \sqcap (b \to \text{STOP})\big)$$


 * इंटरलिविंग
 * इंटरलीविंग संचालक पूरी तरह से स्वतंत्र समवर्ती गतिविधि का प्रतिनिधित्व करता है। प्रक्रिया $$P \;|||\; Q$$ दोनों के रूप में व्यवहार करता है $P$ और $Q$ इसके साथ ही। दोनों प्रक्रियाओं की घटनाओं को इच्छानुसार समय के साथ जोड़ा जाता है।


 * इंटरफ़ेस समानांतर
 * इंटरफ़ेस समानांतर संचालक समवर्ती गतिविधि का प्रतिनिधित्व करता है जिसके लिए घटक प्रक्रियाओं के बीच सिंक्रनाइज़ेशन की आवश्यकता होती है: इंटरफ़ेस समुच्चय में कोई भी घटना तभी हो सकती है जब सभी घटक प्रक्रियाएँ उस घटना में संलग्न होने में सक्षम हों। उदाहरण के लिए, प्रक्रिया $$P \;|[\{ a \}]|\; Q$$ $P$ और $Q$ दोनों की तरह एक साथ व्यवहार करता है। दोनों प्रक्रियाओं $a$ की घटनाओं को इच्छानुसार  समय के साथ जोड़ा जाता है।$$(a \to P) \;|[\{ a \}]|\; (a \to Q)$$कार्य $a$ में सम्मिलित हो सकते हैं और प्रक्रिया बन सकते हैं |$$P \;|[\{ a \}]|\; Q$$ जबकि $$(a \to P ) \;|[\{ a, b \}]|\; (b \to Q)$$ बस गतिरोध होगा।


 * प्रच्छादन
 * प्रच्छादन वाला संचालक कुछ घटनाओं को अप्राप्य बनाकर सार प्रक्रियाओं की विधि प्रदान करता है। प्रच्छादन का सामान्य उदाहरण है | $$(a \to P) \setminus \{ a \}$$ जो यह मानते हुए कि $P$ में प्रकट नहीं होने वाली घटना $a$ को कम कर देता है |$$P$$

उदाहरण
मूलरूप सीएसपी उदाहरणों में से चॉकलेट वेंडिंग मशीन का एक सार प्रतिनिधित्व है और कुछ चॉकलेट खरीदने के इच्छुक व्यक्ति के साथ इसकी परस्पर क्रिया है। यह वेंडिंग मशीन दो अलग-अलग घटनाओं, "कॉइन" और "चोक" को अंजाम देने में सक्षम हो सकती है | जो क्रमशः भुगतान की प्रविष्टि और चॉकलेट की डिलीवरी का प्रतिनिधित्व करती हैं। एक मशीन जो चॉकलेट देने से पहले भुगतान (केवल नकद में) की मांग करती है, उसे इस प्रकार लिखा जा सकता है |

$$\mathrm{VendingMachine} = \mathrm{coin} \rightarrow \mathrm{choc} \rightarrow \mathrm{STOP}$$ एक व्यक्ति जो भुगतान करने के लिए सिक्के या कार्ड का उपयोग करना चुन सकता है | उसे इस प्रकार मॉडल किया जा सकता है |

$$\mathrm{Person} = (\mathrm{coin} \rightarrow \mathrm{STOP}) \Box (\mathrm{card} \rightarrow \mathrm{STOP})$$ इन दोनों प्रक्रियाओं को समानांतर में रखा जा सकता है | जिससे वे दूसरे के साथ परस्पर क्रिया कर सकें। समग्र प्रक्रिया का व्यवहार उन घटनाओं पर निर्भर करता है | जिन पर दो घटक प्रक्रियाओं को सिंक्रनाइज़ करना चाहिए। इस प्रकार,

$$\mathrm{VendingMachine} \left\vert\left[\left\{ \mathrm{coin}, \mathrm{card} \right\}\right]\right\vert \mathrm{Person} \equiv \mathrm{coin} \rightarrow \mathrm{choc} \rightarrow \mathrm{STOP}$$ जबकि यदि केवल "कॉइन" पर सिंक्रोनाइज़ेशन की आवश्यकता होती है, तो हम प्राप्त करेंगे

$$\mathrm{VendingMachine} \left\vert\left[\left\{ \mathrm{coin} \right\}\right]\right\vert \mathrm{Person} \equiv \left (\mathrm{coin} \rightarrow \mathrm{choc} \rightarrow \mathrm{STOP}\right ) \Box \left (\mathrm{card} \rightarrow \mathrm{STOP}\right )$$ यदि हम "सिक्का" और "कार्ड" घटनाओं को छिपाकर इस बाद की समग्र प्रक्रिया को सार करते हैं, अर्थात

$$\left (\left (\mathrm{coin} \rightarrow \mathrm{choc} \rightarrow \mathrm{STOP}\right ) \Box \left (\mathrm{card} \rightarrow \mathrm{STOP}\right )\right ) \setminus \left\{\mathrm{coin, card}\right\}$$ हमें गैर-नियतात्मक प्रक्रिया मिलती है |

$$\left (\mathrm{choc} \rightarrow \mathrm{STOP}\right ) \sqcap \mathrm{STOP}$$ यह ऐसी प्रक्रिया है जो या तो "चोक" घटना की प्रस्तुति करती है और फिर रुक जाती है, या बस रुक जाती है। दूसरे शब्दों में, यदि हम अमूर्तता को प्रणाली के बाहरी दृश्य के रूप में मानते हैं (उदाहरण के लिए, कोई व्यक्ति जो व्यक्ति द्वारा किए गए निर्णय को नहीं देखता है), गैर-नियतात्मक एल्गोरिदम प्रस्तुत किया गया है।

वाक्य - विन्यास
सीएसपी का वाक्य - विन्यास "नियमबद्ध" विधियों को परिभाषित करता है | जिसमें प्रक्रियाओं और घटनाओं को जोड़ा जा सकता है। माना $e$ एक घटना हो, और $X$ घटनाओं का  समुच्चय हो। तब सीएसपी के मूल वाक्य - विन्यास को इस प्रकार परिभाषित किया जा सकता है |

$$ \begin{array}{lcll} {Proc} & ::= & \mathrm{STOP} & \; \\ &|& \mathrm{SKIP} & \; \\ &|& e \rightarrow {Proc} & (\text{prefixing})\\ &|& {Proc} \;\Box\; {Proc} & (\text{external} \; \text{choice})\\ &|& {Proc} \;\sqcap\; {Proc} & (\text{nondeterministic} \; \text{choice})\\ &|& {Proc} \;\vert\vert\vert\; {Proc} & (\text{interleaving}) \\ &|& {Proc} \;|[ \{ X \} ]| \;{Proc} & (\text{interface} \; \text{parallel})\\ &|& {Proc} \setminus X & (\text{hiding})\\ &|& {Proc} ; {Proc} & (\text{sequential} \; \text{composition})\\ &|& \mathrm{if} \; b \; \mathrm{then} \; {Proc}\; \mathrm{else}\; Proc & (\text{boolean} \; \text{conditional})\\ &|& {Proc} \;\triangleright\; {Proc} & (\text{timeout})\\ &|& {Proc} \;\triangle\; {Proc} & (\text{interrupt}) \end{array} $$ ध्यान दें कि, संक्षिप्तता के हित में, ऊपर प्रस्तुत वाक्य - विन्यास $$\mathbf{div}$$ प्रक्रिया को छोड़ देता है, जो विचलन (कंप्यूटर विज्ञान) के साथ-साथ विभिन्न ऑपरेटरों जैसे वर्णानुक्रमिक समानांतर पाइपिंग और अनुक्रमित विकल्पों का प्रतिनिधित्व करता है।

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

सांकेतिक शब्दार्थ
सीएसपी के तीन प्रमुख सांकेतिक मॉडल ट्रेस मॉडल, स्थिर विफलता मॉडल और विफलता/विचलन मॉडल हैं। इन तीन मॉडलों में से प्रत्येक के लिए प्रक्रिया अभिव्यक्तियों से अर्थ मैपिंग सीएसपी के लिए अर्थ संबंधी शब्दार्थ प्रदान करते हैं।

निशान मॉडल प्रक्रिया अभिव्यक्ति के अर्थ को घटनाओं (निशान) के अनुक्रमों के समुच्चय के रूप में परिभाषित करता है | जिसे प्रदर्शन करने के लिए प्रक्रिया देखी जा सकती है। उदाहरण के लिए,


 * $$\mathrm{traces}\left(\mathrm{STOP}\right) = \left\{ \langle\rangle \right\}$$ तब से $$\mathrm{STOP}$$ कोई कार्य नहीं करता है |
 * $$\mathrm{traces}\left(a\rightarrow b \rightarrow \mathrm{STOP}\right) = \left\{\langle\rangle ,\langle a \rangle, \langle a, b \rangle \right\}$$ प्रक्रिया के बाद से $$(a\rightarrow b \rightarrow \mathrm{STOP})$$ यह देखा जा सकता है कि कोई घटना नहीं हुई है, घटना $a$, या घटनाओं का क्रम $a$ के बाद $b$ का प्रदर्शन नहीं किया है

अधिक औपचारिक रूप से, ट्रेसेस मॉडल में प्रक्रिया का अर्थ $$\mathrm{traces}\left(P\right) \subseteq \Sigma^{\ast}$$ P  के रूप में परिभाषित किया गया है | ऐसा है कि: जहाँ $$\Sigma^{\ast}$$ घटनाओं के सभी संभावित परिमित अनुक्रमों का समुच्चय है।
 * 1) $$\langle\rangle \in \mathrm{traces}\left(P\right)$$ (अर्थात। $$\mathrm{traces}\left(P\right)$$ खाली अनुक्रम सम्मिलित है)
 * 2) $$s_1 \smallfrown s_2 \in \mathrm{traces}\left(P\right) \implies s_1 \in \mathrm{traces}\left(P\right)$$ (अर्थात। $$\mathrm{traces}\left(P\right)$$ उपसर्ग-बंद है)

स्थिर विफलता मॉडल इनकार करने वाले समुच्चय के साथ निशान मॉडल का विस्तार करता है, जो घटनाओं के $$X \subseteq \Sigma$$ समुच्चय हैं कि  प्रक्रिया प्रदर्शन करने से इंकार कर सकती है।  $$\left(s,X\right)$$ एक जोड़ी है, एक निशान से मिलकर $s$, और  इनकार समुच्चय $X$  जो उन घटनाओं की पहचान करता है | जो ट्रेस को निष्पादित करने के बाद एक प्रक्रिया से इनकार कर सकती हैं | $s$ स्थिर विफलता मॉडल में $$\left(\mathrm{traces}\left(P\right), \mathrm{failures}\left(P\right)\right)$$ एक प्रक्रिया के देखे गए व्यवहार को जोड़ी द्वारा वर्णित किया गया है | उदाहरण के लिए,

$$\mathrm{failures}\left(\left(a \rightarrow \mathrm{STOP}\right) \Box \left(b \rightarrow \mathrm{STOP}\right)\right) = \left\{\left(\langle\rangle,\emptyset\right), \left(\langle a \rangle, \left\{a,b\right\}\right), \left(\langle b \rangle,\left\{a,b\right\}\right) \right\}$$$$\mathrm{failures}\left(\left(a \rightarrow \mathrm{STOP}\right) \sqcap \left(b \rightarrow \mathrm{STOP}\right)\right) = \left\{ \left(\langle\rangle,\left\{a\right\}\right), \left(\langle\rangle,\left\{b\right\}\right), \left(\langle a \rangle, \left\{a,b\right\}\right), \left(\langle b \rangle,\left\{a,b\right\}\right) \right\}$$ विफलताओं / विचलन मॉडल आगे विचलन (कंप्यूटर विज्ञान) को संभालने के लिए विफलताओं के मॉडल का विस्तार करता है। विफलताओं/विचलन मॉडल में एक प्रक्रिया का शब्दार्थ एक जोड़ी है $$\left(\mathrm{failures}_\perp\left(P\right), \mathrm{divergences}\left(P\right)\right)$$ जहाँ $$\mathrm{divergences}\left(P\right)$$ सभी निशानों के समुच्चय के रूप में परिभाषित किया गया है जो अलग-अलग व्यवहार और $$\mathrm{failures}_\perp\left(P\right) = \mathrm{failures}\left(P\right) \cup \left\{\left(s,X\right) \mid s \in \mathrm{divergences}\left(P\right)\right\}$$ जन्म दे सकता है |

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

सबसे प्रसिद्ध सीएसपी उपकरण शायद फेल्योर/डाइवर्जेंस रिफाइनमेंट 2 (एफडीआर2) है, जो फॉर्मल सिस्टम्स (यूरोप) लिमिटेड द्वारा विकसित वाणिज्यिक उत्पाद है। एफडीआर2 को अक्सर  मॉडल चेकर के रूप में वर्णित किया जाता है, किन्तु तकनीकी रूप से इसमें एक शोधन जांचकर्ता है। यह दो सीएसपी प्रक्रिया अभिव्यक्तियों को लेबल किए गए संक्रमण प्रणाली (एलटीएस) में परिवर्तित करता है, और फिर यह निर्धारित करता है कि प्रक्रियाओं में से  कुछ निर्दिष्ट सिमेंटिक मॉडल (निशान, विफलताओं, या विफलताओं/विचलन) के भीतर दूसरे का परिशोधन है या नहीं। FDR2 राज्य-स्थान के आकार को कम करने के लिए एलटीएस प्रक्रिया के लिए विभिन्न राज्य-स्थान संपीड़न एल्गोरिदम प्रयुक्त करता है जिसे शोधन जांच के समय खोजा जाना चाहिए। FDR2 को FDR3 द्वारा सफल किया गया है,  पूरी तरह से फिर से लिखा गया संस्करण है जिसमें समानांतर निष्पादन और  एकीकृत प्रकार चेकर सम्मिलित है। यह ऑक्सफोर्ड विश्वविद्यालय द्वारा जारी किया गया है, जिसने 2008-12 की अवधि में FDR2 भी जारी किया था। एडिलेड शोधन परीक्षक (एआरसी) एडीलेड विश्वविद्यालय में औपचारिक मॉडलिंग और सत्यापन समूह द्वारा विकसित सीएसपी शोधन परीक्षक है। ARC, FDR2 से इस मायने में भिन्न है कि यह आंतरिक रूप से सीएसपी प्रक्रियाओं को  द्विआधारी निर्णय आरेख  (OBDDs) के रूप में प्रस्तुत करता है, जो राज्य-अंतरिक्ष संपीड़न एल्गोरिदम जैसे कि FDR2 में उपयोग किए जाने वाले एल्गोरिदम के उपयोग की आवश्यकता के बिना स्पष्ट LTS अभ्यावेदन की राज्य विस्फोट समस्या को कम करता है।

प्रोबी परियोजना, जिसे Institut für Informatik, Heinrich-Heine-Universität Düsseldorf द्वारा होस्ट किया जाता है, मूल रूप से B विधि में निर्मित विनिर्देशों के विश्लेषण का समर्थन करने के लिए बनाया गया था। चूँकि, इसमें परिशोधन जांच और रैखिक लौकिक तर्क मॉडल-जांच दोनों के माध्यम से सीएसपी प्रक्रियाओं के विश्लेषण के लिए समर्थन भी सम्मिलित है। ProB का उपयोग संयुक्त सीएसपी और B विनिर्देशों के गुणों को सत्यापित करने के लिए भी किया जा सकता है। एक ProBE सीएसपी एनिमेटर FDR3 में एकीकृत है।

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

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

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

संबंधित औपचारिकताएं
कई अन्य विनिर्देशन भाषाएं और औपचारिकताएं क्लासिक असमय सीएसपी से, या उससे प्रेरित होकर प्राप्त की गई हैं, जिनमें सम्मिलित हैं: टेम्पोरल ऑर्डरिंग विशिष्टता की भाषा भाषा, अंतरराष्ट्रीय मानक जिसमें सीएसपी और कम्युनिकेटिंग सिस्टम्स की कैलकुलस की विशेषताएँ सम्मिलित हैं।
 * समयबद्ध सीएसपी, जिसमें रीयल-टाइम प्रणाली के बारे में तर्क करने के लिए समय संबंधी जानकारी सम्मिलित है
 * रिसेप्टिव प्रोसेस थ्योरी, सीएसपी की विशेषज्ञता जो एसिंक्रोनस (यानी गैर-अवरुद्ध एल्गोरिदम ) सेंड ऑपरेशन मानती है
 * CSPP
 * एचसीएसपी
 * TCOZ, समयबद्ध सीएसपी और ऑब्जेक्ट जेड का एकीकरण
 * Circus, प्रोग्रामिंग के एकीकृत सिद्धांतों पर आधारित सीएसपी और Z विनिर्देश भाषा का एकीकरण
 * सीएमएल (कम्पास मॉडलिंग लैंग्वेज), Circus और VDM विनिर्देश भाषा का  संयोजन विकसित किया गया है। प्रणाली की प्रणाली (एसओएस) की मॉडलिंग
 * CspCASL, सामान्य बीजगणितीय विशिष्टता भाषा का विस्तार जो एकीकृत करता है सीएसपी
 * PALPS, अन्ना फिलिपो द्वारा विकसित पारिस्थितिक मॉडल के लिए स्थानों के साथ संभावित विस्तार और Mauricio toro bermúdez

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

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

पुरस्कार
1990 में, "तकनीकी उपलब्धि के लिए एलिज़ाबेथ द्वितीय का पुरस्कार ... ऑक्सफोर्ड यूनिवर्सिटी कंप्यूटिंग प्रयोगशाला में प्रदान किया गया है। [ऑक्सफोर्ड यूनिवर्सिटी] कंप्यूटिंग प्रयोगशाला। यह पुरस्कार प्रयोगशाला और इनमोस लिमिटेड के बीच सफल सहयोग को मान्यता देता है। ... इनमोस का प्रमुख उत्पाद 'ट्रांसप्यूटर' है,  माइक्रोप्रोसेसर जिसमें कई पुर्जे होते हैं जिन्हें सामान्य रूप से एक ही इलेक्ट्रॉनिक घटक में निर्मित करने की आवश्यकता होती है। टोनी होरे के अनुसार, "INMOS ट्रांसप्यूटर विचारों के अवतार के रूप में था ... माइक्रोप्रोसेसरों के निर्माण के लिए जो एक दूसरे के साथ तारों के साथ संचार कर सकते थे जो उनके टर्मिनलों के बीच फैलेंगे। संस्थापक की दृष्टि थी कि सीएसपी के विचार औद्योगिक शोषण के लिए परिपक्व थे, और उन्होंने प्रोग्रामिंग ट्रांसप्यूटर्स के लिए भाषा का आधार बनाया, जिसे ओकैम (प्रोग्रामिंग भाषा) कहा जाता था। … कंपनी का अनुमान है कि इससे उन्हें एक साल पहले हार्डवेयर देने में मदद मिली, अन्यथा ऐसा नहीं होता। उन्होंने ऑक्सफोर्ड यूनिवर्सिटी कंप्यूटिंग प्रयोगशाला के संयोजन के साथ तकनीकी उपलब्धि के लिए रानी का पुरस्कार जीता और आवेदन किया।

यह भी देखें

 * ट्रेस सिद्धांत, निशान का सामान्य सिद्धांत।
 * ट्रेस मोनोइड और इतिहास मोनोइड
 * एडा (प्रोग्रामिंग भाषा)
 * एक्ससी प्रोग्रामिंग भाषा
 * वेरिलॉगसीएसपी मैक्रो (कंप्यूटर विज्ञान)  का एक समुच्चय है जो वेरिलॉग एचडीएल में जोड़ा गया है जिससे अनुक्रमिक प्रक्रियाओं चैनल संचार संचार का समर्थन किया जा सके।
 * जॉयस (प्रोग्रामिंग भाषा) सीएसपी के सिद्धांतों पर आधारित  प्रोग्रामिंग लैंग्वेज है, जिसे 1989 के आसपास ब्रिनच हैनसेन द्वारा विकसित किया गया था।
 * सुपरपास्कल प्रोग्रामिंग लैंग्वेज है जिसे ब्रिन्च हैनसेन द्वारा विकसित किया गया है, जो सीएसपी और जॉयस (प्रोग्रामिंग लैंग्वेज) के साथ उनके पहले के काम से प्रभावित है।
 * एडा (प्रोग्रामिंग लैंग्वेज) सीएसपी की सुविधाओं को प्रयुक्त करता है जैसे कि मिलन स्थल।
 * डायरेक्टशो डायरेक्टएक्स के अंदर वीडियो ढांचा है, यह ऑडियो और वीडियो फिल्टर को प्रयुक्त करने के लिए सीएसपी अवधारणाओं का उपयोग करता है।
 * OpenCom[[RTOS]] औपचारिक रूप से विकसित नेटवर्क-केंद्रित वितरित RTOS है जो सीएसपी के व्यावहारिक सुपरसेट पर आधारित है।
 * इनपुट / आउटपुट ऑटोमेटन
 * समानांतर प्रोग्रामिंग मॉडल
 * TLA+ समवर्ती प्रणालियों के मॉडलिंग और सत्यापन के लिए अन्य औपचारिक भाषा है।

अग्रिम पठन

 * This book has been updated by Jim Davies at the Oxford University Computing Laboratory and the new edition is available for download as a PDF file at the Using सीएसपी website.
 * Some links relating to this book are available here. The full text is available for download as a PS or PDF file from Bill Roscoe's list of academic publications.
 * Some links relating to this book are available here. The full text is available for download as a PS or PDF file from Bill Roscoe's list of academic publications.
 * Some links relating to this book are available here. The full text is available for download as a PS or PDF file from Bill Roscoe's list of academic publications.

बाहरी संबंध

 * A PDF version of Hoare's सीएसपी book – Copyright restriction apply, see the page text before downloading.
 * The Annotation of सीएसपी(Chinese Version) Non-profit translation and annotation work based on Prentice-Hall book(1985), Chaochen Zhou's Chinese Version(1988) and Jim Davies's online version(2015).
 * WoTUG, a User Group for सीएसपी and occam style systems, contains some information about सीएसपी and useful links.
 * सीएसपी Citations from साइटसीर