मुझे सवाल पर टिप्पणी करने की आवश्यकता है, विशेष रूप से "पेज टेबल" और "पेज फाइल" के बीच भ्रम। यह एक उत्तर नहीं है, लेकिन यह टिप्पणियों के लिए स्वीकृत स्थान में फिट नहीं होगा।
"पेज टेबल" वास्तव में पेजफाइल से बहुत अलग चीज है। बीत रहा है n पृष्ठ सारणी के लिए इस्तेमाल किया रैम एमबी मतलब यह नहीं है कि आप प्रयोग कर रहे हैं n पृष्ठ फ़ाइल स्थान की एमबी। और हालांकि कुछ पेज टेबल एंट्रीज (PTE, जो पेज टेबल से मिलकर बने होते हैं) पेजफाइल कंटेंट को संदर्भित करते हैं, सभी नहीं।
पृष्ठ सारणी एक इन-मेमोरी स्ट्रक्चर्स हैं जिनका उपयोग सीपीयू के एमएमयू द्वारा वर्चुअल एड्रेस (फिर से, पेजफाइल नहीं) से भौतिक पते तक ट्रांसलेशन करने के लिए किया जाता है, और ओएस द्वारा वर्चुअल एड्रेस स्पेस का ट्रैक रखने और पेज के दोषों को सुलझाने में मदद करने के लिए उपयोग किया जाता है। पेज टेबल में पेज टेबल एंट्री (PTE) होती है। प्रत्येक PTE 8 बाइट्स पर कब्जा कर लेता है और वर्चुअल एड्रेस स्पेस के 4K बाइट्स को परिभाषित करता है - यानी एक वर्चुअल पेज। आभासी पता स्थान के प्रत्येक मुक्त पृष्ठ के लिए मोटे तौर पर, एक पीटीई है।
वैसे, हालांकि पेजफाइल बाहरी और आंतरिक दोनों विखंडन का अनुभव कर सकता है (पूर्व में आमतौर पर कोई समस्या नहीं होती है, बाद वाले को लगभग चार गुना बड़ा बनाकर इसे अलग किया जा सकता है), पेज टेबल नहीं कर सकते। वे हमेशा पहले से ही खंडित हैं, और यह थोड़ी सी भी बात नहीं है।
प्रत्येक PTE में एक "वैध" बिट है। "वैध", उर्फ "निवासी" पृष्ठों के लिए, PTE में भौतिक पृष्ठ संख्या होती है जो PTE के साथ जुड़े वर्चुअल पेज नंबर से मेल खाती है; इसका उपयोग सीधे MMU द्वारा किया जाता है।
"अमान्य" पन्नों के लिए MMU एक पृष्ठ दोष और PTE उठाता है तो कई संभावित प्रारूप और व्याख्याएं हैं।
नोट: उपरोक्त सभी किसी भी ऑपरेटिंग सिस्टम पर लागू होता है जो x86 / x64 पर पेजिंग को सक्षम करता है। निम्नलिखित विंडोज के लिए काफी हद तक विशिष्ट है, लेकिन कई अवधारणाएं अन्य ओएस पर लागू होती हैं, कार्यान्वयन के विवरण में अंतर के साथ।
पृष्ठ कैश में किसी पृष्ठ के लिए, PTE में अभी भी भौतिक पृष्ठ संख्या है। उन पृष्ठों के लिए जो रैम से खो गए हैं और पेजफाइल को लिखे गए हैं, पीटीई में पेजफाइल नंबर और पेजफाइल के भीतर ऑफसेट हैं जहां पृष्ठ की सामग्री लिखी गई थी। अन्य संभावित PTE सामग्री वर्चुअल एड्रेस डिस्क्रिप्टर के संदर्भ में हैं, "प्रोटोटाइप PTEs" के संदर्भ हैं, शून्य पृष्ठों की मांग करने के लिए संदर्भ इत्यादि, जो मैं इसमें शामिल नहीं होने जा रहा हूं। यह कहने के लिए पर्याप्त है कि केवल कुछ पीटीई पेजफाइल्स के स्थानों का उल्लेख करते हैं।
मैं इस सब का उल्लेख ज्यादातर यह दिखाने के लिए करता हूं कि संबंधित पेजफाइल और पेज टेबल, निश्चित रूप से एक ही चीज नहीं हैं।
पृष्ठ तालिकाओं को एक वृक्ष संरचना में व्यवस्थित किया जाता है। प्रत्येक प्रक्रिया के लिए एक अलग पेड़, या पेज टेबल का संग्रह है - यह वह है जो प्रत्येक प्रक्रिया को वर्चुअल एड्रेस स्पेस के अपने उदाहरण को परिभाषित करने की अनुमति देता है। पेड़ की जड़ में पेज टेबल हर समय रैम में होना चाहिए। दूसरों को दगा दे रहे हैं; वे अस्तित्वहीन भी होते हैं, जहाँ वे अपरिभाषित, या मुक्त, वर्चुअल एड्रेस स्पेस के बड़े (न्यूनतम 2 एमबी) क्षेत्रों के अनुरूप होंगे।
पेड़ की "पत्तियों" पर टेबल में पेज टेबल प्रविष्टियां वर्चुअल एड्रेस स्पेस के पन्नों से मेल खाती हैं। उच्च-स्तरीय तालिकाओं में पीटीई - रूट (और रूट स्वयं) के करीब वाले - बताएं कि अगले निचले-स्तरीय टेबल कहां हैं (यदि वे सभी मौजूद हैं)।
रैममैप द्वारा दर्शाई गई संख्या, सभी प्रक्रियाओं के लिए निवासी (इन-रैम) पृष्ठ तालिकाओं के साथ-साथ ओएस द्वारा अधिगृहीत भौतिक मेमोरी (RAM) है।
यहां जो महत्वपूर्ण है वह यह है कि OQ में सिस्टम में 2.5 जीबी रैम था जो पेज टेबल के साथ बंधा था। इसका मतलब है कि, कम से कम, 2.5 जीबी पेज टेबल परिभाषित है। चूँकि पेज टेबल अपने आप में पेजेबल हैं, इसलिए वर्चुअल साइज़ फिजिकल साइज़ से बहुत बड़ा हो सकता है, जो सभी RAMmap हमें दिखा सकते हैं। लेकिन मान लें कि यह "केवल" 2.5 जीबी है। PTE प्रति आठ बाइट्स पर है जो लगभग 320 मिलियन PTE है। 4K बाइट्स - - चूंकि प्रत्येक PTE एक पृष्ठ को परिभाषित करता है वर्चुअल ऐड्रेस स्पेस की, इसका मतलब है कि 1.2 से अधिक टेराबाइट्स वर्चुअल ऐड्रेस स्पेस के द्वारा परिभाषित कर रहे इन-स्मृति पृष्ठ सारणी।
यह असंभव नहीं है लेकिन यह बहुत कुछ है।
संदर्भ के लिए, मेरे सिस्टम एटीएम पर, मेरे पास पेज टेबल में लगभग 125 एमबी रैम है। यह केवल 65 जीबी वर्चुअल एड्रेस स्पेस के बारे में बताता है। मेरा वास्तविक आभासी उपयोग बहुत अधिक है (केवल प्रक्रियाओं के लिए 125 टीबी) लेकिन ऐसा इसलिए है क्योंकि अधिकांश पेज टेबल रैम में नहीं हैं। "बड़े पृष्ठ", एक और चीज़ जो मुझे यहां नहीं मिलनी चाहिए, वह पेज टेबल के आकार बनाम इन-यूज़ वर्चुअल एड्रेस स्पेस के बीच अलग-अलग अनुपातों के लिए भी मदद कर सकती है।
इसलिए: अपराधी को खोजने के लिए, मैं पहले उच्च "वर्चुअल बाइट्स" काउंटर मान वाली प्रक्रियाओं के लिए प्रक्रिया श्रेणी के तहत प्रदर्शन मॉनिटर में देखूंगा।