मेमोरी मैप: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{short description|Data structure}} | {{short description|Data structure}} | ||
{{Distinguish|मेमोरी-मैप की गई फ़ाइल}} | {{Distinguish|मेमोरी-मैप की गई फ़ाइल}} | ||
[[कंप्यूटर विज्ञान]] में, मेमोरी | [[कंप्यूटर विज्ञान]] में, मेमोरी मैप डेटा की वह संरचना है (जो सामान्यतः मेमोरी में ही रहती है) जो स्पष्ट करती है कि मुख्य मेमोरी किस प्रकार संरक्षित की जाती है। [[मुख्य स्मृति|मुख्य]] रूप से मेमोरी मैप शब्द के अलग-अलग संदर्भों में अलग-अलग अर्थ हो सकते हैं। | ||
*यह सबसे तीव्र और सबसे | *यह सबसे तीव्र और सबसे विभक्तिग्राही [[कैश (कंप्यूटिंग)]] संगठन है जो साहचर्य मेमोरी का उपयोग करता है। साहचर्य मेमोरी, मेमोरी शब्द के एड्रेस और विषय सूची दोनों को संग्रहीत करती है।{{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 पर निर्धारित होता है। | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! | ! रजिस्टर !! वैल्यू विवरण | ||
|- | |- | ||
| ईएक्स || KB में 1M और 16M के बीच विस्तारित | | ईएक्स || 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 - सिस्टम मेमोरी | '''बीआईओएस फलन : 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। | ||
|- | |- | ||
| ईसीएक्स || परिणाम के लिए बफर का आकार (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 बाइट्स बफर) में एक एसएमएपी बफर निर्धारित करेगा। फिर इनपुट टेबल में | कैसे उपयोग किया जाता है: प्रचालन प्रणाली मेमोरी (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 को निर्देश करना है। यदि कोई त्रुटि नहीं है, तो अवरूध्द निर्देश सीएफ स्पष्ट और मेमोरी मैप के पहले क्षेत्र का प्रतिनिधित्व करने वाले डेटा से भरे बफर के साथ वापस आती है। ईबीएक्स को बीआईओएस द्वारा अपडेट किया जाता है ताकि जब ओएस रूटीन को फिर से निर्देशित करते ही अगला क्षेत्र बफर में वापस आ जाए। यदि सब कुछ प्रक्रिया के अनुरूप ही हो तो बीआईओएस ईबीएक्स को शून्य पर निर्धारित करता है।
यह भी देखें
- बीआईओएस
- RAMMap मार्क रोसिनोविच द्वारा
संदर्भ