C.mmp
C.mmp एक प्रारंभिक एकाधिक निर्देश, एकाधिक डेटा (MIMD) मल्टीप्रोसेसर प्रणाली थी जिसे विलियम वुल्फ (1971) द्वारा कार्नेगी मेलन विश्वविद्यालय (CMU) में विकसित किया गया था। संकेतन C.mmp गॉर्डन बेल और एलन नेवेल के पीएमएस संकेतन से आया था, जहाँ एक केंद्रीय प्रसंस्करण इकाई (सीपीयू) को सी के रूप में नामित किया गया था, एक संस्करण को डॉट संकेतन द्वारा नोट किया गया था, और एमएमपी मल्टी-मिनी-प्रोसेसर के लिए खड़ा था। मशीन सी. एम. यू. में, वीन हॉल में, नौवीं मंजिल पर प्रदर्शित है। संरचना सोलह डिजिटल उपकरण निगम पी. डी. पी.-11 लघु कंप्यूटरों का उपयोग प्रसंस्करण तत्वों के रूप में किया गया था, जिन्हें प्रणाली में कंप्यूट मॉड्यूल (सी. एम.) नाम दिया गया था। प्रत्येक सीएम के पास 8के की स्थानीय मेमोरी और परिधीय उपकरणों का एक स्थानीय सेट था। एक चुनौती यह थी कि एक उपकरण केवल अपने अद्वितीय जुड़े हुए प्रोसेसर के माध्यम से उपलब्ध था, इसलिए इनपुट/आउटपुट (आई/ओ) प्रणाली (रॉय लेवियन द्वारा डिजाइन की गई) ने उपकरणों की कनेक्टिविटी को छिपा दिया और अनुरोधों को होस्टिंग प्रोसेसर को भेज दिया। यदि कोई प्रोसेसर डाउन हो जाता है, तो उसके यूनिबस से जुड़े उपकरण अनुपलब्ध हो जाते हैं, जो समग्र प्रणाली विश्वसनीयता में एक समस्या बन जाती है। प्रोसेसर 0 (बूट प्रोसेसर) में डिस्क ड्राइव संलग्न थे। प्रत्येक कंप्यूट मॉड्यूल ने इन संचार मार्गों को साझा कियाः एक इंटरप्रोसेसर बस-जिसका उपयोग सीएम के ए 16x16 क्रॉसबार स्विच के बीच सिस्टम-वाइड क्लॉक, इंटरप्ट और प्रोसेस कंट्रोल मैसेजिंग को वितरित करने के लिए किया जाता था-जिसका उपयोग एक तरफ 16 सीएम और दूसरी तरफ साझा मेमोरी के 16 किनारों को जोड़ने के लिए किया जाता था। यदि सभी 16 प्रोसेसर मेमोरी के विभिन्न किनारों तक पहुँच रहे थे, तो मेमोरी एक्सेस सभी समवर्ती होंगे। यदि दो या दो से अधिक प्रोसेसर स्मृति के एक ही तट तक पहुँचने का प्रयास कर रहे थे, तो उनमें से एक को एक चक्र पर पहुँच दी जाएगी और शेष को बाद के स्मृति चक्रों पर बातचीत की जाएगी। चूंकि पी. डी. पी.-11 में 16-बिट का तार्किक पता स्थान था, इसलिए साझा स्मृति स्थान के लिए पता स्थान को 25 बिट तक बढ़ाने के लिए एक और पता अनुवाद इकाई जोड़ी गई थी। यूनिबस वास्तुकला ने भौतिक पते के 18 बिट्स प्रदान किए, और दो उच्च-क्रम बिट्स का उपयोग चार स्थानांतरण रजिस्टरों में से एक का चयन करने के लिए किया गया था जो स्मृति के एक बैंक का चयन करते थे। इन रजिस्टरों को ठीक से प्रबंधित करना ऑपरेटिंग सिस्टम (ओएस) कर्नेल की प्रोग्रामिंग की चुनौतियों में से एक था। मूल C.mmp डिजाइन में चुंबकीय-कोर मेमोरी का उपयोग किया गया था, लेकिन अपने जीवनकाल के दौरान, उच्च प्रदर्शन गतिशील यादृच्छिक-अभिगम मेमोरी (RAM) उपलब्ध हो गई और सिस्टम को उन्नत किया गया। मूल प्रोसेसर पी. डी. पी.-11/20 प्रोसेसर थे, लेकिन अंतिम प्रणाली में, इनमें से केवल पांच का उपयोग किया गया था; शेष 11 पी. डी. पी.-11/40 प्रोसेसर थे, जिन्हें अतिरिक्त लिखने योग्य माइक्रोकोड स्थान देकर संशोधित किया गया था। इन मशीनों में सभी संशोधन सीएमयू में डिजाइन और बनाए गए थे। अधिकांश 11/20 संशोधन तार-लिपटे बैकप्लेन में कस्टम परिवर्तन थे, लेकिन क्योंकि पीडीपी-11/40 को माइक्रोकोड में लागू किया गया था, एक अलग प्रोक-मॉड बोर्ड बनाया गया था जो कुछ निर्देशों को रोकता था और संरक्षित ऑपरेटिंग सिस्टम आवश्यकताओं को लागू करता था। उदाहरण के लिए, यह आवश्यक था, ऑपरेटिंग सिस्टम की अखंडता के लिए, कि स्टैक पॉइंटर रजिस्टर कभी भी विषम न हो। 11/20 पर, यह स्टैक रजिस्टर के लो-ऑर्डर बिट पर लीड को क्लिप करके किया गया था। 11/40 पर, प्रोक-मॉड बोर्ड द्वारा स्टैक तक किसी भी पहुंच को रोक दिया गया था और यदि निम्न-क्रम बिट 1 था तो एक अवैध डेटा एक्सेस ट्रैप उत्पन्न किया गया था। ऑपरेटिंग सिस्टम (ओएस) को हाइड्रा नाम दिया गया था। यह क्षमता-आधारित, वस्तु-उन्मुख, बहु-उपयोगकर्ता और एक माइक्रोकर्नल था। प्रणाली संसाधनों को वस्तुओं के रूप में दर्शाया गया था और क्षमताओं के माध्यम से संरक्षित किया गया था। ओएस और अधिकांश अनुप्रयोग सॉफ्टवेयर प्रोग्रामिंग भाषा बी. एल. आई. एस. एस.-11 में लिखे गए थे, जिसके लिए पी. डी. पी.-10 पर क्रॉस-संकलन की आवश्यकता थी। ओएस बहुत कम असेंबली भाषा का उपयोग करता था। सिस्टम पर उपलब्ध प्रोग्रामिंग भाषाओं में एक ALGOL 68 संस्करण था जिसमें C.mmp का अच्छा उपयोग करने के लिए समानांतर कंप्यूटिंग का समर्थन करने वाले एक्सटेंशन शामिल थे। एएलजीओएल संकलक हाइड्रा ओएस पर मूल रूप से चलता था। चूंकि समग्र प्रणाली की विश्वसनीयता सभी 16 सीपीयू के चलने पर निर्भर थी, इसलिए समग्र हार्डवेयर विश्वसनीयता के साथ गंभीर समस्याएं थीं। यदि एक प्रोसेसर की विफलताओं (एम. टी. बी. एफ.) के बीच का औसत समय 24 घंटे था, तो समग्र प्रणाली विश्वसनीयता 16/24 घंटे या लगभग 40 मिनट थी। कुल मिलाकर, यह प्रणाली आमतौर पर दो से छह घंटे तक चलती थी। इनमें से कई विफलताएं प्रोसेसर में जोड़े गए कई कस्टम सर्किट में समय की गड़बड़ियों के कारण थीं। हार्डवेयर विश्वसनीयता में सुधार के लिए बहुत प्रयास किया गया था, और जब एक प्रोसेसर उल्लेखनीय रूप से विफल हो रहा था, तो इसे विभाजित कर दिया गया था, और कई घंटों तक निदान चलाया जाता था। जब यह निदान के पहले सेट को पारित कर चुका था, तो इसे एक आई/ओ प्रोसेसर के रूप में वापस विभाजित किया गया था और यह अनुप्रयोग कोड नहीं चलाएगा (लेकिन इसके परिधीय उपकरण अब उपलब्ध थे); इसने निदान को चलाना जारी रखा। यदि यह कई और घंटों के बाद पारित हो जाता है, तो इसे प्रोसेसर सेट के पूर्ण सदस्य के रूप में बहाल कर दिया जाता है। इसी तरह, यदि मेमोरी का एक ब्लॉक (एक पृष्ठ) दोषपूर्ण पाया गया था, तो इसे उपलब्ध पृष्ठों के पूल से हटा दिया गया था, और जब तक अन्यथा सूचित नहीं किया जाता, तब तक ओएस इस पृष्ठ को अनदेखा कर देगा। इस प्रकार, ओएस एक दोष-सहिष्णु प्रणाली का एक प्रारंभिक उदाहरण बन गया, जो अनिवार्य रूप से उत्पन्न होने वाली हार्डवेयर समस्याओं से निपटने में सक्षम था। संदर्भ) क्षमता प्रणालियाँ समान्तर कंप्यूटिंग की गणना का इतिहास