किसी एनवायरनमेंट में कार्य करते समय कम्प्यूटर के संसाधनों का प्रभावी ढंग से उपयोग करने और प्रोग्रामर के आऊटपुट में सुधार लाने सम्बन्धी बंदिशें होती हैं। जब हम टेप्स के साथ कार्य कर रहे होते हैं तब बड़ी मात्रा में CPU का समय व्यर्थ जाता है अथवा जब यूजर इनपुट आऊटपुट डिवाइस के साथ कार्य कर रहा होता है, तब भी बड़ी मात्रा में CPU का समय व्यर्थ जाता है। CPU के पास कोई कार्य नहीं होता है।
अतः समान आवश्यकताओं वाले जॉब का एक समूह बनाया गया और कम्प्यूटर में एक समूह के रूप में ही इन्हें चलाया गया। उदाहरण के लिये, मान ले कि ऑपरेटर एक C प्रोग्राम, एक कोबोल प्रोग्राम और एक अन्य C प्रोग्राम प्राप्त करता है। यदि वह प्रोग्राम इसी क्रम में चलाता है, तो उसे पहले C प्रोग्राम के लिए कम्पाईलर टेप्स सेट करने होगे, फिर कोबोल प्रोग्राम के लिए और अंत में फिर C प्रोग्राम के लिये। यदि वह C प्रोग्राम को एक समूह के रूप में चलाता है तो उसे C के लिए एक ही बार प्रोग्राम सेट करना होंगे और इस तरह ऑपरेटर का समय भी बच जाएगा ।
समान जॉबस के लिए समूह की मदद से सिस्टम के रिसोर्सेस का बेहतर उपयोग किया जा सकता है। परंतु इसमें भी कुछ समस्याएँ थी। एक जॉब से दूसरे जॉब में परिवर्तन के समय, पुनः CPU के पास कोई काम नहीं था।
CPU के इस अतिरिक्त समय का उपयोग करने के लिये रेसीडेन्ट मोनिटर के नाम से एक छोटा प्रोग्राम बनाया गया, जो हमेशा मेमोरी में स्थित रहता है। यह स्वतः ही जॉब को क्रमबद्ध कर देता है। प्रोग्रामर द्वारा कन्ट्रोल कार्ड के माध्यम से दिये गए निर्देशों के अनुसार रेसीडेन्ट मोनिटर कार्य करता है। इन कन्ट्रोल कार्ड में जॉब का प्रारंभ एवं अंत, प्रोग्राम को लोड करने और एक्जिक्यूट करने संबंधी कमांड की जानकारियाँ होती हैं। ये कमांड्स जॉब नियंत्रण लैंग्वेज से संबंधित होती हैं। ये जॉब कंट्रोल लैंग्वेज कमांड्स युज़र प्रोग्राम और डाटा के साथ शामिल होते हैं।
बेच प्रोसेसिंग पद्धति की कमियाँ:
1. सी.पी.यू. का पूर्ण उपयोग नहीं होता है क्योंकि तेज गति CPU & slow I/O सी.पी.यू. और कम गति के ऑपरेटिंग सिस्टम डिवाइस की गति भिन्न होती हैं ।
2. यह उपयोगकर्ता (युज़र) के लिये सहायक नहीं होता है। जॉब को कम्प्यूटर में डालने के बाद युज़र को परिणाम पाने के लिए लम्बे समय तक इंतजार करना पड़ता है।
3. यदि जॉब के एक्जिक्यूट होते समय कोई त्रुटि आती है, तो उसे सभी जॉब के पूरा होने के बाद ही खोजा जा सकता है ।
4. कम्प्यूटर रिसोर्सेस का पूर्ण उपयोग नहीं ।
5. जॉब क्रम की अनिवार्यता ।
उपरोक्त कमियों का समाधान:
इनपुट / आउटपुट ओवरलेपिंग तथा प्रोसेसिंग द्वारा सिस्टम की कार्यक्षमता बढ़ाने के दो तरीके हैं – 1. बफरींग 2. स्पूलिंग
(1) बफरींग – बफरींग एक सिंगल जॉब प्रोसेसिंग और IVO ओवरलेपिंग की प्रक्रिया है। डाटा को पढ़ने के बाद जैसे ही CPU इसके अनुसार कार्य करना प्रारंभ करता है, वैसे ही तत्काल इनपुट डिवाइस को अगली I/P प्रारंभ करने के निर्देश दिये जाते हैं। जिस समय सी.पी.यू. अगले डाटा को पढ़ने के लिए तैयार होगा, तब तक I/P डिवाइस इसे पढ़ चुका होगा। इस प्रकार CPU इस नए डाटा को पढ़कर इस पर कार्य करना प्रारंभ करेगा, जबकि I/P डिवाइस अंगले डाटा को पढ़ना शुरू कर देगा । यही प्रक्रिया O/P के लिये भी की जा सकती है। इस स्थिति में; सी.पी.यू. जो डाटा निर्मित करता है उसको एक बफ़र में तब तक रखा जाता है, जब तक कि O/P डिवाइस इसे स्वीकार न कर ले।
(2) स्पूलिंग – इस प्रक्रिया के अंतर्गत कार्ड के जॉब को सीधे डिस्क पर पढ़ा जाता है और उस डिस्क में कार्ड को लेकोशन को ऑपरेटिंग सिस्टम के द्वारा एक टेबल में रिकॉर्ड किया जाता है। जब प्रोग्राम को चलाने के लिए जॉब को आवश्यकता होती है, तब इसे डिस्क से पढ़ लिया जाता है।
इसी तरह, जब जॉब को एक लाइन के आउटपुट के रूप में निकालने के लिये एक प्रिंटर की आवश्यकता होती है। तब उस लाइन विशेष को डिस्क तथा सिस्टम बफ़र पर कॉपी कर लिया जाता है और इस तरह जॉब पूरा होते ही डिस्क से आउटपुट पढ़ लिया जाता है और प्रिंटर से प्रिंट निकल जाती है।
स्पुलिंग के माध्यम से डिस्क के साथ एक से अधिक इन पूट तथा आउट पूट डिवाइस कार्य कर सकती है। इन डिवाइसेस का संबंध सीधे सी.पी.यू. के साथ होता है, इसलिये इसे समान्तर ऑन लाइन पेरीफ्रेल ऑपरेशन कहा जाताहै।
स्पूलिंग से निश्चित रूप से सिस्टम की कार्यक्षमता बढ़ती है। स्पूलिंग में विशेष रूप से कुछ डिस्क स्पेस तथा कुछ टेबल्स् होती हैं, परंतु यह सी.पी.यू. और IVO डिवाइस को अधिक-से-अधिक व्यस्त रखती हैं ।
मल्टीप्रोग्रामिंग | Multiprogramming:
डिस्क तकनीक के आने से ऑपरेटिंग सिस्टम सभी जॉब्स को एक ही डिस्क पर रख सकता है । रिसोर्सेस का उपयोग करके और कार्य को अच्छी तरह पूरा करने के लिए ऑपरेटिंग सिस्टम जॉब शेड्यूलींग कर सकता है और इस तरह कई जॉब्स एक्सेस कर सकता है। जॉब शेड्यूलींग का एक महत्वपूर्ण कारक मल्टिप्रोग्राम की क्षमता है। मल्टिप्रोग्रामिंग से सी.पी.यू. की उपयोगिता इतनी बढ़ जाती है कि उसके पास एक्जिक्यूट करने के लिए हमेशा एक जॉब होता है । यह तथ्य इस तरह कार्यान्वित होता है :
ऑपरेटिंग सिस्टम कई जॉब्स को मेमोरी में रखता है। ऑपरेटिंग सिस्टम मेमोरी से एक जॉब लेता है और इसे एक्जिक्यूट करना शुरू करता है। जॉब एक्जिक्यूट होते समय कुछ कार्यों के लिये समय भी ले सकता है, जैसे कि DO ऑपरेशन का पूरा होना। ऐसी स्थिति में नॉन-मल्टिप्रोग्राम के सिस्टम में, सी.पी.यू. के पास कोई कार्य नहीं होगा। परंतु एक मल्टिप्रोग्राम सिस्टम में ऑपरेटिंग सिस्टम दूसरे जॉब पर जाकर उसे एक्जिक्यूट करना शुरू कर देगा।
मल्टिप्रोग्रामिंग के लाभ:
(1) सी.पी.यू. के फ्री समय का उपयोग कर उससे अधिक कार्य लेना ।
(2) एक साथ कई जॉब्स एक्जिक्यूट कर सकना ।
मल्टिप्रोग्रामिंग से हानियाँ:
(1) युजर प्रोग्राम के एक्जिक्यूट होते समय अपने प्रोग्राम में कोई फेरबदल नहीं कर सकता है अर्थात् यह प्रोग्राम के समय कोई अन्य आन्तरिक क्रिया नहीं होने देता है ।
(2) युजर को रिजल्ट प्राप्त करने के लिए लम्बे समय तक इंतजार करना पड़ता है।