मेमोरी मैप

From Vigyanwiki
Revision as of 12:10, 25 April 2023 by alpha>Indicwiki (Created page with "{{short description|Data structure}} {{Distinguish|Memory-mapped file}} कंप्यूटर विज्ञान में, मेमोरी मैप डेटा...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

कंप्यूटर विज्ञान में, मेमोरी मैप डेटा की एक संरचना है (जो आमतौर पर मेमोरी में ही रहती है) जो इंगित करती है कि मुख्य मेमोरी कैसे रखी जाती मुख्य स्मृति मैप शब्द के अलग-अलग संदर्भों में अलग-अलग अर्थ हो सकते हैं।

  • यह सबसे तेज़ और सबसे लचीला कैश (कंप्यूटिंग) संगठन है जो सामग्री-पता योग्य मेमोरी का उपयोग करता है। साहचर्य स्मृति स्मृति शब्द के पते और सामग्री दोनों को संग्रहीत करती है।[further explanation needed]
  • बूटिंग में, ऑपरेटिंग सिस्टम कर्नेल (ऑपरेटिंग सिस्टम) को मेमोरी लेआउट के बारे में निर्देश देने के लिए फर्मवेयर से एक मेमोरी मैप पास किया जाता है। इसमें कुल मेमोरी के आकार, किसी भी आरक्षित क्षेत्र के बारे में जानकारी शामिल है और यह आर्किटेक्चर के लिए विशिष्ट अन्य विवरण भी प्रदान कर सकता है।
  • आभासी मेमोरी कार्यान्वयन और मेमोरी प्रबंधन इकाइयों में, एक मेमोरी मैप पेज टेबल या हार्डवेयर रजिस्टरों को संदर्भित करता है, जो एक निश्चित प्रक्रिया के वर्चुअल मेमोरी लेआउट के बीच मैपिंग को स्टोर करता है और यह स्थान भौतिक मेमोरी पतों से कैसे संबंधित है।
  • देशी डिबगर प्रोग्राम में, एक मेमोरी मैप लोडेड निष्पादन योग्य (या) लाइब्रेरी फ़ाइलों और मेमोरी क्षेत्रों के बीच मैपिंग को संदर्भित करता है। इन स्मृति मानचित्रों का उपयोग स्मृति पतों (जैसे समारोह सूचक) को वास्तविक प्रतीकों में हल करने के लिए किया जाता है।

पीसी BIOS मेमोरी मैप

IBM पर्सनल कंप्यूटर और IBM PC संगत के लिए BIOS रूटीन का एक सेट प्रदान करता है जिसका उपयोग मेमोरी लेआउट प्राप्त करने के लिए ऑपरेटिंग सिस्टम या एप्लिकेशन द्वारा किया जा सकता है। कुछ उपलब्ध दिनचर्या हैं:

BIOS फ़ंक्शन: INT 0x15, AX = 0xE801:[1] इस BIOS इंटरप्ट कॉल का उपयोग 64MB+ कॉन्फ़िगरेशन के लिए मेमोरी आकार प्राप्त करने के लिए किया जाता है। यह 23 अगस्त, 1994 या उसके बाद के अमेरिकन मेगाट्रेंड्स BIOSses द्वारा समर्थित है। कॉलर AX को 0xE801 पर सेट करता है और फिर int 0x15 निष्पादित करता है। यदि कुछ त्रुटि हो गई है, तो सीएफ (कैरी फ्लैग) के साथ रूटीन रिटर्न 1 पर सेट होता है।

Register Value description
EAX Extended memory between 1M and 16M, in KB. (Maximum value: 0x3C00 = 15360KB).
EBX Count of 64K blocks above 16M.
ECX Configured memory 1M to 16M, in KB.
EDX Count of configured 64K blocks above 16M.

BIOS फ़ंक्शन: INT 0x15, AX=0xE820 - सिस्टम मेमोरी मैप प्राप्त करें:[2] इनपुट:

Register Value description
EAX 0x0000E820
EBX Continuation value or 0x0 to start at beginning of map.
ECX Size of buffer for result (20 bytes).
EDX 0x534D4150 (ASCII for 'SMAP')
ES:DI segment:offset location of the buffer for result.

एसएमएपी बफर संरचना:

Offset Size Value description
0 QWORD (8 bytes) Base address of memory map region referred to by EBX.
8 QWORD (8 bytes) Length in bytes.
16 DWORD (4 bytes) Type of address range.

कैसे उपयोग किया जाता है: ऑपरेटिंग सिस्टम मेमोरी (20 बाइट्स बफर) में एक एसएमएपी बफर आवंटित करेगा। फिर इनपुट टेबल में बताए अनुसार रजिस्टर सेट करें। पहली कॉल पर, EBX को 0 पर सेट किया जाना चाहिए। अगला चरण INT 0x15 को कॉल करना है। यदि कोई त्रुटि नहीं है, तो इंटरप्ट कॉल सीएफ स्पष्ट और मेमोरी मैप के पहले क्षेत्र का प्रतिनिधित्व करने वाले डेटा से भरे बफर के साथ वापस आती है। EBX को BIOS द्वारा अपडेट किया जाता है ताकि जब OS रूटीन को फिर से कॉल करे, तो अगला क्षेत्र बफर में वापस आ जाए। यदि सब कुछ हो जाए तो BIOS EBX को शून्य पर सेट करता है।

यह भी देखें

संदर्भ

  1. "15E801".
  2. "15E820".