CPU शेड्यूलिंग की मदद से, हम CPU के उपयोग और उपयोगकर्ता के लिये कम्प्यूटर रिस्पांस की गति दोनों में वृद्धि कर सकते हैं। कार्यक्षमता संबंधी इस वृद्धि को समझने के लिये, हमें कई प्रोसेसेस को मेमोरी में रखना होगा तथा मेमोरी को शेयर करना होगा।
ऑपरेटिंग सिस्टम स्टोरेज मैनेजर द्वारा जिन प्रमुख समस्याओं का समाधान खोजा जाता है, वे निम्न हैं:
(1) एक ही समय में कई प्रोसेसेस् को एक्जीक्यूट होने के लिये मेमोरी स्पेस उपलब्ध करवाना ।
(2) सिस्टम यूजर के लिये कार्यक्षमता का संतोषप्रद स्तर उपलब्ध करवाना ।
(3) प्रोसेसेस को एक दूसरे से सुरक्षित रखना ।
(4) प्रोसेसेस के मध्य मेमोरी स्पेस को आवश्यकतानुसार शेयर करना ।
(5) प्रोग्रामर के लिये मेमोरी स्पेस का एड्रेस अधिक से अधिक स्पष्ट या पारदर्शक रखना ।
मेमोरी संगठन | Memory Organization:
मेमोरी ऑर्गेनाइज़ेशन (संगठन) का संबंध उस से है जिसके माध्यम से मुख्य स्टोरेज का अवलोकन कि जाता है। हम मेन स्टोरेज में केवल सिंगल यूजर को al है अथवा हम इसमें एक ही समय में कई यूजर्स को रखने हैं। यदि एक ही समय में मेन स्टोरेज में विभिन्न ज प्रोग्राम्स हैं, तो क्या हम प्रत्येक को समान स्पेस उपलब् करवाएंगे अथवा हम मेन स्टोरेज को विभिन्न आकार के कई भागों में विभाजित करेंगे, जिन्हें पार्टीशन्स कहा जाता है ? क्या हम पार्टीशन कठोरता से करेंगे, जहाँ पार्टीशन विस्तारित समय सीमा को दर्शाता है अथवा हम डायनेमिक पार्टीशन करेंगे ? क्या हम यह चाहते हैं कि यूजर्स एक विशिष्ट पार्टीशन को चलाने में सक्षम हो अथवा क्या हम जॉब को, जहां वे स्थित हैं, वही चलने की अनुमति देते हैं ? क्या हम यह चाहते हैं कि प्रत्येक जॉब स्टोरेज 18C लोकेशन के एक कॉनटिगुअस ब्लॉक में स्थापित हो अथवा क्या हम जॉब को किसी पृथक ब्लाक में भेजना चाहेगे और मेन स्टोरेज की किसी भी उपलब्ध जगह में स्थापित करना चाहेंगे ?
मेमोरी मेनेजमेण्ट:
मेमोरी मेनेजमेण्ट तकनीक यह निर्धारित करती है कि किस प्रकार एक विशिष्ट मेमोरी आर्गनाइजेशन विभिन्न पालिसियों के अन्तर्गत काम करता है। हमें मेमोरी में रखने के लिए नया प्रोग्राम कब मिलता है ? क्या हम इसे सिस्टम की विशेष माँग पर प्राप्त करते हैं अथवा क्या हम सिस्टम की रिक्वेस्ट का पूर्वानुमान लगाते हैं ? मेन स्टोरेज में अगले प्रोग्राम को चलाने के लिए हम इसे कहाँ रखते हैं ? क्या हम प्रोग्राम्स को, उपलब्ध मेमोरी में वेस्टेड स्पेस को कम करने के लिए एक-दूसरे से सटाकर रखते हैं या एक्जिक्यूशन टाइम को कम करने के लिए, हम प्रोग्राम्स को जितनी जल्दी हो सके मेमोरी में रखते हैं ?
यदि हम एक नए प्रोग्राम को मेन मेमोरी में संग्रहीत करना चाहते हैं, परन्तु मेन स्टोरेज में स्थान रिक्त नहीं है, तब इस स्थिति में हमें कौन से प्रोग्राम्स को मेमोरी में से हटाना चाहिए? क्या हमें अधिक पुराने प्रोग्राम्स को हटाना चाहिये अथवा ऐसे प्रोग्राम्स को जिनका उपयोग बहुत कम होता है अथवा ऐसे प्रोग्राम्स को जिनका उपयोग पिछले कुछ समय में बहुत कम हुआ है? मेमोरी स्टोरेज मैनेजमेंट संबंधी इन नीतियों से उपरोक्त प्रश्नों का उत्तर खोजकर, सिस्टम को कार्यान्वित किया जाता है। इस प्रकार मेमोरी मैनेजमेंट, वह तकनीक है, जिसके द्वारा मेमोरी को नियंत्रित करके आवश्यकता के अनुसार प्रयोग कर सकते हैं।
मेमोरी हायरआर्की:
प्रोग्राम और डॉटा को एक्जिक्यूट करने के लिए मेन स्टोरेज में रखना चाहिए। प्रोग्राम या डाटा, जिसकी तुरन्त आवश्यकता न हो, उसे सेकेण्डरी स्टोरेज में रखना चाहिए और आवश्यकता पड़ने पर मेन स्टोरेज में एक्जिक्यूट करने के लिए लाना चाहिए । सेकेण्डरी स्टोरेज मीडिया जैसे टेप या डिस्क प्रायः मेन स्टोरेज से सस्ते होते हैं और उनमें ज्यादा क्षमता होती है । मेन स्टोरेज को सेकण्डरी स्टोरेज की तुलना में अधिक तीव्रता से एक्सेस किया जा सकता है।
स्टोरेज से विभिन्न स्तर वाले सिस्टम में बड़ी मात्रा में शटलिंग होती है, जिसमें प्रोग्राम और डाटा विभिन्न स्तरों के बीच में आगे-पीछे होते रहते हैं। यह शटलिंग, सिस्टम के स्रोत जैसे CPU के समय को खर्च करती है, जिनका उत्पादक के रूप में उपयोग किया जा सकता है।
साठ के दशक में यह स्पष्ट हो गया कि मेमोरी हायर आर्की के एक और स्तर को कार्य और उपयोग में वृद्धि के साथ बढ़ाया जा सकता है । यह अतिरिक्त स्तर, कैस (Cache), जो कि हाई-स्पीड स्टोरेज है तथा इसे मेन स्टोरेज से ज्यादा तेज माना जाता है। कैस (Cache) स्टोरेज, मेम स्टोरेज को तुलना में अत्यकि महँगा है, इसलिए अपेक्षाकृत केवल छोटे कैस उपयोग किए जाते हैं ।
कैस (Cache) स्टोरेज, सिस्टम में शटलिंग के अन्य स्तर को लागू करता है । मेन स्टोरेज में उपलब्ध एक प्रोग्राम्स एक्जिक्यूट होने के पूर्व कैस (Cache) में शटल किए जाते हैं। कैस में, ये प्रोग्राम्स मेन स्टोरेज की तुलना में जल्दी एक्जिक्यूट हो जाते हैं। कैस का उपयोग कर डिजाइनर यह सोचता है कि प्रोग्राम को आगे और पीछे शटल करने में लगने वाला ओवरहेड़, प्रोग्राम की कार्यक्षमता में हुई वृद्धि से कम होगा। कार्यक्षमता में हुई इस वृद्धि को कैस में कार्यान्वयन की संभावित तीव्र गति द्वारा प्राप्त किया जाता है।
मेमोरी मेनेजमेंट संबंधी नीतियाँ (सेट्रेटजीस):
महँगे रिसोर्सेस का प्रबंधन बेहतर उपयोग के लिये किया जाता है। अतः मेमोरी मेनेजमेंट नीतियों का निर्धारण मेन स्टोरेज रिसोर्स का अधिकाधिक उपयोग करने के लिए किया जाता है। मेमोरी मेनेजमेंट की नीतियों को निम्नलिखित श्रेणियों में रखा जा सकता हैं-
1. फेच स्ट्रेटीजीस (नीतियाँ)
(अ) डिमांड फेच स्ट्रेटीजीस
(ब) एन्टिसिपेटरी फेच स्ट्रेटीजीस
2. प्लेसमेंट स्ट्रेटीजीस
3. रीप्लेसमेंट स्ट्रेटीजीस
(1) फेच स्ट्रेटीजीस का संबंध इस बात से होता है कि सेकंडरी स्टोरेज से मेन स्टोरेज में स्थानांतरित करने के लिए प्रोग्राम अथवा डाटा के अगले भाग को कब स्वीकार किया जाए। कई वर्षों से परम्परागत विद्वानों द्वारा फेच की माँग की जा रही थी, जिसके अंतर्गत प्रोग्राम अथवा डाटा के अगले भाग को तब ही मेन स्टोरेज में लाया जाता है, जब किसी रनिंग प्रोग्राम द्वारा इसे संदर्भीत किया जाता है। यह माना जाता था कि चूंकि हम प्रोग्राम नियंत्रण की अगली स्थिति का अंदाज नहीं लगा सकते हैं, इसलिये भविष्य की प्रक्रियाओं का अंदाज लगाने में उपयोग किए गए ओवर हेड से अपेक्षित लाभ नहीं ले पाते हैं। आज कई अनुसंधानकर्ता महसूस करते हैं कि एन्टिसिपेटरी फेचिंग से सिस्टम की कार्यक्षमता में वृद्धि हो सकती है।
(2) प्लेसमेंट स्ट्रेटीजीस का संबंध इस बात को स्पष्ट करने से हैं कि एक इनकमिंग प्रोग्राम को मेन स्टोरेज में कहाँ स्थापित करना है। हमें फर्स्ट-फीट, बेस्ट-फीट और वर्स्ट-फीट स्टोरेज प्लेसमेंट नीतियों के बारे में विचार करना होगा।
(3) रिप्लेसमेंट स्ट्रेटीजी का संबंध इस बात को स्पष्ट करने से है कि आगामी प्रोग्राम के लिये जगह बनाने के लिये प्रोग्राम या डाटा के किस भाग को हटाया जाए।
मेमोरी प्रबंधन के उद्देश्य:
(1) CPU का अधिकाधिक उपयोग।
(2) मेमोरी स्पेस का प्रभावी उपयोग।
(3) उपलब्ध एड्रेस स्पेस का सुरक्षित और प्रभावी उपयोग।
(4) एक्जिक्यूशन समय को कम करना।