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