मुझे स्मृति पृष्ठ क्या है इसके बारे में केवल थोड़ी सी जानकारी है। मेरा मानना है कि यह एक प्रकार का "स्मृति में कोड का टुकड़ा" है जिसे प्रक्रियाओं और सामानों को निष्पादित करने के लिए आवश्यक है, और जैसे ही ऐप चल रहा है, कोड के टुकड़े स्मृति में "पृष्ठों" के रूप में चूस जाते हैं और उन्हें फेंक दिया जाता है क्योंकि वे नहीं हैं अब और जरूरत है
सामग्री (यानी कोड और डेटा) स्मृति में मौजूद है।
स्मृति में मौजूद प्रत्येक चीज में एक पता (एक स्मृति पता) है।
स्मृति पता स्थान (उदा। 32-बिट मशीन पर 4 जीबी) को 'पृष्ठों' में बांटा गया है, जहां प्रत्येक पृष्ठ स्मृति का एक संक्षिप्त हिस्सा है (उदाहरण के लिए प्रति पृष्ठ 4KB)।
पता स्थान मैप किया गया है (सीपीयू और ओ/एस द्वारा) रैम में (या संभवतः I/O बंदरगाहों में मैप किया गया है, लेकिन यह एक अलग कहानी है)।
पता स्थान (जैसे 4 जीबी) की तुलना में कम रैम स्थापित (उदाहरण के लिए 1 जीबी) हो सकता है, इसलिए कुछ सामान (जैसे कम से कम हाल ही में उपयोग की जाने वाली सामग्री) को स्वैप किया जा सकता है (ओ/एस द्वारा) डिस्क से एक पेज फ़ाइल पर रैम से। पूरे, अभिन्न पृष्ठ (उदा। 4 केबी भाग) जो स्वैप किए जाते हैं (व्यक्तिगत बाइट्स नहीं)।
जब एप्लिकेशन किसी ऐसे पते तक पहुंचने का प्रयास करता है जो वर्तमान में रैम पर मैप नहीं किया गया है, तो यह एक तथाकथित पृष्ठ गलती है। एक पृष्ठ दोष को संभालने के लिए, हे/एस हो सकता है:
- नि: शुल्क कुछ रैम, (उदाहरण के लिए हाल ही सबसे कम प्रयोग किया जाता) राम से कुछ गमागमन डिस्क
- मानचित्र कि नव मुक्त कर दिया करने के लिए अब उपलब्ध रैम के द्वारा वह पता जो एप्लिकेशन
- डिस्क से रैम में स्वैप करें, जो डिस्क पर उस पते पर होना चाहिए (जिसे अतीत में उस पते से डिस्क में बदल दिया गया था)
- फिर से शुरू करें एप्लिकेशन जहां यह छोड़ा गया था: एप्लिकेशन उस स्मृति पते तक पहुंचने के लिए फिर से प्रयास करता है, केवल इस बार किसी अन्य पृष्ठ की गलती के बिना।
I आपको पूरी वर्चुअल मेमोरी चीज़ (जैसे मैंने किया) पर चमकते हुए ध्यान न दें, लेकिन आपके द्वारा दिए गए विवरण का स्तर दिया गया है, क्या आपको नहीं लगता कि आपको इसका जिक्र करना चाहिए? जिस तरह से आप इसका वर्णन करते हैं, ऐसा लगता है जैसे प्रत्येक एप्लिकेशन भौतिक स्मृति में मैपिंग कर रहा है। आम तौर पर, जो कुछ भी बदल जाता है वह भौतिक पते से जुड़ा हुआ नहीं है बल्कि आपके अपने आवेदन के दूसरे (आभासी) पृष्ठ है। किसी और के आवेदन को प्रभावित करने के लिए आपके एप्लिकेशन की स्मृति उपयोग विशेषताओं की आवश्यकता नहीं है। – tvanfosson
@tvanfosson यह उल्लेख करने के लिए मेरे पास नहीं हुआ, और अब आपने यह सुझाव दिया है कि मुझे यकीन नहीं है कि इसे सारांशित कैसे किया जाए। लेकिन एक तरह से प्रत्येक एप्लिकेशन * भौतिक स्मृति में मैपिंग है: प्रत्येक एप्लिकेशन पूरे (या अधिकतर) पता स्थान को देखता है जैसे पता स्थान अकेले उस एप्लिकेशन के स्वामित्व में था, और ओ/एस मानचित्र जो रैम को स्थान संबोधित करते हैं । एकाधिक एप्लिकेशन एकाधिक पता स्थान उदाहरणों का तात्पर्य है, और विभिन्न उदाहरण रैम के लिए एक-दूसरे के साथ प्रतिस्पर्धा करते हैं। – ChrisW
यह तय करना कि क्या स्वैप करना है (उदा। इस एप्लिकेशन द्वारा उपयोग किए जाने वाले किसी पृष्ठ को चुनना है या किसी अन्य एप्लिकेशन द्वारा) एक ओ/एस-विशिष्ट कार्यान्वयन विवरण है (और मुझे नहीं पता कि आईफोन के लिए विवरण क्या हैं)। – ChrisW