https://www.rakeshmgs.in/search/label/Template
https://www.rakeshmgs.in

Learn in Hindi

RakeshMgs

Memory Management

शुक्रवार, जनवरी 19, 2018

सीपीयू(CPU) को एक से अधिक प्रोसेसेस के बीच शेयर कर इसके उपयोग और परफॉर्मेंस को बढ़या जा सकता है। सीपीयू(CPU) के उपयोग और परफॉर्मेंस को बढ़ाने के लिए, सभी प्रोसेसेस को एक साथ प्राइमरी मैमोरी में रखा जाता है। अतः
सीपीयू(CPU) के परफॉर्मेंस को बढ़ाने के लिए मैनोरी की शेयरिंग आवश्यक होती है। मेन मैमोरी का ऑर्गेनाइजेशन एवं मैनेजनेंट ऑपरेटिंग सिस्टम की डिजाइनिंग को प्रभावित करने वाला सबसे प्रमुख कारक रहा है। प्राथमिक रूप से मैमोरी मैनेजमेंट का संबंध रिक्वेस्टिंग प्रोसेस के लिए मेन मैमोरी को एलोकेट करना है, क्योंकि कोई भी प्रोसेस तब तक रन नहीं कर सकता
है,जब तक उसके लिए मैमोरी को एलोकेट नहीं किया जाता है।

मैमोरी मैनेजमेंट की स्कीम्स
1. सिंगल प्रोसेस मॉनिटरिंग :-
           सिंगल प्रोसेस मॉनिटर सबसे सरल मैमोरी मैनेजमेंट एप्रोच है। इस एप्रोच में, मैमोरी को दो भागों में विभाजित किया जाता है, जिसमें पहला भाग ऑपरेटिंग सिस्टम प्रोग्राम के लिए होता है,जिसे मॉनिटर भी कहा जाता है। जबकि दूसरा भाग यूज़र प्रोग्राम के लिए होता है। इस प्रकार के एप्रोच में, ऑपरेटिंग सिस्टम, मैमोरी के पहले और अंतिम लोकेशन का आंकड़ा यूज़र प्रोग्राम के लोकेशन के लिए रखता है। यूज़र प्रोग्राम के लिए कन्टिग्युअस एरिया(area) प्रदन करने के लिए, ऑपरेटिंग सिस्टम मैमोरी के शीर्ष(top) या गर्त(bottom) में लोड किया जाता है। चूँकि इन्ट्रप्ट वेक्टर, लो मैमोरी में रहता है। अतः ऑपरेटिंग सिस्टम प्रोग्राम, जिसे मॉनिटर भी कहा जाता है, को लो मैमोरी में ही रखा जाता है।
2.मल्टीप्रोग्रामिंग:-
           मल्टीप्रोग्रामिंग इनवायरमेंट में एक से अधिक प्रोग्राम एक साथ प्राथमिक मैमोरी में रखे जाते हैं तथा सीपीयू तेजी से एक प्रोग्राम से दूसरे प्रोग्राम के बीच कंट्रोल को पास करता है। मल्टीप्रोग्रामिंग में पूरे मेन मैमोरी को कई भागों में बाँट दिया जाता है तथा प्रत्येक भाग, एक-एक प्रोसेस एलोकेट कर दिया जाता है।
मैमोरी पार्टिशनिंग दो प्रकार की हो सकती है-
-स्टैटिक पार्टिशनिंग
-डायनेमिक पार्टिशनिंग
स्टैटिक पार्टिशनिंग में सिस्टम जनरेशन प्रोसेस के समय ही अर्थात् प्रारम्भ में ही, मैमोरी को विभिन्न साइज के पार्टिशन्स में बाँट दिया जाता है तथा इन पार्टिशन्स के साइज में कोई परिवर्तन नहीं किया जा सकता है। जबकि डायनेमिक पार्टिशनिंग में मैमोरी को विभिन्न पार्टिशन्स में, रन टाइम में बाँटा जाता है, साथ ही इन पार्टिशन्स के साइज़ का निर्धारण भी ऑपरेटिंग सिस्टम द्वारा किया जाता है।
रिलोकेशन
           रिलोकेशन का तात्पर्य किसी भी प्रोग्राम को वांछित मैमोरी पार्टिशन में लोड कर एक्ज़िक्यूट करने से है। प्राथमिक मैमोरी के वरिचुअल एड्रेस का वास्तविक एड्रेस या फिज़िकल एड्रेस में ट्रान्सलेट कब और कैसे होता है, के आधार पर, प्रोसेस या प्रोग्राम रिलोकेशन दो प्रकार के हो सकते हैं-स्टैटिक रिलोकेशन और डायनेमिक रिलोकेशन। यदि रिलोकेटिंग लिंकर या रिलोकेटिंग लोडर द्वारा किसी प्रोग्राम को मैमोरी में लोड करते समय या पहले रिलोकेट किया जाता है, तो रिलोकेशन के इस एप्रोच को स्टैटिक रिलोकेशन कहते हैं।
डायनेमिक रिलोकेशन
           डायनेमिक रिलोकेशन में जब किसी प्रोसेस को शिड्यूल किया जाता है, तो बेस रजिस्टर को स्टार्टिंग एड्रेस के साथ लोड किया जाता है। प्रत्येक मैमोरी एड्रेस (जो स्वतः जेनरेट होते हैं) को मेन मैमोरी में भेजने से पहले, बेस रजिस्टर के कन्टेन्ट्स से जोड़ दिया जाता है।
डायनेमिक पार्टिशनिंग
           फिक्स्ड साइज पार्टिशनिंग में सबसे बड़ी समस्या यह है कि इसमें पार्टिशन की साइज के छोटे होने की स्थिति में मैमोरी का वेस्टेज होता है। इस समस्या को दूर करने के लिए डायनेमिक पार्टिशनिंग नामक मैमोरी मैनेजमेंट एप्रोज का प्रयोग किया जाता है। डायनेमिक पार्टिशनिंग(या वैरिएबल पार्टिशनिंग) में प्रत्येक रिक्वेस्टिंग प्रोसेस की जरूरतों के अनुसार डायनेमिक ढ़ग से पार्टिशन्स क्रियेट किये जाते हैं। जब कोई प्रोसेस टर्मिनेट या स्वैप-आउट होता है, तो मैमोरी मैनेजर उस पार्टिशन के खाली स्पेस को फ्री-मैमोरी एरिया को लौटा सकता है, जिसमें पार्टिशन्स का एलोकेशन किया जाता है। डायनेमिक पार्टिशनिंग में न तो डायनेमिकली एलोकेटेड पार्टिशन की साइज और न ही पार्टिशन की संख्या की कोई सीमा होती है। क्योंकि मैमोरी मैनेजर, रिक्वैस्टिंग प्रोसेस के लिए तब तक पार्टिशन को क्रियेट और एलोकेट करता रहता है, जब तक कि फिजिकल मैमोरी का पूरा स्पेस पूरी तरह नहीं भर जाता है।
पेजिंग
           पेजिंग एक मैमोरी मैनेजमेंट तकनीक है, जिसके द्वारा किसी प्रोसेस के फिजिकल एड्रेस को फिजिकल मैमोरी में नॉन-कन्टिग्युअस ढ़ंग से स्टोर किया जाता है। अर्थात् पेजिंग के द्वारा किसी भी प्रोसेस के लिए मैमोरी के किसी भी संभावित फिजिकल एड्रेस को एलोकेट किया जा सकता है। पेजिंग में सर्वप्रथम फिजिकल मैमोरी को फिक्स्ड साइज के ब्लॉक्स में विभाजित कर दिया जाता है, जिन्हें फ्रेम्स कहते हैं। इसके बाद लॉजिकल मैमोरी को फिक्स्ड साइज के ब्लॉक्स में विभाजित कर दिया जाता है, जिन्हें पेजेस कहते हैं। जब किसी प्रोग्राम को रन करना होता है, तो इसके पेजेस डिस्क या किसी भी बैकिंग स्टोरेज से किसी मैमोरी फ्रेम में लोड हो जाते हैं। डिस्क या बैकिंग स्टोरेज को फिक्स्ड-साइज के ब्लॉक्स में विभाजित किया जाता है। इन ब्लॉक्स की साइज मैमोरी फ्रेम्स की साइज के बराबर होता है।
सेगमेन्टेशन
सेगमेन्टेशन एक मैमोरी मैनेजमेन्ट स्कीम है, जो मैमोरी को प्रोग्रामर के सोचने की दृष्टि का समर्थन करता है। कोई भी प्रोग्राम, ट्रान्सलेशन टाइम में लॉजिकली रिलेटेड इन्टिटीज़ को एक साथ ग्रुप कर सेगमेन्ट्स को बनाया जाता है। इन सेगमेन्ट्स का फॉर्मेशन कम्पाइलर के अनुसार वैरी करता है।
वर्चुअल मैमोरी
           वर्चुअल मैमोरी एक ऐसी मैमोरी मैनेजमेंट तकनीक है, जो प्रोग्राम को टुकड़ों में विभाजित करने तथा इसे स्वैप-इन और स्वैप-आउट करने का कार्य करता है। वर्चुअल मैमोरी के द्वारा वैसे प्रोग्राम्स को भी मैमोरी में लोड या एक्जिक्यूट किया जा सकता है, जिनकी साइज फिजिकल मैमोरी से अधिक हो। वर्चुअल मैमोरी को छोड़ कर अन्य सभी मैमोरी मैनेजमेंट तकनीकों में सभी प्रोसेसेस को उनके एक्जिक्यूट होने से पहले मैमोरी में रहना या रखना आवश्यक होता है। परन्तु वर्चुअल मैमोरी द्वारा उन प्रोसेसेस को भी एक्जिक्यूट किया जा सकता है, जो पूर्णरूपेण मैमोरी में नहीं रखे गये हों। इस प्रकार वर्चुअल मैमोरी प्रोग्रामर के लिए फिजिकल मैमोरी के वास्तविक साइज से अधिक होने का भ्रम उत्पन्न करता है। वर्चुअल मैमोरी को पेज्ड या सेगमेन्टेड मैमोरी मैनेजमेंट तकनीक के विस्तार के रूप में भी कार्यान्वित किया जा सकता है, डिमाण्ड पेजिंग या डिमाण्ड सेगमेन्टेशन कहते हैं।