पूल-आधारित मेमोरी संसाधनों के लिए ब्लॉक और चंक सीमाओं को कॉन्फ़िगर करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 79719d3800dcउद्गमखुले प्रश्न (3)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
पूल-आधारित मेमोरी संसाधनों के लिए ब्लॉक और चंक सीमाओं को कॉन्फ़िगर करता है।
संरचना ara::core::PoolOptionsstd::pmr::pool_options के अनुसार पूल-आधारित मेमोरी संसाधनों के विन्यास के लिए कार्य करती है। यह max_blocks_per_chunk[SWS_CORE_00027] के माध्यम से प्रति चंक अधिकतम ब्लॉक संख्या को सीमित करने के साथ-साथ largest_required_pool_block[SWS_CORE_00028] के माध्यम से अधिकतम पूल ब्लॉक आकार के निर्धारण की अनुमति देती है। एक साधारण डेटा एग्रीगेट के रूप में, मेमोरी संसाधन के आरंभीकरण से पहले संरचना को पॉप्युलेट किया जाता है और उसके कंस्ट्रक्टर को पास किया जाता है। व्याख्या: चूंकि कोई अंतर्निहित सत्यापन नहीं होता है, इसलिए डेवलपर्स को यह सुनिश्चित करना चाहिए कि कॉन्फ़िगर किए गए थ्रेशोल्ड भौतिक RAM पर अत्यधिक भार न डालें। प्रश्न (खुला)
संदर्भ
डेटा संरचना ara::core::PoolOptions AUTOSAR Adaptive Platform के मॉड्यूल core में मेमोरी पूल-आधारित संसाधनों के लिए कॉन्फ़िगरेशन पैरामीटर प्रदान करती है। यह आवंटन व्यवहार के लक्षित नियंत्रण के लिए कार्य करती है और std::pmr::pool_options की C++ मानक कार्यक्षमता पर आधारित है। संरचना को हेडर <ara/core/memory_resource.h> के माध्यम से शामिल किया जाता है और यह पूल मेमोरी संसाधनों के साथ निकटता से इंटरैक्ट करती है, जो पुनरावर्ती मेमोरी अनुरोधों के लिए सन्निहित चंक और ब्लॉक बनाए रखते हैं।
सुरक्षा-महत्वपूर्ण और रीयल-टाइम सिस्टम में, गतिशील मेमोरी संचालन की सीमा और पूर्वानुमेयता आवश्यक है। इस संदर्भ में ara::core::PoolOptions अनुप्रयोग-विशिष्ट क्षमता आवश्यकताओं और मेमोरी पूल के आंतरिक प्रबंधन के बीच एक डीकपलर की भूमिका निभाता है। संरचना के माध्यम से, डेवलपर्स यह परिभाषित कर सकते हैं कि एक चंक के भीतर अधिकतम कितने ब्लॉक समूहीकृत किए जा सकते हैं [SWS_CORE_00027] और कौन सा अधिकतम ब्लॉक आकार अभी भी विशेष पूल द्वारा सेवित होना चाहिए [SWS_CORE_00028]। अनुप्रयोग सॉफ़्टवेयर जो मेमोरी संसाधनों को इंस्टैंसिएट करता है, अत्यधिक विखंडन (fragmentation) से बचने और आवंटन सीमाओं को नियतात्मक रूप से नियंत्रित करने के लिए इन विकल्पों का उपयोग करता है।
जीवनचक्र
एक सरल कॉन्फ़िगरेशन प्रकार (struct) के रूप में, ara::core::PoolOptions का जीवनचक्र जटिल आंतरिक अवस्था परिवर्तनों के बिना हल्का होता है। निर्माण आमतौर पर संबंधित मेमोरी संसाधन के इंस्टेंसिएशन से पहले एक स्थानीय स्टैक ऑब्जेक्ट या स्थिर कॉन्फ़िगरेशन स्थिरांक के रूप में होता है। इंस्टेंसिएशन के समय, दोनों विशेषताएँ max_blocks_per_chunk[SWS_CORE_00027] और largest_required_pool_block[SWS_CORE_00028] डिफ़ॉल्ट रूप से मान 0 के साथ आरंभ की जाती हैं।
व्याख्या: 0 का मान प्राप्तकर्ता मेमोरी संसाधन को संकेत दे सकता है कि प्लेटफ़ॉर्म-विशिष्ट डिफ़ॉल्ट सीमाएं लागू होनी चाहिए। प्रश्न (खुला) चूंकि यह एक शुद्ध मान ऑब्जेक्ट है, ara::core::PoolOptions के पास RAII के अर्थ में कोई संसाधन नहीं है और विनाश पर कोई सफ़ाई क्रिया नहीं करता है। संरचना का जीवनचक्र आमतौर पर मेमोरी संसाधन के निर्माण चरण से जुड़ा होता है: एक बार विकल्प पूल संसाधन को पास कर दिए जाने के बाद, संसाधन आंतरिक रूप से पैरामीटर बनाए रखता है, ताकि PoolOptions ऑब्जेक्ट को सुरक्षित रूप से नष्ट किया जा सके या पुन: उपयोग किया जा सके।
संगामी निष्पादन के संबंध में, संरचना स्वयं कोई अंतर्निहित तुल्यकालन (synchronization) तंत्र प्रदान नहीं करती है। एक अपरिवर्तित PoolOptions ऑब्जेक्ट पर समानांतर पढ़ने की पहुँच थ्रेड-सुरक्षित होती है, जबकि समवर्ती संशोधनों को बाह्य रूप से सिंक्रोनाइज़ किया जाना चाहिए। हालाँकि, चूंकि ऑब्जेक्ट मुख्य रूप से पास करने से पहले कॉन्फ़िगर किया जाता है, इसलिए आरंभीकरण के बाद आमतौर पर कोई लेखन पहुँच नहीं होती है।
उपयोग पथ
प्राथमिक उपयोग के मामले में आवंटन सीमाओं की परिभाषा और मेमोरी-प्रबंधन घटक को अग्रेषित करना शामिल है। सबसे पहले, कॉलर ara::core::PoolOptions का एक इंस्टेंस बनाता है और वांछित मापदंडों को भरता है। max_blocks_per_chunk के माध्यम से प्रति चंक ब्लॉक के लिए ऊपरी सीमा परिभाषित की जाती है [SWS_CORE_00027], जबकि largest_required_pool_block उन आवंटनों के लिए ऊपरी सीमा को परिभाषित करता है जिन्हें अभी भी पूल द्वारा कवर किया जाना चाहिए [SWS_CORE_00028]।
इसके बाद, पॉप्युलेटेड संरचना को संबंधित पूल मेमोरी संसाधन के कंस्ट्रक्टर को पास किया जाता है। मेमोरी संसाधन कॉन्फ़िगर किए गए मानों को पढ़ता है और तदनुसार अपने आंतरिक पूल सेट करता है। यदि रनटाइम के दौरान मेमोरी अनुरोध आते हैं, तो संसाधन पहले से कॉन्फ़िगर किए गए थ्रेशोल्ड के आधार पर निर्णय लेता है कि अनुरोध को किसी पूल से पूरा किया जा सकता है या इसे किसी उच्च-स्तरीय अपस्ट्रीम संसाधन को अग्रेषित किया जाना चाहिए। व्याख्या: यह माना जा सकता है कि largest_required_pool_block से अधिक होने वाले अनुरोध आमतौर पर सीधे उच्च-स्तरीय मेमोरी प्रबंधक को सौंपे जाते हैं। प्रश्न (खुला)
अनुक्रम आरेख: PoolOptions के माध्यम से पूल मेमोरी संसाधन के विन्यास का विशिष्ट प्रवाह। स्रोत: [SWS_CORE_00027], [SWS_CORE_00028]।
त्रुटि परिदृश्य
चूंकि ara::core::PoolOptions को एक सरल डेटा एग्रीगेट (struct) के रूप में परिभाषित किया गया है, इसलिए फ़ील्ड का निर्माण या पॉप्युलेशन कोई C++ अपवाद नहीं फेंकता है और कोई त्रुटि कोड नहीं लौटाता है। संभावित त्रुटि स्थितियां केवल प्राप्तकर्ता मेमोरी संसाधन द्वारा मानों की व्याख्या के दौरान उत्पन्न होती हैं।
व्याख्या: यदि अवास्तविक मान कॉन्फ़िगर किए जाते हैं — उदाहरण के लिए max_blocks_per_chunk[SWS_CORE_00027] के लिए या largest_required_pool_block[SWS_CORE_00028] के लिए अत्यधिक बड़ा मान —, तो इसके कारण डाउनस्ट्रीम मेमोरी संसाधन चंक्स आवंटित करते समय सिस्टम सीमाओं तक पहुँच सकता है और आउट-ऑफ़-मेमोरी स्थितियों को ट्रिगर कर सकता है। प्रश्न (खुला) इसलिए स्थिर संचालन के लिए एक पूर्व शर्त भौतिक रूप से उपलब्ध रैम और अनुप्रयोग के अपेक्षित लोड प्रोफ़ाइल के अनुसार दोनों मापदंडों का सावधानीपूर्वक समन्वय है। यदि मान 0 पर रहते हैं, तो मजबूत डिफ़ॉल्ट आकारों का उपयोग करना लक्ष्य संसाधन का दायित्व है।
यह गाइड AUTOSAR Adaptive Platform रिलीज़ R25-11 के विनिर्देश पर आधारित है। सभी तकनीकी कथन केवल विनिर्देश पेलोड में शामिल आवश्यकताओं पर आधारित हैं।
UML क्लास आरेख
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल