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

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


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


बीआईओएस फलन : 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>


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


{| class="wikitable"
{| class="wikitable"
|-
|-
! पंजीकरण करवाना !! मूल्य विवरण
! रजिस्टर !! वैल्यू विवरण
|-
|-
| ईएक्स || KB में 1M और 16M के बीच विस्तारित मेमोरी। (अधिकतम मान: 0x3C00 = 15360KB)।
| ईएक्स || KB में 1M और 16M के बीच विस्तारित मेमोरी (अधिकतम मान: 0x3C00 = 15360KB)।
|-
|-
| ईबीएक्स || 16M से ऊपर 64K ब्लॉक की गिनती।
| ईबीएक्स || 16M से ऊपर 64K ब्लॉक की गणना।
|-
|-
| ईसीएक्स || KB में कॉन्फ़िगर की गई मेमोरी 1M से 16M।
| ईसीएक्स || KB में कॉन्फ़िगर की गई मेमोरी 1M से 16M।
Line 26: Line 26:
| ईडीएक्स || 16M से ऊपर कॉन्फ़िगर किए गए 64K ब्लॉक की संख्या।
| ईडीएक्स || 16M से ऊपर कॉन्फ़िगर किए गए 64K ब्लॉक की संख्या।
|}
|}
'''बीआईओएस फलन : 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"
|-
|-
! पंजीकरण करवाना !! मूल्य विवरण
! रजिस्टर !! वैल्यू विवरण
|-
|-
| ईएक्स || KB में 1M और 16M के बीच विस्तारित मेमोरी। (अधिकतम मान: 0x3C00 = 15360KB)।
| ईएक्स || KB में 1M और 16M के बीच विस्तारित मेमोरी। (अधिकतम मान: 0x3C00 = 15360KB)।
|-
|-
| ईबीएक्स || 64a की गिनती! पंजीकरण करवाना !! मूल्य विवरण
| ईबीएक्स || 64a की गिनती! रजिस्टर !! वैल्यू विवरण
|-
|-
| ईएक्स || 0x0000E820
| ईएक्स || 0x0000E820
|-
|-
| ईबीएक्स || मानचित्र की शुरुआत में शुरू करने के लिए निरंतरता मान या 0x0।
| ईबीएक्स || मानचित्र की शुरुआत में प्रारम्भ करने के लिए निरंतरता मान या 0x0।
|-
|-
| ईसीएक्स || परिणाम के लिए बफर का आकार (20 बाइट्स)।
| ईसीएक्स || परिणाम के लिए बफर का आकार (20 बाइट्स)।
Line 49: Line 49:
{| class="wikitable"
{| class="wikitable"
|-
|-
! ऑफसेट !! आकार !! मूल्य विवरण
! ऑफसेट !! आकार !! वैल्यू विवरण
|-
|-
| 0 || QWORD (8 बाइट्स) || ईबीएक्स द्वारा संदर्भित मेमोरी मैप क्षेत्र का आधार पता।
| 0 || QWORD (8 बाइट्स) || ईबीएक्स द्वारा संदर्भित मेमोरी मैप क्षेत्र का आधार एड्रेस।
|-
|-
| 8 || QWORD (8 बाइट्स) || बाइट्स में लंबाई।
| 8 || QWORD (8 बाइट्स) || बाइट्स में लंबाई।
|-
|-
| 16 || DWORD (4 बाइट्स) || पता श्रेणी का प्रकार।
| 16 || DWORD (4 बाइट्स) || एड्रेस श्रेणी का प्रकार।
|}
|}
कैसे उपयोग किया जाता है: प्रचालन प्रणाली मेमोरी (20 बाइट्स बफर) में एक एसएमएपी बफर निर्धारित करेगा। फिर इनपुट टेबल में बताए अनुसार रजिस्टर निर्धारित करें। पहली कॉल पर, ईबीएक्स को 0 पर निर्धारित किया जाना चाहिए। अगला चरण INT 0x15 को कॉल करना है। यदि कोई त्रुटि नहीं है, तो अवरूध्द कॉल सीएफ स्पष्ट और मेमोरी प्रतिचित्र  के पहले क्षेत्र का प्रतिनिधित्व करने वाले डेटा से भरे बफर के साथ वापस आती है। ईबीएक्स को बीआईओएस द्वारा अपडेट किया जाता है ताकि जब ओएस रूटीन को फिर से कॉल करे, तो अगला क्षेत्र बफर में वापस आ जाए। यदि सब कुछ हो जाए तो बीआईओएस ईबीएक्स को शून्य पर निर्धारित करता है।
कैसे उपयोग किया जाता है: प्रचालन प्रणाली मेमोरी (20 बाइट्स बफर) में एक एसएमएपी बफर निर्धारित करेगा। फिर इनपुट टेबल में निर्देश अनुसार रजिस्टर निर्धारित करें। पहली निर्देश पर, ईबीएक्स को 0 पर निर्धारित किया जाना चाहिए। अगला चरण INT 0x15 को निर्देश करना है। यदि कोई त्रुटि नहीं है, तो अवरूध्द निर्देश सीएफ स्पष्ट और मेमोरी मैप के पहले क्षेत्र का प्रतिनिधित्व करने वाले डेटा से भरे बफर के साथ वापस आती है। ईबीएक्स को बीआईओएस द्वारा अपडेट किया जाता है ताकि जब ओएस रूटीन को फिर से निर्देशित करते ही अगला क्षेत्र बफर में वापस आ जाए। यदि सब कुछ प्रक्रिया के अनुरूप ही हो तो बीआईओएस ईबीएक्स को शून्य पर निर्धारित करता है।


== यह भी देखें ==
== यह भी देखें ==

Revision as of 09:22, 30 April 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".