मैंने ऑपरेटिंग सिस्टम डिज़ाइन और अवधारणा के बारे में एक कोर्स लिया है और अब मैं लिनक्स कर्नेल को पूरी तरह से पढ़ाने की कोशिश कर रहा हूं। मेरे पास एक सवाल है कि मैं छुटकारा नहीं पा सकता हूं। आधुनिक ऑपरेटिंग सिस्टम में प्रत्येक प्रक्रिया में वर्चुअल एड्रेस स्पेस (वीएएस) होता है (उदाहरण के लिए, 32-बिट सिस्टम में 0 से 2^32-1)। यह कई फायदे प्रदान करता है। लेकिन कार्यान्वयन में मैं कुछ बिंदुओं पर उलझन में हूं। उदाहरण के लिए मुझे इसे समझाएं:विभिन्न भौतिक पते पर मैप किए गए विभिन्न प्रक्रियाओं के लिए समान वर्चुअल पता कैसे हैं
मान लें कि हमारे पास दो प्रक्रियाएं पी 1, पी 2 हैं; पी 1 और पी 2 के पास अपने स्वयं के वीएएस हैं। एक पता 0x023f4a54
विभिन्न भौतिक पते (पीए) में मैप किया गया है, यह कैसे हो सकता है? इस अनुवाद को इस तरीके से कैसे किया जाता है। मेरा मतलब है कि मैं अनुवाद तंत्र जानता हूं लेकिन मुझे समझ में नहीं आ रहा है कि अलग-अलग प्रक्रियाओं के पते की जगह आने पर एक ही पते को विभिन्न भौतिक पते पर मैप किया जाता है।
0x023f4a54 in p1's VAS => PA 0x12321321
0x023f4a54 in p2's VAS => PA 0x23af2341 # (random addresses)
https://en.wikipedia.org/wiki/Virtual_memory –