शारीरिक पते का अर्थ है कि आपका प्रोग्राम वास्तव में रैम के वास्तविक लेआउट को जानता है। जब आप 0x8746b3 पते पर एक चर का उपयोग करते हैं, वहीं वह वास्तव में भौतिक RAM चिप्स में संग्रहीत होता है।
वर्चुअल एड्रेसिंग के साथ, सभी एप्लिकेशन मेमोरी एक्सेस पृष्ठ तालिका पर जाती हैं, जो तब वर्चुअल से भौतिक पते पर मैप करती है। इसलिए प्रत्येक एप्लिकेशन का अपना "निजी" पता स्थान होता है, और कोई प्रोग्राम किसी अन्य प्रोग्राम की स्मृति को पढ़ या लिख सकता है। इसे विभाजन कहा जाता है।
वर्चुअल एड्रेसिंग के कई लाभ हैं। यह कार्यक्रमों को खराब पॉइंटर मैनिपुलेशन इत्यादि के माध्यम से एक-दूसरे को दुर्घटनाग्रस्त होने से बचाता है क्योंकि प्रत्येक कार्यक्रम का अपना अलग वर्चुअल मेमोरी सेट होता है, कोई भी प्रोग्राम किसी अन्य डेटा को नहीं पढ़ सकता है - यह दोनों सुरक्षा और सुरक्षा प्लस है। वर्चुअल मेमोरी पेजिंग को सक्षम करती है, जहां किसी प्रोग्राम की भौतिक RAM डिस्क पर (या अब, धीमी फ्लैश) को संग्रहीत नहीं किया जा सकता है, फिर जब कोई एप्लिकेशन पृष्ठ तक पहुंचने का प्रयास करता है तो वापस कॉल किया जाता है। साथ ही, चूंकि केवल एक प्रोग्राम किसी विशेष भौतिक पृष्ठ पर भौतिक पेजिंग सिस्टम में निवासी हो सकता है, या तो ए) सभी प्रोग्रामों को विभिन्न मेमोरी पतों पर लोड करने के लिए संकलित किया जाना चाहिए या बी) प्रत्येक कार्यक्रम को स्थिति-स्वतंत्र कोड, या सी) कार्यक्रमों के कुछ सेट एक साथ नहीं चल सकते हैं।
भौतिक वर्चुअल मैपिंग सॉफ़्टवेयर (मेमोरी जाल के लिए हार्डवेयर समर्थन के साथ) या शुद्ध हार्डवेयर में किया जा सकता है। कभी-कभी पेज टेबल स्वयं हार्डवेयर मेमोरी के एक विशेष सेट पर होते हैं। मैं अपने सिर के शीर्ष से नहीं जानता जो एम्बेडेड सिस्टम करता है, लेकिन प्रत्येक डेस्कटॉप में एक हार्डवेयर टीएलबी (अनुवाद लुकसाइड बफर, मूल रूप से आभासी-भौतिक मैपिंग के लिए एक कैश) होता है और कुछ में उन्नत मेमोरी मैपिंग इकाइयां होती हैं जो मदद करते हैं आभासी मशीनों और पसंद है।
वर्चुअल मेमोरी का एकमात्र डाउनसाइड्स हार्डवेयर कार्यान्वयन और धीमी कार्यक्षमता में जटिलता को जोड़ा जाता है।
डुप्लीकेट पोस्ट करना ठीक नहीं है क्योंकि आपको अभी तक जवाब नहीं मिला है। –
ठीक है। वही पुरानी पोस्ट हटा दी गई। –