मल्टीप्रोग्रामिंग सिस्टम

मल्टीप्रोग्रामिंग प्रणाली  या ओएस कंप्यूटर ऑपरेटिंग  प्रणाली  के रूप में है, जिसे एड्सगर डब्ल्यू डिज्क्स्ट्रा के नेतृत्व वाली एक टीम द्वारा डिजाइन किया गया था, जिसका वर्णन 1965-66 में मोनोग्राफ में किया गया था। और 1968 में प्रकाशित किया गया था। दिज्क्स्ट्रा ने कभी भी इस प्रणाली का नाम नहीं रखा था; यह केवल टेक्नीश होगेस्कूल आइंडहोवेन का संक्षिप्त रूप है, जो नीदरलैंड के आइंडहोवन प्रौद्योगिकी विश्वविद्यालय का डच भाषा में नाम है। यह प्रणाली मुख्य रूप से एक बैच प्रणाली के रूप में थी जो कंप्यूटर मल्टीटास्किंग का समर्थन करता है और इसे बहु-उपयोगकर्ता ऑपरेटिंग  प्रणाली  के रूप में डिज़ाइन नहीं किया गया था। यह बहुत सीमा तक SDS 940 जैसा था, लेकिन  प्रणाली  में प्रक्रियाओं (कंप्यूटिंग) का सेट स्थिर था।

प्रणाली ने स्पष्ट रूप से सॉफ़्टवेयर-आधारित  स्मृति पृष्ठ   आभासी मेमोरी  का पहला रूप पेश किया (इलेक्ट्रोलॉजिका X8 मेमोरी प्रबंधन इकाई | हार्डवेयर-आधारित मेमोरी प्रबंधन का समर्थन नहीं करता था), प्रोग्रामों को ड्रम मेमोरी पर भौतिक स्थानों का उपयोग करने के लिए बाध्य होने से मुक्त करना। इसने  प्रणाली  कॉल को स्वचालित रूप से उत्पन्न करने के लिए एक संशोधित ALGOL  संकलक  (डिज्क्स्ट्रा के  प्रणाली  द्वारा समर्थित एकमात्र प्रोग्रामिंग भाषा) का उपयोग करके ऐसा किया, जिससे यह सुनिश्चित हो गया कि अनुरोधित जानकारी मेमोरी में थी, यदि आवश्यक हो तो मेमोरी को स्वैप करें। पृष्ठांकित वर्चुअल मेमोरी का उपयोग डेटा बफ़र इनपुट/आउटपुट (I/O) डिवाइस डेटा, और ऑपरेटिंग  प्रणाली  कोड के एक महत्वपूर्ण हिस्से और लगभग सभी ALGOL 60 कंपाइलर के लिए भी किया गया था। इस प्रणाली में, सेमाफोर (प्रोग्रामिंग) का उपयोग पहली बार प्रोग्रामिंग निर्माण के रूप में किया गया था।

डिज़ाइन
मल्टीप्रोग्रामिंग प्रणाली  का डिज़ाइन मतिहीनता के उपयोग के लिए महत्वपूर्ण है, जिसमें उच्च परतें केवल निचली परतों पर निर्भर करती हैं:
 * लेयर 0 ऑपरेटिंग प्रणाली  के मल्टीप्रोग्रामिंग पहलुओं के लिए जिम्मेदार था। इसने तय किया कि कौन सी प्रक्रिया केंद्रीय प्रसंस्करण इकाई (सीपीयू) को आवंटित की गई थी, और उन प्रक्रियाओं के लिए जिम्मेदार थी जो सेमाफोर (प्रोग्रामिंग) पर अवरुद्ध थीं। जब प्रक्रिया में बदलाव की आवश्यकता होती है तो यह व्यवधानों से निपटता है और संदर्भ स्विच करता है। यह सबसे निचला स्तर है. आधुनिक शब्दों में, यह अनुसूचक था।
 * परत 1 मेमोरी प्रबंधन से लेकर प्रक्रियाओं तक से संबंधित थी। आधुनिक शब्दों में यह पेजर था।
 * परत 2 ऑपरेटिंग प्रणाली  और  प्रणाली  कंसोल के बीच संचार से संबंधित है।
 * परत 3 कंप्यूटर से जुड़े उपकरणों के बीच सभी I/O को प्रबंधित करती है। इसमें विभिन्न उपकरणों से बफ़रिंग जानकारी शामिल थी।
 * परत 4 में उपयोगकर्ता स्थान शामिल है। वहाँ 5 प्रक्रियाएँ थीं: कुल मिलाकर, उन्होंने उपयोगकर्ता कार्यक्रमों के कंपाइलर, निष्पादन (कंप्यूटिंग), और प्रिंटर (कंप्यूटिंग) को संभाला। समाप्त होने पर, वे शेड्यूल क्यू (अमूर्त डेटा प्रकार) पर वापस प्रवाह को नियंत्रित करते हैं, जो प्राथमिकता कतार | प्राथमिकता-आधारित था, हाल ही में शुरू की गई प्रक्रियाओं और I/O के कारण अवरुद्ध हुई प्रक्रियाओं का समर्थन करता है।
 * परत 5 उपयोगकर्ता था; जैसा कि डिज्क्स्ट्रा नोट करता है, हमारे द्वारा लागू नहीं किया गया है।

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

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

यह भी देखें

 * आरसी 4000 मल्टीप्रोग्रामिंग प्रणाली
 * रिंग (कंप्यूटर सुरक्षा)
 * ऑपरेटिंग प्रणाली  की टाइमलाइन