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

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

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

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

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

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

यह भी देखें

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