मेमोरी मैप: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Data structure}} {{Distinguish|Memory-mapped file}} कंप्यूटर विज्ञान में, मेमोरी मैप डेटा...")
 
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{short description|Data structure}}
{{short description|Data structure}}
{{Distinguish|Memory-mapped file}}
{{Distinguish|मेमोरी-मैप की गई फ़ाइल}}
[[कंप्यूटर विज्ञान]] में, मेमोरी मैप डेटा की एक संरचना है (जो आमतौर पर मेमोरी में ही रहती है) जो इंगित करती है कि मुख्य मेमोरी कैसे रखी जाती [[मुख्य स्मृति]] मैप शब्द के अलग-अलग संदर्भों में अलग-अलग अर्थ हो सकते हैं।
[[कंप्यूटर विज्ञान]] में, मेमोरी मैप डेटा की वह संरचना है (जो सामान्यतः मेमोरी में ही रहती है) जो स्पष्ट करती है कि मुख्य मेमोरी किस प्रकार संरक्षित की जाती है। [[मुख्य स्मृति|मुख्य]] रूप से मेमोरी मैप शब्द के अलग-अलग संदर्भों में अलग-अलग अर्थ हो सकते हैं।
*यह सबसे तेज़ और सबसे लचीला [[कैश (कंप्यूटिंग)]] संगठन है जो सामग्री-पता योग्य मेमोरी का उपयोग करता है। साहचर्य स्मृति स्मृति शब्द के पते और सामग्री दोनों को संग्रहीत करती है।{{explain|date=April 2020}}
*यह सबसे तीव्र और सबसे विभक्‍तिग्राही [[कैश (कंप्यूटिंग)]] संगठन है जो साहचर्य मेमोरी का उपयोग करता है। साहचर्य मेमोरी, मेमोरी शब्द के एड्रेस और विषय सूची दोनों को संग्रहीत करती है।{{explain|date=April 2020}}
* [[बूटिंग]] में, [[ऑपरेटिंग सिस्टम]] [[कर्नेल (ऑपरेटिंग सिस्टम)]] को मेमोरी लेआउट के बारे में निर्देश देने के लिए [[फर्मवेयर]] से एक मेमोरी मैप पास किया जाता है। इसमें कुल मेमोरी के आकार, किसी भी आरक्षित क्षेत्र के बारे में जानकारी शामिल है और यह आर्किटेक्चर के लिए विशिष्ट अन्य विवरण भी प्रदान कर सकता है।
* [[बूटिंग|बूट प्रक्रिया]] में, [[ऑपरेटिंग सिस्टम|प्रचालन प्रणाली]] [[कर्नेल (ऑपरेटिंग सिस्टम)|कर्नेल (प्रचालन प्रणाली)]] को मेमोरी अभिन्यास के बारे में निर्देश देने के लिए [[फर्मवेयर]] से एक मेमोरी मैप निर्दिष्ट किया जाता है। इसमें कुल मेमोरी के आकार तथा किसी भी आरक्षित क्षेत्र के बारे में जानकारी सम्मिलित है और यह वास्तुकला के लिए अन्य विशिष्ट विवरण भी प्रदान कर सकता है।
*[[ आभासी मेमोरी ]] कार्यान्वयन और मेमोरी प्रबंधन इकाइयों में, एक मेमोरी मैप [[पेज टेबल]] या [[हार्डवेयर रजिस्टर]]ों को संदर्भित करता है, जो एक निश्चित प्रक्रिया के वर्चुअल मेमोरी लेआउट के बीच मैपिंग को स्टोर करता है और यह स्थान भौतिक मेमोरी पतों से कैसे संबंधित है।
*[[ आभासी मेमोरी |वर्चुअल मेमोरी]] कार्यान्वयन और मेमोरी प्रबंधन इकाइयों में, एक मेमोरी मैप [[पेज टेबल]] या [[हार्डवेयर रजिस्टर]] को संदर्भित करता है, जो एक निश्चित प्रक्रिया के वर्चुअल मेमोरी अभिन्यास के बीच मैप को संग्रहित करता है और इस बात की सूचना भी संरक्षित करता है कि यह स्थान भौतिक मेमोरी एड्रेस से किस प्रकार संबंधित है।
*देशी [[डिबगर]] प्रोग्राम में, एक मेमोरी मैप लोडेड निष्पादन योग्य (या) लाइब्रेरी फ़ाइलों और मेमोरी क्षेत्रों के बीच मैपिंग को संदर्भित करता है। इन स्मृति मानचित्रों का उपयोग स्मृति पतों (जैसे [[समारोह सूचक]]) को वास्तविक प्रतीकों में हल करने के लिए किया जाता है।
*प्राचीन [[डिबगर|डेबुग्गेर]] प्रोग्राम में, एक मेमोरी मैप सुसंपन्न निष्पादन योग्य लाइब्रेरी फ़ाइलों और मेमोरी क्षेत्रों के बीच मैप को संदर्भित करता है। इन मेमोरी मैप का उपयोग मेमोरी एड्रेस (जैसे [[समारोह सूचक|फंक्शन पॉइंटर्स]]) को वास्तविक प्रतीकों में हल करने के लिए किया जाता है।


== पीसी [[BIOS]] मेमोरी मैप ==
== पीसी [[BIOS|बीआईओएस]] (BIOS) मेमोरी मैप ==
IBM पर्सनल कंप्यूटर और IBM PC संगत के लिए BIOS रूटीन का एक सेट प्रदान करता है जिसका उपयोग मेमोरी लेआउट प्राप्त करने के लिए ऑपरेटिंग सिस्टम या एप्लिकेशन द्वारा किया जा सकता है। कुछ उपलब्ध दिनचर्या हैं:
IBM पर्सनल कंप्यूटर और IBM पीसी संगत के लिए बीआईओएस रूटीन का एक समुच्चय प्रदान करता है जिसका उपयोग मेमोरी अभिन्यास प्राप्त करने के लिए प्रचालन प्रणाली या अनुप्रयोग द्वारा किया जा सकता है। कुछ उपलब्ध रूटीन हैं:


BIOS फ़ंक्शन: INT 0x15, AX = 0xE801:<ref>{{cite web|title=15E801|url=http://www.delorie.com/djgpp/doc/rbinter/id/48/17.html|publisher=}}</ref>
बीआईओएस फलन : INT 0x15, AX = 0xE801:<ref>{{cite web|title=15E801|url=http://www.delorie.com/djgpp/doc/rbinter/id/48/17.html|publisher=}}</ref>
इस BIOS इंटरप्ट कॉल का उपयोग 64MB+ कॉन्फ़िगरेशन के लिए मेमोरी आकार प्राप्त करने के लिए किया जाता है। यह 23 अगस्त, 1994 या उसके बाद के [[अमेरिकन मेगाट्रेंड्स]] BIOSses द्वारा समर्थित है। कॉलर AX को 0xE801 पर सेट करता है और फिर int 0x15 निष्पादित करता है। यदि कुछ त्रुटि हो गई है, तो सीएफ (कैरी फ्लैग) के साथ रूटीन रिटर्न 1 पर सेट होता है।
 
इस बीआईओएस बाधित निर्देश का उपयोग 64MB+ संरूपण के लिए मेमोरी आकार प्राप्त करने के लिए किया जाता है। यह 23 अगस्त, 1994 या उसके बाद के [[अमेरिकन मेगाट्रेंड्स]] BIOSses द्वारा समर्थित है। निर्देशकर्ता AX को 0xE801 पर निर्धारित करता है और फिर int 0x15 निष्पादित करता है। यदि कुछ त्रुटि हो गई है, तो सीएफ (कैरी फ्लैग) के साथ रूटीन रिटर्न 1 पर निर्धारित होता है।


{| class="wikitable"
{| class="wikitable"
|-
|-
! Register !! Value description
! रजिस्टर !! वैल्यू विवरण
|-
|-
| EAX || Extended memory between 1M and 16M, in KB. (Maximum value: 0x3C00 = 15360KB).
| ईएक्स || KB में 1M और 16M के बीच विस्तारित मेमोरी (अधिकतम मान: 0x3C00 = 15360KB)
|-
|-
| EBX || Count of 64K blocks above 16M.
| ईबीएक्स || 16M से ऊपर 64K ब्लॉक की गणना।
|-
|-
| ECX || Configured memory 1M to 16M, in KB.
| ईसीएक्स || KB में कॉन्फ़िगर की गई मेमोरी 1M से 16M।
|-
|-
| EDX || Count of configured 64K blocks above 16M.
| ईडीएक्स || 16M से ऊपर कॉन्फ़िगर किए गए 64K ब्लॉक की संख्या।
|}
|}
BIOS फ़ंक्शन: INT 0x15, AX=0xE820 - सिस्टम मेमोरी मैप प्राप्त करें:<ref>{{cite web|title=15E820|url=http://www.delorie.com/djgpp/doc/rbinter/id/50/17.html|publisher=}}</ref>
'''बीआईओएस फलन : INT 0x15, AX=0xE820 - सिस्टम मेमोरी मैप प्राप्त करें:'''<ref>{{cite web|title=15E820|url=http://www.delorie.com/djgpp/doc/rbinter/id/50/17.html|publisher=}}</ref>
 
इनपुट:
इनपुट:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Register !! Value description
! रजिस्टर !! वैल्यू विवरण
|-
| ईएक्स || KB में 1M और 16M के बीच विस्तारित मेमोरी। (अधिकतम मान: 0x3C00 = 15360KB)।
|-
|-
| EAX || 0x0000E820
| ईबीएक्स || 64a की गिनती! रजिस्टर !! वैल्यू विवरण
|-
|-
| EBX || Continuation value or 0x0 to start at beginning of map.
| ईएक्स || 0x0000E820
|-
|-
| ECX || Size of buffer for result (20 bytes).
| ईबीएक्स || मानचित्र की शुरुआत में प्रारम्भ करने के लिए निरंतरता मान या 0x0।
|-
|-
| EDX || 0x534D4150 (ASCII for 'SMAP')
| ईसीएक्स || परिणाम के लिए बफर का आकार (20 बाइट्स)
|-
|-
| ES:DI || segment:offset location of the buffer for result.
| ईडीएक्स || 0x534D4150 ('SMAP' के लिए ASCII)
|}
|-
एसएमएपी बफर संरचना:
| ईएस:डीआई || खंड: परिणाम के लिए बफर का ऑफसेट स्थान।
|}'''एसएमएपी बफर संरचना:'''
{| class="wikitable"
{| class="wikitable"
|-
|-
! Offset !! Size !! Value description
! ऑफसेट !! आकार !! वैल्यू विवरण
|-
|-
| 0 || QWORD (8 bytes) || Base address of memory map region referred to by EBX.
| 0 || QWORD (8 बाइट्स) || ईबीएक्स द्वारा संदर्भित मेमोरी मैप क्षेत्र का आधार एड्रेस।
|-
|-
| 8 || QWORD (8 bytes) || Length in bytes.
| 8 || QWORD (8 बाइट्स) || बाइट्स में लंबाई।
|-
|-
| 16 || DWORD (4 bytes) || Type of address range.
| 16 || DWORD (4 बाइट्स) || एड्रेस श्रेणी का प्रकार।
|}
|}
कैसे उपयोग किया जाता है: ऑपरेटिंग सिस्टम मेमोरी (20 बाइट्स बफर) में एक एसएमएपी बफर आवंटित करेगा। फिर इनपुट टेबल में बताए अनुसार रजिस्टर सेट करें। पहली कॉल पर, EBX को 0 पर सेट किया जाना चाहिए। अगला चरण INT 0x15 को कॉल करना है। यदि कोई त्रुटि नहीं है, तो इंटरप्ट कॉल सीएफ स्पष्ट और मेमोरी मैप के पहले क्षेत्र का प्रतिनिधित्व करने वाले डेटा से भरे बफर के साथ वापस आती है। EBX को BIOS द्वारा अपडेट किया जाता है ताकि जब OS रूटीन को फिर से कॉल करे, तो अगला क्षेत्र बफर में वापस आ जाए। यदि सब कुछ हो जाए तो BIOS EBX को शून्य पर सेट करता है।
कैसे उपयोग किया जाता है: प्रचालन प्रणाली मेमोरी (20 बाइट्स बफर) में एक एसएमएपी बफर निर्धारित करेगा। फिर इनपुट टेबल में निर्देश अनुसार रजिस्टर निर्धारित करें। पहली निर्देश पर, ईबीएक्स को 0 पर निर्धारित किया जाना चाहिए। अगला चरण INT 0x15 को निर्देश करना है। यदि कोई त्रुटि नहीं है, तो अवरूध्द निर्देश सीएफ स्पष्ट और मेमोरी मैप के पहले क्षेत्र का प्रतिनिधित्व करने वाले डेटा से भरे बफर के साथ वापस आती है। ईबीएक्स को बीआईओएस द्वारा अपडेट किया जाता है ताकि जब ओएस रूटीन को फिर से निर्देशित करते ही अगला क्षेत्र बफर में वापस आ जाए। यदि सब कुछ प्रक्रिया के अनुरूप ही हो तो बीआईओएस ईबीएक्स को शून्य पर निर्धारित करता है।


== यह भी देखें ==
== यह भी देखें ==
Line 62: Line 67:


{{Authority control}}
{{Authority control}}
[[Category: स्मृति]]




{{compsci-stub}}
{{compsci-stub}}


 
[[Category:All stub articles]]
 
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category: Machine Translated Page]]
[[Category:Articles with invalid date parameter in template]]
[[Category:Computer science stubs]]
[[Category:Created On 25/04/2023]]
[[Category:Created On 25/04/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Template documentation pages|Short description/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia articles needing clarification from April 2020]]

Latest revision as of 17:56, 3 May 2023

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

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

पीसी बीआईओएस (BIOS) मेमोरी मैप

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

बीआईओएस फलन : INT 0x15, AX = 0xE801:[1]

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

रजिस्टर वैल्यू विवरण
ईएक्स KB में 1M और 16M के बीच विस्तारित मेमोरी (अधिकतम मान: 0x3C00 = 15360KB)।
ईबीएक्स 16M से ऊपर 64K ब्लॉक की गणना।
ईसीएक्स KB में कॉन्फ़िगर की गई मेमोरी 1M से 16M।
ईडीएक्स 16M से ऊपर कॉन्फ़िगर किए गए 64K ब्लॉक की संख्या।

बीआईओएस फलन : INT 0x15, AX=0xE820 - सिस्टम मेमोरी मैप प्राप्त करें:[2]

इनपुट:

रजिस्टर वैल्यू विवरण
ईएक्स KB में 1M और 16M के बीच विस्तारित मेमोरी। (अधिकतम मान: 0x3C00 = 15360KB)।
ईबीएक्स 64a की गिनती! रजिस्टर !! वैल्यू विवरण
ईएक्स 0x0000E820
ईबीएक्स मानचित्र की शुरुआत में प्रारम्भ करने के लिए निरंतरता मान या 0x0।
ईसीएक्स परिणाम के लिए बफर का आकार (20 बाइट्स)।
ईडीएक्स 0x534D4150 ('SMAP' के लिए ASCII)
ईएस:डीआई खंड: परिणाम के लिए बफर का ऑफसेट स्थान।

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

ऑफसेट आकार वैल्यू विवरण
0 QWORD (8 बाइट्स) ईबीएक्स द्वारा संदर्भित मेमोरी मैप क्षेत्र का आधार एड्रेस।
8 QWORD (8 बाइट्स) बाइट्स में लंबाई।
16 DWORD (4 बाइट्स) एड्रेस श्रेणी का प्रकार।

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

यह भी देखें

संदर्भ

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