मल्टीप्रोग्रामिंग और मल्टीटास्किंग में क्या अंतर है


10

मुझे मल्टीप्रोग्रामिंग और मल्टीटास्किंग के बीच स्पष्ट रूप से अंतर करना मुश्किल हो रहा है।

मेरा प्राथमिक स्रोत विकिपीडिया रहा है , लेकिन WP लेख कुछ कम सम्मानित स्रोतों (जैसे मेरे कॉलेज के प्रोफेसर) के साथ एक छोटा सा लगता है।

जैसा कि मैंने WP पढ़ा, मल्टीप्रोग्रामिंग सीपीयू थ्रूपुट को बढ़ाने का एक अल्पविकसित तरीका है, संदर्भ-स्विच द्वारा जब कोई प्रक्रिया I / O की प्रतीक्षा करती है।

मल्टीप्रोग्रामिंग कोई गारंटी नहीं देता है कि एक कार्यक्रम समय पर चलेगा। वास्तव में, बहुत पहले कार्यक्रम एक परिधीय तक पहुंच की आवश्यकता के बिना बहुत अच्छी तरह से घंटों तक चल सकता है।

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

प्रीमेप्टिव मल्टीटास्किंग शेड्यूलिंग का अधिक आक्रामक नियंत्रण लेता है, दूसरों पर कुछ प्रक्रियाओं को प्राथमिकता देता है, आदि।

  1. क्या यह अवलोकन सही है? यदि ऐसा नहीं है, क्योंकि WP गलत है या इसलिए कि मैंने WP गलत पढ़ा है?
  2. बहु स्रोत और मल्टीटास्किंग को भ्रमित करने के लिए कुछ स्रोत क्यों प्रतीत होते हैं?

1
"कुछ कम सम्मानित स्रोतों (जैसे मेरे कॉलेज के प्रोफेसर) के साथ" - ओह प्रिय। मुझे उम्मीद है कि वह विकिपीडिया की तुलना में अधिक प्रतिष्ठित है, जिसमें सीएस पर बहुत सी आधी-अधूरी सामग्री है।
राफेल

"मल्टीप्रोग्रामिंग" अधिक ऐतिहासिक दृष्टिकोण लगता है। आधुनिक मल्टीटास्किंग वास्तव में IO ब्लॉकिंग से संबंधित है, लेकिन इसके सिर्फ एक ही कारक हैं जो प्रक्रियाओं को टकराने के लिए उपयोग किए जाते हैं। इसके अलावा लगभग सभी आधुनिक मल्टीटास्किंग सीपीयू (जो हमेशा उस समर्थन साल पहले नहीं है और अच्छी तरह से व्यवहार प्रक्रियाओं OS- आधारित प्रतीक्षा विधियों कि सहयोग का समर्थन करने वाले थे) को समर्थन करने के साथ निवारक है।
vzn

2
@ राफेल, आप पूरे विश्व को पूर्णता के लिए बेक करके एक एहसान कर सकते हैं।
वॉनब्रांड

1
@vonbrand मैंने कोशिश की, लेकिन दुर्भाग्य से इस तरह के प्रयासों को पूरा करने के लिए पर्याप्त आधे पके हुए विशेषज्ञ हैं।
राफेल

@ राफेल, और वह भीड़ यहां भी दिखाई नहीं देती है?
वॉनब्रांड

जवाबों:


9

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

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

यह विचार एक साथ स्मृति में रहने वाले कई कार्यक्रमों का है, ताकि जब सीपीयू की पैदावार (खत्म या प्रतीक्षा करके) हो, तो सीपीयू का उपयोग करने के लिए अन्य तैयार हैं, इस प्रकार सीपीयू उपयोग में वृद्धि (और जैसा कि आप विचार कर सकते हैं कि प्रत्येक सीपीयू फट हो सकता है) I / O के उपयोग की तैयारी, समग्र उपयोग में वृद्धि)। यह बेहतर थ्रूपुट (बैच सिस्टम में महत्वपूर्ण) देता है।

समय साझा करने के साथ, कई इंटरैक्टिव उपयोगकर्ता मशीन से जुड़े। एक ही विचार, उनके कार्यक्रमों को इधर-उधर रखें लेकिन उनके बीच तेजी से स्विच करें ताकि उन्हें "खुद के लिए एक कंप्यूटर" होने का भ्रम हो। एक टाइमर की आवश्यकता होती है जो एकाधिकार से बचने के लिए सीपीयू को बाधित करता है।

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


WP लेख का अर्थ है कि मल्टीग्राउमिंग में वर्चुअल मेमोरी का अभाव है, जैसा कि मल्टीटास्किंग (सिस्टम) के विपरीत है। ऐतिहासिक रूप से यह सच हो सकता है, लेकिन क्या परिभाषा ऑर्थोगोनल है?

1
हमारे यहां 70 के दशक में एक आईबीएम एस / 370 था, और इसमें निश्चित रूप से आभासी मेमोरी नहीं थी (मुझे लगता है कि यह याद है कि इसमें केवल स्पूलिंग के लिए उपयोग की गई डिस्क थी)। वर्चुअल मेमोरी आपको सीमित रैम में और भी अधिक कार्यक्रम करने की अनुमति देती है (जैसा कि आप केवल "सबसे अधिक उपयोग किए जाने वाले" भागों को हाथ में रख रहे हैं), यहां तक ​​कि बेहतर उपयोग भी। तो हां, मैं उन लोगों को पूरी तरह से स्वतंत्र मानता हूं; लेकिन व्यवहार में आज आप एक के बिना दूसरे को नहीं पाएंगे। शायद आपके वाईफाई राउटर या सेलफोन को छोड़कर ...
vonbrand

ठीक है। मैंने भी ऐसा सोचा था। एंबेडेड सिस्टम वास्तव में अक्सर उचित स्मृति संरक्षण की कमी होती है, मुझे इस बात की जानकारी थी। फिर भी, अच्छी तरह से व्यवहार किए गए कार्यक्रमों के साथ यह एक समस्या नहीं होनी चाहिए। बेशक, यह कार्यक्रम विक्रेताओं पर निर्भर करता है।

@ डिडिएर ऑर्थोगोनल? आप पारस्परिक रूप से अनन्य अधिकार का मतलब है?
jsj

2

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


0

मल्टीटास्किंग और मल्टीप्रोग्रामिंग के बीच बहुत अंतर हैं।

मल्टीटास्किंग एक समय में एक कार्य को अधिक निष्पादित कर रहा है। उदाहरण के लिए, आप एक गीत सुन रहे हैं, एक पेपर प्रिंट कर रहे हैं, और एक ही समय में एमएस-वर्ड टाइप कर रहे हैं।

मल्टीप्रोग्रामिंग करते समय, इस प्रकार के ओएस में, हम बफरिंग और स्पूलिंग का उपयोग करके सीपीयू उपयोग में सुधार करते हैं। अनुक्रमिक निष्पादन में, सीपीयू किसी प्रोग्राम को निष्पादित करने के बाद बेकार बैठता है और अगले प्रोग्राम को मुख्य मेमोरी से लोड करता है। I / o ऑपरेशन्स के दौरान cpu भी idel बैठता है, CPU भी बेकार बैठता है, लेकिन एक मल्टीप्रोग्रामिंग वातावरण का उपयोग करते हुए, CPU अगले प्रोग्राम पर स्विच करता है और इसे प्रोसेस करता है। यह एक तकनीक है जिसका उपयोग बफरिंग और स्पूलिंग की मदद से किया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.