मेमोरी पूल: Difference between revisions
m (Abhishek moved page स्मृति पूल to मेमोरी पूल without leaving a redirect) |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Dynamic memory allocation method}}'''मेमोरी पूल''', जिसे [[निश्चित आकार के ब्लॉक आवंटन|निश्चित आकृति के ब्लॉक | {{Short description|Dynamic memory allocation method}}'''मेमोरी पूल''', जिसे [[निश्चित आकार के ब्लॉक आवंटन|निश्चित आकृति के ब्लॉक एलोकेशन]] भी कहा जाता है, मेमोरी प्रबंधन के लिए [[पूल (कंप्यूटर विज्ञान)|पूल]] का उपयोग होता है जो [[गतिशील स्मृति आवंटन|डायनमिक मेमोरी एलोकेशन]] की अनुमति देता है। गतिशील मेमोरी एलोकेशन [[मॉलोक]] और [[सी++]] के [[ नया (सी++) |नवीन]] जैसी तकनीकों के उपयोग से प्राप्त किया जा सकता है और किया भी गया है; यघपि स्थापित और विश्वसनीय कार्यान्वयन, ये परिवर्तनीय ब्लॉक आकृतियों के कारण [[विखंडन (कंप्यूटर)|विखंडन]] से घीरे होते हैं, प्रदर्शन के कारण इन्हें [[वास्तविक समय कंप्यूटिंग|रियल टाइम सिस्टम]] में उपयोग करने की अनुशंसा नहीं की जाती है। अधिक कुशल समाधान समान आकृति वाले विभिन्न मेमोरी ब्लॉकों को पूर्व-एलोकेशन करना होता है जिन्हें '''मेमोरी पूल''' कहा जाता है। एप्लिकेशन रन टाइम (प्रोग्राम जीवनचक्र चरण) पर [[हैंडल (कंप्यूटिंग)|हैंडल]] द्वारा प्रदर्शित किये गए ब्लॉकों को आवंटित, अभिगम और मुक्त कर सकता है। | ||
कई रियल-टाइम ऑपरेटिंग सिस्टम मेमोरी पूल का उपयोग करते हैं, जैसे [[लेनदेन प्रसंस्करण सुविधा|विनिमय प्रसंस्करण सुविधा]]। | कई रियल-टाइम ऑपरेटिंग सिस्टम मेमोरी पूल का उपयोग करते हैं, जैसे [[लेनदेन प्रसंस्करण सुविधा|विनिमय प्रसंस्करण सुविधा]]। | ||
कुछ प्रणालियाँ, जैसे वेब सर्वर [[Nginx|एनजीआईएनएक्स]], चर-आकृति | कुछ प्रणालियाँ, जैसे वेब सर्वर [[Nginx|एनजीआईएनएक्स]], चर-आकृति एलोकेशन के समूह को संदर्भित करने के लिए ''मेमोरी पूल'' शब्द का उपयोग करती हैं, जिन्हें पश्चात् में एक ही बार में हटाया जा सकता है। इसे एक ''क्षेत्र'' के नाम से भी जाना जाता है; क्षेत्र-आधारित [[स्मृति प्रबंधन|मेमोरी प्रबंधन]] देखें। | ||
== सरल मेमोरी पूल कार्यान्वयन == | == सरल मेमोरी पूल कार्यान्वयन == | ||
साधारण मेमोरी पूल मॉड्यूल, उदाहरण के लिए, मॉड्यूल को स्थापित करने वाले एप्लिकेशन के लिए अनुकूलित ब्लॉक आकृति के साथ [[संकलन समय]] पर तीन पूल | साधारण मेमोरी पूल मॉड्यूल, उदाहरण के लिए, मॉड्यूल को स्थापित करने वाले एप्लिकेशन के लिए अनुकूलित ब्लॉक आकृति के साथ [[संकलन समय|कंपाइल समय]] पर तीन पूल निर्धारित कर सकता है। एप्लिकेशन निम्नलिखित इंटरफ़ेस के माध्यम से मेमोरी एलोकेशन, अभिग्म और मुक्त कर सकता है: | ||
*पूल से मेमोरी | *पूल से मेमोरी एलोकेशन करें। फ़ंक्शन उस पूल का निर्धारण करेगा जहां आवश्यक ब्लॉक उपयुक्त स्थित होता है। यदि उस पूल के सभी ब्लॉक पहले से ही आरक्षित होते हैं, तो फ़ंक्शन अगले बड़े पूल में से को अन्वेषण का प्रयास करता है। एलोटेड मेमोरी ब्लॉक को हैंडल के साथ प्रदर्शित किया जाता है। | ||
* आवंटित मेमोरी तक अभिग्म सूचक प्राप्त करें। | * आवंटित मेमोरी तक अभिग्म सूचक प्राप्त करें। | ||
*पूर्व में | *पूर्व में एलोटेड मेमोरी ब्लॉक को मुक्त करें। | ||
*उदाहरण के लिए हैंडल को के साथ कार्यान्वित किया जा सकता है। मॉड्यूल हैंडल को पूल क्रम-सूची, मेमोरी ब्लॉक क्रम-सूची और संस्करण में विभाजित करके आंतरिक रूप से व्याख्या कर सकता है। पूल और मेमोरी ब्लॉक क्रम-सूची हैंडल के साथ संबंधित ब्लॉक तक शीघ्रता से अभिग्म की अनुमति देता है, जबकि संस्करण, जो प्रत्येक नए | *उदाहरण के लिए हैंडल को के साथ कार्यान्वित किया जा सकता है। मॉड्यूल हैंडल को पूल क्रम-सूची, मेमोरी ब्लॉक क्रम-सूची और संस्करण में विभाजित करके आंतरिक रूप से व्याख्या कर सकता है। पूल और मेमोरी ब्लॉक क्रम-सूची हैंडल के साथ संबंधित ब्लॉक तक शीघ्रता से अभिग्म की अनुमति देता है, जबकि संस्करण, जो प्रत्येक नए एलोकेशन पर बढ़ाया जाता है, उन हैंडल का पता लगाने की अनुमति देता है जिनका मेमोरी ब्लॉक पहले ही मुक्त हो चुकी होती है (बहुत लंबे समय तक रखे गए हैंडल के कारण)। | ||
== मेमोरी पूल विरुद्ध मॉलोक == | == मेमोरी पूल विरुद्ध मॉलोक == | ||
लाभ | लाभ | ||
*मेमोरी पूल निरंतर निष्पादन समय के साथ मेमोरी | *मेमोरी पूल निरंतर निष्पादन समय के साथ मेमोरी एलोकेशन की अनुमति देता है। यदि प्रत्येक वस्तु के लिए मेमोरी आवंटित करने के लिए ''मॉलोक'' का उपयोग किया जाता है, तो पूल में हजारों वस्तुओं के लिए मेमोरी रिलीज़ मात्र एक संचाल होता है, नाकि एक- एक करके होता है। | ||
*मेमोरी पूल को पदानुक्रमित ट्री संरचनाओं में समूहीकृत किया जा सकता है, जो नियंत्रण प्रवाह लूप्स और [[रिकर्सन (कंप्यूटर विज्ञान)|रिकर्सन]] जैसी विशेष प्रोग्रामिंग संरचनाओं के लिए उपयुक्त होता है। | *मेमोरी पूल को पदानुक्रमित ट्री संरचनाओं में समूहीकृत किया जा सकता है, जो नियंत्रण प्रवाह लूप्स और [[रिकर्सन (कंप्यूटर विज्ञान)|रिकर्सन]] जैसी विशेष प्रोग्रामिंग संरचनाओं के लिए उपयुक्त होता है। | ||
*निश्चित आकृति के ब्लॉक मेमोरी पूल को | *निश्चित आकृति के ब्लॉक मेमोरी पूल को एलोटेड ब्लॉक के आकृति जैसी विशेषताओं का वर्णन करते हुए, प्रत्येक एलोकेशन के लिए एलोकेशन मेटाडेटा संग्रहीत करने की आवश्यकता नहीं होती है। विशेष रूप से छोटे एलोकेशन के लिए, यह पर्याप्त स्थान बचत प्रदान करता है। | ||
*आउट ऑफ मेमोरी त्रुटियों से बचने के लिए वास्तविक समय प्रणालियों पर नियतात्मक व्यवहार की अनुमति देता है। | *आउट ऑफ मेमोरी त्रुटियों से बचने के लिए वास्तविक समय प्रणालियों पर नियतात्मक व्यवहार की अनुमति देता है। | ||
हानियाँ | हानियाँ | ||
Line 25: | Line 25: | ||
* नि:शुल्क सूची | * नि:शुल्क सूची | ||
* [[ऑब्जेक्ट पूल]] | * [[ऑब्जेक्ट पूल]] | ||
* [[स्लैब आवंटन]] | * [[स्लैब आवंटन|स्लैब एलोकेशन]] | ||
==बाहरी संबंध== | ==बाहरी संबंध== |
Revision as of 12:40, 20 July 2023
मेमोरी पूल, जिसे निश्चित आकृति के ब्लॉक एलोकेशन भी कहा जाता है, मेमोरी प्रबंधन के लिए पूल का उपयोग होता है जो डायनमिक मेमोरी एलोकेशन की अनुमति देता है। गतिशील मेमोरी एलोकेशन मॉलोक और सी++ के नवीन जैसी तकनीकों के उपयोग से प्राप्त किया जा सकता है और किया भी गया है; यघपि स्थापित और विश्वसनीय कार्यान्वयन, ये परिवर्तनीय ब्लॉक आकृतियों के कारण विखंडन से घीरे होते हैं, प्रदर्शन के कारण इन्हें रियल टाइम सिस्टम में उपयोग करने की अनुशंसा नहीं की जाती है। अधिक कुशल समाधान समान आकृति वाले विभिन्न मेमोरी ब्लॉकों को पूर्व-एलोकेशन करना होता है जिन्हें मेमोरी पूल कहा जाता है। एप्लिकेशन रन टाइम (प्रोग्राम जीवनचक्र चरण) पर हैंडल द्वारा प्रदर्शित किये गए ब्लॉकों को आवंटित, अभिगम और मुक्त कर सकता है।
कई रियल-टाइम ऑपरेटिंग सिस्टम मेमोरी पूल का उपयोग करते हैं, जैसे विनिमय प्रसंस्करण सुविधा।
कुछ प्रणालियाँ, जैसे वेब सर्वर एनजीआईएनएक्स, चर-आकृति एलोकेशन के समूह को संदर्भित करने के लिए मेमोरी पूल शब्द का उपयोग करती हैं, जिन्हें पश्चात् में एक ही बार में हटाया जा सकता है। इसे एक क्षेत्र के नाम से भी जाना जाता है; क्षेत्र-आधारित मेमोरी प्रबंधन देखें।
सरल मेमोरी पूल कार्यान्वयन
साधारण मेमोरी पूल मॉड्यूल, उदाहरण के लिए, मॉड्यूल को स्थापित करने वाले एप्लिकेशन के लिए अनुकूलित ब्लॉक आकृति के साथ कंपाइल समय पर तीन पूल निर्धारित कर सकता है। एप्लिकेशन निम्नलिखित इंटरफ़ेस के माध्यम से मेमोरी एलोकेशन, अभिग्म और मुक्त कर सकता है:
- पूल से मेमोरी एलोकेशन करें। फ़ंक्शन उस पूल का निर्धारण करेगा जहां आवश्यक ब्लॉक उपयुक्त स्थित होता है। यदि उस पूल के सभी ब्लॉक पहले से ही आरक्षित होते हैं, तो फ़ंक्शन अगले बड़े पूल में से को अन्वेषण का प्रयास करता है। एलोटेड मेमोरी ब्लॉक को हैंडल के साथ प्रदर्शित किया जाता है।
- आवंटित मेमोरी तक अभिग्म सूचक प्राप्त करें।
- पूर्व में एलोटेड मेमोरी ब्लॉक को मुक्त करें।
- उदाहरण के लिए हैंडल को के साथ कार्यान्वित किया जा सकता है। मॉड्यूल हैंडल को पूल क्रम-सूची, मेमोरी ब्लॉक क्रम-सूची और संस्करण में विभाजित करके आंतरिक रूप से व्याख्या कर सकता है। पूल और मेमोरी ब्लॉक क्रम-सूची हैंडल के साथ संबंधित ब्लॉक तक शीघ्रता से अभिग्म की अनुमति देता है, जबकि संस्करण, जो प्रत्येक नए एलोकेशन पर बढ़ाया जाता है, उन हैंडल का पता लगाने की अनुमति देता है जिनका मेमोरी ब्लॉक पहले ही मुक्त हो चुकी होती है (बहुत लंबे समय तक रखे गए हैंडल के कारण)।
मेमोरी पूल विरुद्ध मॉलोक
लाभ
- मेमोरी पूल निरंतर निष्पादन समय के साथ मेमोरी एलोकेशन की अनुमति देता है। यदि प्रत्येक वस्तु के लिए मेमोरी आवंटित करने के लिए मॉलोक का उपयोग किया जाता है, तो पूल में हजारों वस्तुओं के लिए मेमोरी रिलीज़ मात्र एक संचाल होता है, नाकि एक- एक करके होता है।
- मेमोरी पूल को पदानुक्रमित ट्री संरचनाओं में समूहीकृत किया जा सकता है, जो नियंत्रण प्रवाह लूप्स और रिकर्सन जैसी विशेष प्रोग्रामिंग संरचनाओं के लिए उपयुक्त होता है।
- निश्चित आकृति के ब्लॉक मेमोरी पूल को एलोटेड ब्लॉक के आकृति जैसी विशेषताओं का वर्णन करते हुए, प्रत्येक एलोकेशन के लिए एलोकेशन मेटाडेटा संग्रहीत करने की आवश्यकता नहीं होती है। विशेष रूप से छोटे एलोकेशन के लिए, यह पर्याप्त स्थान बचत प्रदान करता है।
- आउट ऑफ मेमोरी त्रुटियों से बचने के लिए वास्तविक समय प्रणालियों पर नियतात्मक व्यवहार की अनुमति देता है।
हानियाँ
- मेमोरी पूल को उस एप्लिकेशन के लिए ट्यून करने की आवश्यकता हो सकती है जो उन्हें स्थापित करता है।
यह भी देखें
- नि:शुल्क सूची
- ऑब्जेक्ट पूल
- स्लैब एलोकेशन