वर्चुअल एड्रेस स्पेस: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{redirect2|Virtual address|virtual addressing}}
{{redirect2|वर्चुअल एड्रेस|वर्चुअल एड्रेसिंग}}
[[Image:Virtual address space and physical address space relationship.svg|thumb|300px]][[कम्प्यूटिंग]] में, वर्चुअल [[पता स्थान]] (वीएएस) या एड्रेस स्पेस वर्चुअल एड्रेस की श्रेणी का सेट है जो एक [[ऑपरेटिंग सिस्टम]] एक प्रक्रिया के लिए उपलब्ध कराता है।<ref>{{cite web|last=IBM Corporation|title=What is an address space?|url=http://publib.boulder.ibm.com/infocenter/zos/basics/index.jsp?topic=/com.ibm.zos.zconcepts/zconcepts_82.htm|access-date=August 24, 2013}}</ref> आभासी पतों की सीमा आमतौर पर कम पते पर शुरू होती है और कंप्यूटर के निर्देश सेट द्वारा अनुमत उच्चतम पते तक विस्तारित हो सकती है और ऑपरेटिंग सिस्टम के सूचक आकार के कार्यान्वयन द्वारा समर्थित होती है, जो [[32-बिट]] के लिए 4 [[बाइट्स]] या [[64-बिट]] के लिए 8 बाइट्स हो सकती है। ओएस संस्करण। यह कई लाभ प्रदान करता है, जिनमें से एक [[प्रक्रिया अलगाव]] के माध्यम से सुरक्षा है, यह मानते हुए कि प्रत्येक प्रक्रिया को एक अलग पता स्थान दिया गया है।
[[Image:Virtual address space and physical address space relationship.svg|thumb|300px]][[कम्प्यूटिंग]] में, वर्चुअल [[पता स्थान|एड्रेस स्पेस]] (वीएएस) या एड्रेस स्पेस वर्चुअल एड्रेस की सीमाओं का सेट है जो [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]] एक प्रक्रिया के लिए उपलब्ध कराता है।<ref>{{cite web|last=IBM Corporation|title=What is an address space?|url=http://publib.boulder.ibm.com/infocenter/zos/basics/index.jsp?topic=/com.ibm.zos.zconcepts/zconcepts_82.htm|access-date=August 24, 2013}}</ref> वर्चुअल एड्रेस की सीमा सामान्यतः कम एड्रेस पर प्रारंभ होती है और कंप्यूटर के निर्देश सेट द्वारा अनुमत उच्चतम एड्रेस तक विस्तारित हो सकती है और ऑपरेटिंग प्रणाली के सूचक आकार के कार्यान्वयन द्वारा समर्थित होती है, जो [[32-बिट]] के लिए 4 [[बाइट्स]] या [[64-बिट]] के लिए 8 बाइट्स ओएस संस्करण हो सकती है। यह कई लाभ प्रदान करता है, जिनमें से एक [[प्रक्रिया अलगाव]] के माध्यम से सुरक्षा है, यह मानते हुए कि प्रत्येक प्रक्रिया को एक अलग एड्रेस स्पेस दिया गया है।


== उदाहरण ==
== उदाहरण ==
: निम्नलिखित विवरण में, उपयोग की जाने वाली शब्दावली विशेष रूप से [[विंडोज एनटी]] ऑपरेटिंग सिस्टम के लिए होगी, लेकिन अवधारणाएं अन्य वर्चुअल मेमोरी ऑपरेटिंग सिस्टम पर लागू होती हैं।
: निम्नलिखित विवरण में, उपयोग की जाने वाली शब्दावली विशेष रूप से [[विंडोज एनटी]] ऑपरेटिंग प्रणाली के लिए होगी, किन्तु अवधारणाएं अन्य वर्चुअल मेमोरी ऑपरेटिंग प्रणाली पर प्रायुक्त होती हैं।


जब 32-बिट OS पर एक नया एप्लिकेशन निष्पादित किया जाता है, तो प्रक्रिया में एक होता है {{nowrap|4 [[Gibibyte|GiB]]}} वीएएस: मेमोरी पतों में से प्रत्येक (0 से 2<sup>32</sup> − 1) उस स्थान में मान के रूप में एक बाइट हो सकता है। प्रारंभ में, उनमें से कोई भी मान नहीं है ('-' कोई मान नहीं दर्शाता है)ऐसे VAS में मानों का उपयोग करने या सेट करने से पेज दोष हो सकता है।<syntaxhighlight lang="d">
 
जब 32-बिट OS पर एक नया एप्लिकेशन निष्पादित किया जाता है, तो प्रक्रिया में एक होता है {{nowrap|4 [[Gibibyte|गीगाबाइट]]}} वीएएस: मेमोरी एड्रेस (0 से 2<sup>32</sup> − 1) में से प्रत्येक उस स्पेस में मान के रूप में एक बाइट हो सकता है। प्रारंभ में, उनमें से कोई भी मान ('-' कोई मान नहीं दर्शाता है) नहीं है। ऐसे वीएएस में मानों का उपयोग करने या सेट करने से पेज दोष हो सकता है।<syntaxhighlight lang="d">
   0                                          4 GiB
   0                                          4 GiB
VAS        |----------------------------------------------|
VAS        |----------------------------------------------|
</syntaxhighlight>तब एप्लिकेशन की निष्पादन योग्य फ़ाइल को VAS में मैप किया जाता है। वीएएस प्रक्रिया में पतों को एक्सई फ़ाइल में बाइट्स में मैप किया जाता है। ओएस मैपिंग का प्रबंधन करता है:<syntaxhighlight lang="d">
</syntaxhighlight>तब एप्लिकेशन की निष्पादन योग्य फ़ाइल को वीएएस में माप किया जाता है। वीएएस प्रक्रिया में एड्रेस को एक्सई फ़ाइल में बाइट्स में माप किया जाता है। ओएस मैपिंग का प्रबंधन करता है:<syntaxhighlight lang="d">
0                                          4 GiB
0                                          4 GiB
VAS        |---vvv----------------------------------------|
VAS        |---vvv----------------------------------------|
mapping        |||
mapping        |||
file bytes    app
file bytes    app
</syntaxhighlight>वी [[मेमोरी-मैप की गई फ़ाइल]] में बाइट्स से मान हैं। फिर, आवश्यक [[डायनामिक-लिंक लाइब्रेरी]] फ़ाइलों को मैप किया जाता है (इसमें कस्टम लाइब्रेरी के साथ-साथ सिस्टम वाले भी शामिल हैं <code>kernel32.dll</code> और <code>user32.dll</code>):
</syntaxhighlight>वी [[मेमोरी-मैप की गई फ़ाइल|मेमोरी-माप की गई फ़ाइल]] में बाइट्स से मान हैं। फिर, आवश्यक [[डायनामिक-लिंक लाइब्रेरी]] फ़ाइलों को माप (इसमें कस्टम लाइब्रेरी के साथ-साथ प्रणाली वाले भी सम्मिलित हैं <code>kernel32.dll</code> और <code>user32.dll</code>) किया जाता है:<syntaxhighlight lang="d">
 
0                                          4 GiB
प्रक्रिया तब exe फ़ाइल में बाइट निष्पादित करना प्रारंभ करती है। हालाँकि, जिस तरह से प्रक्रिया अपने VAS में '-' मानों का उपयोग या सेट कर सकती है, वह OS से उन्हें फ़ाइल से बाइट्स में मैप करने के लिए कहना है। इस तरह से वीएएस मेमोरी का उपयोग करने का एक सामान्य तरीका इसे [[पेज फ़ाइल]] में मैप करना है। पृष्ठ फ़ाइल एक एकल फ़ाइल है, लेकिन सन्निहित बाइट्स के कई अलग-अलग सेटों को VAS में मैप किया जा सकता है:
VAS        |---vvv--------vvvvvv---vvvv-------------------|
 
mapping        |||        ||||||  ||||
            0 4 जीआईबी
file bytes    app        kernel  user
वीएएस |---वीवीवी--------वीवीवीवीवी---वीवीवीवी----वीवी---वी----वीवीवी--|
</syntaxhighlight>प्रक्रिया तब exe फ़ाइल में बाइट निष्पादित करना प्रारंभ करती है। चूँकि, जिस प्रकार से प्रक्रिया अपने वीएएस में '-' मानों का उपयोग या सेट कर सकती है, वह ओएस से उन्हें फ़ाइल से बाइट्स में माप करने के लिए कहना है। इस प्रकार से वीएएस मेमोरी का उपयोग करने का एक सामान्य तरीका इसे [[पेज फ़ाइल]] में माप करना है। पृष्ठ फ़ाइल एक एकल फ़ाइल है, किन्तु सन्निहित बाइट्स के कई अलग-अलग सेटों को वीएएस में माप किया जा सकता है:<syntaxhighlight lang="d">
मैपिंग ||| |||||||||||| |||| || | |||
0                                           4 GiB
  फ़ाइल बाइट्स ऐप कर्नेल उपयोगकर्ता system_page_file
VAS        |---vvv--------vvvvvv---vvvv----vv---v----vvv--|
mapping        |||       ||||||   ||||   ||   |    |||
file bytes    app        kernel  user  system_page_file
</syntaxhighlight>और पृष्ठ फ़ाइल के विभिन्न भाग विभिन्न प्रक्रियाओं के वीएएस में माप कर सकते हैं:<syntaxhighlight lang="d">
0                                          4 GiB
VAS 1      |---vvvv-------vvvvvv---vvvv----vv---v----vvv--|
mapping        ||||      ||||||   ||||    ||  |    |||
file bytes    app1 app2  kernel  user  system_page_file
mapping            |||| ||||||  ||||      ||  |
VAS 2      |--------vvvv--vvvvvv---vvvv-------vv---v------|
</syntaxhighlight>[[Microsoft Windows|माइक्रोसॉफ़्ट विंडोज़]] 32-बिट पर, डिफ़ॉल्ट रूप से, केवल {{nowrap|2 गीगाबाइट}} प्रक्रियाओं को उनके स्वयं के उपयोग के लिए उपलब्ध कराया जाता है।<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/aa366912(VS.85).aspx|title=Virtual Address Space|publisher=Microsoft|work=[[MSDN]]}}</ref> अन्य {{nowrap|2 गीगाबाइट}} ऑपरेटिंग प्रणाली द्वारा उपयोग किया जाता है। माइक्रोसॉफ़्ट विंडोज़ के बाद के 32-बिट संस्करणों में उपयोगकर्ता-मोड वर्चुअल एड्रेस स्पेस को विस्तारित करना संभव है {{nowrap|3 गीगाबाइट}} चूँकि केवल {{nowrap|1 गीगाबाइट}} प्रोग्राम को इमेज_फाइल_लार्ज_एड्रेस_अवेयर के रूप में चिह्नित करके और बूट.आईएनआई फ़ाइल में /3जीबी स्विच को सक्षम करके कर्नेल-मोड वर्चुअल एड्रेस स्पेस के लिए छोड़ दिया गया है।<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/ms680349(v=VS.85).aspx|title=LOADED_IMAGE structure|publisher=Microsoft|work=[[MSDN]]}}</ref><ref name="4gbtuning"/>


और पृष्ठ फ़ाइल के विभिन्न भाग विभिन्न प्रक्रियाओं के VAS में मैप कर सकते हैं:
माइक्रोसॉफ़्ट विंडोज़ 64-बिट पर, एक निष्पादन योग्य चलाने वाली प्रक्रिया में जो /लार्जएड्रेसअवेयर:एनओ से जुड़ा था, ऑपरेटिंग प्रणाली कृत्रिम रूप से प्रक्रिया के वर्चुअल एड्रेस स्पेस के उपयोगकर्ता मोड भाग को 2 गीगाबाइट तक सीमित कर देता है। यह 32- और 64-बिट निष्पादनयोग्य दोनों पर प्रायुक्त होता है।<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/wz223b1z%28v=VS.100%29.aspx|title=/LARGEADDRESSAWARE (Handle Large Addresses)|publisher=Microsoft|work=[[MSDN]]}}</ref><ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/aa384271%28VS.85%29.aspx|title=Virtual Address Space|publisher=Microsoft|work=[[MSDN]]}}</ref> निष्पादनयोग्य चलाने वाली प्रक्रियाएँ जो /लार्जेडड्रेसवेयर:हाँ विकल्प से जुड़ी थीं, जो 64-बिट विज़ुअल स्टूडियो 2010 और बाद के संस्करण के लिए डिफ़ॉल्ट है,<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/wz223b1z(v=vs.100).aspx|title=/LARGEADDRESSAWARE (Handle Large Addresses)|publisher=Microsoft|work=[[MSDN]]}}</ref> {{nowrap|2 गीगाबाइट}} वर्चुअल एड्रेस स्पेस की: तक {{nowrap|4 गीगाबाइट }} 32-बिट एक्जीक्यूटेबल्स के लिए, अप करने के लिए {{nowrap|8 टेराबाइट}} विंडोज 8 के माध्यम से विंडोज में 64-बिट एक्जीक्यूटेबल्स के लिए, और {{nowrap|128 TiB}} विंडोज 8.1 और बाद में 64-बिट निष्पादनयोग्य के लिएसे अधिक तक पहुंच है ।<ref name="4gbtuning">{{cite web|url=https://msdn.microsoft.com/en-us/library/bb613473(v=VS.85).aspx|title=4-Gigabyte Tuning: BCDEdit and Boot.ini|publisher=Microsoft|work=[[MSDN]]}}</ref><ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/wz223b1z(VS.80).aspx|title=/LARGEADDRESSAWARE (Handle Large Addresses)|publisher=Microsoft|work=[[MSDN]]}}</ref>


            0 4 जीआईबी
सी (प्रोग्रामिंग लैंग्वेज) के [[malloc|मॉलोक]] के माध्यम से मेमोरी आवंटित करना स्थापित करता है
वीएएस 1 |---vvvv-------vvvvvv---vvvv----vv---v----vvv--|
मैपिंग |||| |||||||||||| |||| || | |||
फ़ाइल बाइट app1 app2 कर्नेल उपयोगकर्ता system_page_file
मैपिंग |||| |||||||||||| |||| || |
वीएएस 2 |--------vvvv--vvvvvv---vvvv-------vv---v------|


[[Microsoft Windows]] 32-बिट पर, डिफ़ॉल्ट रूप से, केवल {{nowrap|2 GiB}} प्रक्रियाओं को उनके स्वयं के उपयोग के लिए उपलब्ध कराया जाता है।<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/aa366912(VS.85).aspx|title=Virtual Address Space|publisher=Microsoft|work=[[MSDN]]}}</ref> अन्य {{nowrap|2 GiB}} ऑपरेटिंग सिस्टम द्वारा उपयोग किया जाता है। Microsoft Windows के बाद के 32-बिट संस्करणों में उपयोगकर्ता-मोड वर्चुअल एड्रेस स्पेस को विस्तारित करना संभव है {{nowrap|3 GiB}} जबकि केवल {{nowrap|1 GiB}} प्रोग्राम को IMAGE_FILE_LARGE_ADDRESS_AWARE के रूप में चिह्नित करके और boot.ini फ़ाइल में /3GB स्विच को सक्षम करके कर्नेल-मोड वर्चुअल एड्रेस स्पेस के लिए छोड़ दिया गया है।<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/ms680349(v=VS.85).aspx|title=LOADED_IMAGE structure|publisher=Microsoft|work=[[MSDN]]}}</ref><ref name="4gbtuning"/>
पृष्ठ फ़ाइल को किसी भी नए वर्चुअल एड्रेस स्पेस के लिए बैकिंग स्टोर के रूप में। चूँकि, एक प्रक्रिया मेमोरी-माप की गई फ़ाइल फ़ाइल बाइट्स भी कर सकती है।
 
Microsoft Windows 64-बिट पर, एक निष्पादन योग्य चलाने वाली प्रक्रिया में जो /LARGEADDRESSAWARE:NO से जुड़ा था, ऑपरेटिंग सिस्टम कृत्रिम रूप से प्रक्रिया के वर्चुअल एड्रेस स्पेस के उपयोगकर्ता मोड हिस्से को 2 GiB तक सीमित कर देता है। यह 32- और 64-बिट निष्पादनयोग्य दोनों पर लागू होता है।<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/wz223b1z%28v=VS.100%29.aspx|title=/LARGEADDRESSAWARE (Handle Large Addresses)|publisher=Microsoft|work=[[MSDN]]}}</ref><ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/aa384271%28VS.85%29.aspx|title=Virtual Address Space|publisher=Microsoft|work=[[MSDN]]}}</ref> निष्पादनयोग्य चलाने वाली प्रक्रियाएँ जो /लार्जेडड्रेसवेयर:हाँ विकल्प से जुड़ी थीं, जो 64-बिट विज़ुअल स्टूडियो 2010 और बाद के संस्करण के लिए डिफ़ॉल्ट है,<ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/wz223b1z(v=vs.100).aspx|title=/LARGEADDRESSAWARE (Handle Large Addresses)|publisher=Microsoft|work=[[MSDN]]}}</ref> से अधिक तक पहुंच है {{nowrap|2 GiB}} वर्चुअल एड्रेस स्पेस की: तक {{nowrap|4 GiB}} 32-बिट एक्जीक्यूटेबल्स के लिए, अप करने के लिए {{nowrap|8 TiB}} विंडोज 8 के माध्यम से विंडोज में 64-बिट एक्जीक्यूटेबल्स के लिए, और {{nowrap|128 TiB}} विंडोज 8.1 और बाद में 64-बिट निष्पादनयोग्य के लिए।<ref name="4gbtuning">{{cite web|url=https://msdn.microsoft.com/en-us/library/bb613473(v=VS.85).aspx|title=4-Gigabyte Tuning: BCDEdit and Boot.ini|publisher=Microsoft|work=[[MSDN]]}}</ref><ref>{{cite web|url=https://msdn.microsoft.com/en-us/library/wz223b1z(VS.80).aspx|title=/LARGEADDRESSAWARE (Handle Large Addresses)|publisher=Microsoft|work=[[MSDN]]}}</ref>
C (प्रोग्रामिंग लैंग्वेज) के [[malloc]] के माध्यम से मेमोरी आवंटित करना स्थापित करता है
पृष्ठ फ़ाइल को किसी भी नए वर्चुअल पता स्थान के लिए बैकिंग स्टोर के रूप में। हालाँकि, एक प्रक्रिया मेमोरी-मैप की गई फ़ाइल फ़ाइल बाइट्स भी कर सकती है।


== [[लिनक्स]] ==
== [[लिनक्स]] ==
x[[86]] CPUs के लिए, Linux 32-बिट उपयोगकर्ता और कर्नेल पता श्रेणियों को अलग-अलग तरीकों से विभाजित करने की अनुमति देता है: 3G/1G उपयोगकर्ता/कर्नेल (डिफ़ॉल्ट), 1G/3G उपयोगकर्ता/कर्नेल या 2G/2G उपयोगकर्ता/कर्नेल।<ref>{{cite web|url=https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/x86/Kconfig#n1446|title=Linux kernel - x86: Memory split}}</ref>
x[[86]] सीपीयू के लिए, लिनक्स 32-बिट उपयोगकर्ता और कर्नेल एड्रेस श्रेणियों को अलग-अलग विधियों से विभाजित: 3जी/1जी उपयोगकर्ता/कर्नेल (डिफ़ॉल्ट), 1जी/3जी उपयोगकर्ता/कर्नेल या 2जी/2जी उपयोगकर्ता/कर्नेल करने की अनुमति देता है।<ref>{{cite web|url=https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/x86/Kconfig#n1446|title=Linux kernel - x86: Memory split}}</ref>




== यह भी देखें ==
== यह भी देखें ==
* [[रैखिक पता स्थान]]
* [[रैखिक पता स्थान|रैखिक एड्रेस स्पेस]]
* [[सिंगल एड्रेस स्पेस ऑपरेटिंग सिस्टम]]
* [[सिंगल एड्रेस स्पेस ऑपरेटिंग सिस्टम|सिंगल एड्रेस स्पेस ऑपरेटिंग प्रणाली]]


== टिप्पणियाँ ==
== टिप्पणियाँ ==
Line 52: Line 54:
* "'''Advanced Windows'''" by Jeffrey Richter, Microsoft Press
* "'''Advanced Windows'''" by Jeffrey Richter, Microsoft Press


{{Data types}}
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category: आभासी मेमोरी]]
[[Category:Collapse templates]]
[[de:Virtueller Adressraum]]
 
 
 
[[Category: Machine Translated Page]]
[[Category:Created On 17/02/2023]]
[[Category:Created On 17/02/2023]]
[[Category:Machine Translated Page]]
[[Category:Missing redirects]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]

Latest revision as of 12:39, 14 March 2023

Virtual address space and physical address space relationship.svg

कम्प्यूटिंग में, वर्चुअल एड्रेस स्पेस (वीएएस) या एड्रेस स्पेस वर्चुअल एड्रेस की सीमाओं का सेट है जो ऑपरेटिंग प्रणाली एक प्रक्रिया के लिए उपलब्ध कराता है।[1] वर्चुअल एड्रेस की सीमा सामान्यतः कम एड्रेस पर प्रारंभ होती है और कंप्यूटर के निर्देश सेट द्वारा अनुमत उच्चतम एड्रेस तक विस्तारित हो सकती है और ऑपरेटिंग प्रणाली के सूचक आकार के कार्यान्वयन द्वारा समर्थित होती है, जो 32-बिट के लिए 4 बाइट्स या 64-बिट के लिए 8 बाइट्स ओएस संस्करण हो सकती है। यह कई लाभ प्रदान करता है, जिनमें से एक प्रक्रिया अलगाव के माध्यम से सुरक्षा है, यह मानते हुए कि प्रत्येक प्रक्रिया को एक अलग एड्रेस स्पेस दिया गया है।

उदाहरण

निम्नलिखित विवरण में, उपयोग की जाने वाली शब्दावली विशेष रूप से विंडोज एनटी ऑपरेटिंग प्रणाली के लिए होगी, किन्तु अवधारणाएं अन्य वर्चुअल मेमोरी ऑपरेटिंग प्रणाली पर प्रायुक्त होती हैं।


जब 32-बिट OS पर एक नया एप्लिकेशन निष्पादित किया जाता है, तो प्रक्रिया में एक होता है 4 गीगाबाइट वीएएस: मेमोरी एड्रेस (0 से 232 − 1) में से प्रत्येक उस स्पेस में मान के रूप में एक बाइट हो सकता है। प्रारंभ में, उनमें से कोई भी मान ('-' कोई मान नहीं दर्शाता है) नहीं है। ऐसे वीएएस में मानों का उपयोग करने या सेट करने से पेज दोष हो सकता है।

  0                                           4 GiB
VAS        |----------------------------------------------|

तब एप्लिकेशन की निष्पादन योग्य फ़ाइल को वीएएस में माप किया जाता है। वीएएस प्रक्रिया में एड्रेस को एक्सई फ़ाइल में बाइट्स में माप किया जाता है। ओएस मैपिंग का प्रबंधन करता है:

0                                           4 GiB
VAS        |---vvv----------------------------------------|
mapping        |||
file bytes     app

वी मेमोरी-माप की गई फ़ाइल में बाइट्स से मान हैं। फिर, आवश्यक डायनामिक-लिंक लाइब्रेरी फ़ाइलों को माप (इसमें कस्टम लाइब्रेरी के साथ-साथ प्रणाली वाले भी सम्मिलित हैं kernel32.dll और user32.dll) किया जाता है:

0                                           4 GiB
VAS        |---vvv--------vvvvvv---vvvv-------------------|
mapping        |||        ||||||   ||||
file bytes     app        kernel   user

प्रक्रिया तब exe फ़ाइल में बाइट निष्पादित करना प्रारंभ करती है। चूँकि, जिस प्रकार से प्रक्रिया अपने वीएएस में '-' मानों का उपयोग या सेट कर सकती है, वह ओएस से उन्हें फ़ाइल से बाइट्स में माप करने के लिए कहना है। इस प्रकार से वीएएस मेमोरी का उपयोग करने का एक सामान्य तरीका इसे पेज फ़ाइल में माप करना है। पृष्ठ फ़ाइल एक एकल फ़ाइल है, किन्तु सन्निहित बाइट्स के कई अलग-अलग सेटों को वीएएस में माप किया जा सकता है:

0                                           4 GiB
VAS        |---vvv--------vvvvvv---vvvv----vv---v----vvv--|
mapping        |||        ||||||   ||||    ||   |    |||
file bytes     app        kernel   user   system_page_file

और पृष्ठ फ़ाइल के विभिन्न भाग विभिन्न प्रक्रियाओं के वीएएस में माप कर सकते हैं:

0                                           4 GiB
VAS 1      |---vvvv-------vvvvvv---vvvv----vv---v----vvv--|
mapping        ||||       ||||||   ||||    ||   |    |||
file bytes     app1 app2  kernel   user   system_page_file
mapping             ||||  ||||||   ||||       ||   |
VAS 2      |--------vvvv--vvvvvv---vvvv-------vv---v------|

माइक्रोसॉफ़्ट विंडोज़ 32-बिट पर, डिफ़ॉल्ट रूप से, केवल 2 गीगाबाइट प्रक्रियाओं को उनके स्वयं के उपयोग के लिए उपलब्ध कराया जाता है।[2] अन्य 2 गीगाबाइट ऑपरेटिंग प्रणाली द्वारा उपयोग किया जाता है। माइक्रोसॉफ़्ट विंडोज़ के बाद के 32-बिट संस्करणों में उपयोगकर्ता-मोड वर्चुअल एड्रेस स्पेस को विस्तारित करना संभव है 3 गीगाबाइट चूँकि केवल 1 गीगाबाइट प्रोग्राम को इमेज_फाइल_लार्ज_एड्रेस_अवेयर के रूप में चिह्नित करके और बूट.आईएनआई फ़ाइल में /3जीबी स्विच को सक्षम करके कर्नेल-मोड वर्चुअल एड्रेस स्पेस के लिए छोड़ दिया गया है।[3][4]

माइक्रोसॉफ़्ट विंडोज़ 64-बिट पर, एक निष्पादन योग्य चलाने वाली प्रक्रिया में जो /लार्जएड्रेसअवेयर:एनओ से जुड़ा था, ऑपरेटिंग प्रणाली कृत्रिम रूप से प्रक्रिया के वर्चुअल एड्रेस स्पेस के उपयोगकर्ता मोड भाग को 2 गीगाबाइट तक सीमित कर देता है। यह 32- और 64-बिट निष्पादनयोग्य दोनों पर प्रायुक्त होता है।[5][6] निष्पादनयोग्य चलाने वाली प्रक्रियाएँ जो /लार्जेडड्रेसवेयर:हाँ विकल्प से जुड़ी थीं, जो 64-बिट विज़ुअल स्टूडियो 2010 और बाद के संस्करण के लिए डिफ़ॉल्ट है,[7] 2 गीगाबाइट वर्चुअल एड्रेस स्पेस की: तक 4 गीगाबाइट 32-बिट एक्जीक्यूटेबल्स के लिए, अप करने के लिए 8 टेराबाइट विंडोज 8 के माध्यम से विंडोज में 64-बिट एक्जीक्यूटेबल्स के लिए, और 128 TiB विंडोज 8.1 और बाद में 64-बिट निष्पादनयोग्य के लिएसे अधिक तक पहुंच है ।[4][8]

सी (प्रोग्रामिंग लैंग्वेज) के मॉलोक के माध्यम से मेमोरी आवंटित करना स्थापित करता है

पृष्ठ फ़ाइल को किसी भी नए वर्चुअल एड्रेस स्पेस के लिए बैकिंग स्टोर के रूप में। चूँकि, एक प्रक्रिया मेमोरी-माप की गई फ़ाइल फ़ाइल बाइट्स भी कर सकती है।

लिनक्स

x86 सीपीयू के लिए, लिनक्स 32-बिट उपयोगकर्ता और कर्नेल एड्रेस श्रेणियों को अलग-अलग विधियों से विभाजित: 3जी/1जी उपयोगकर्ता/कर्नेल (डिफ़ॉल्ट), 1जी/3जी उपयोगकर्ता/कर्नेल या 2जी/2जी उपयोगकर्ता/कर्नेल करने की अनुमति देता है।[9]


यह भी देखें

टिप्पणियाँ

  1. IBM Corporation. "What is an address space?". Retrieved August 24, 2013.
  2. "Virtual Address Space". MSDN. Microsoft.
  3. "LOADED_IMAGE structure". MSDN. Microsoft.
  4. 4.0 4.1 "4-Gigabyte Tuning: BCDEdit and Boot.ini". MSDN. Microsoft.
  5. "/LARGEADDRESSAWARE (Handle Large Addresses)". MSDN. Microsoft.
  6. "Virtual Address Space". MSDN. Microsoft.
  7. "/LARGEADDRESSAWARE (Handle Large Addresses)". MSDN. Microsoft.
  8. "/LARGEADDRESSAWARE (Handle Large Addresses)". MSDN. Microsoft.
  9. "Linux kernel - x86: Memory split".


संदर्भ

  • "Advanced Windows" by Jeffrey Richter, Microsoft Press