पेजिंग भ्रम पैदा करता है कि प्रत्येक प्रक्रिया में पृष्ठों को डिस्क से और स्थानांतरित करके अनंत रैम होती है। तो अगर हमारे पास अनंत स्मृति है (कुछ काल्पनिक स्थिति में), क्या हमें अभी भी पेजिंग की आवश्यकता है? यदि हां, तो क्यों? मुझे एक साक्षात्कार में इस सवाल का सामना करना पड़ा।यदि हमारे पास अनंत स्मृति है, तो क्या हमें अभी भी पेजिंग की आवश्यकता है?
उत्तर
यह एक दार्शनिक सवाल है तो यहां एक दार्शनिक जवाब :)
इस सवाल में चाल है कि आप अनंत स्मृति के बारे में मान्यताओं है। यह कहना ठीक है "नहीं, पेजिंग का उपयोग करने की कोई आवश्यकता नहीं है, लेकिन"। और इसके बाद अनुसरण करें:
स्मृति स्मृति के लिए स्वीकार्य समय सीमा के भीतर अनंत स्मृति को सुलभ होना आवश्यक है। यदि यह नहीं है (क्योंकि अनंतता बहुत अधिक जगह लेती है, और स्मृति प्रसंस्करण इकाई से दूर दूर बैठती है), इसमें डिस्क और डिस्क के बीच कोई अंतर नहीं है, दोनों आसानी से उपलब्ध स्मृति आवश्यकता को पूरा नहीं कर रहे हैं, जो पेजों के माध्यम से कैशिंग है समाधान करना।
उदाहरण के लिए अमेज़ॅन के एस 3 ले लो, जो सभी व्यावहारिक उद्देश्यों के लिए अनंत है। यदि आप अपनी सभी मेमोरी आवश्यकताओं को पूरा करने के लिए एस 3 पर भरोसा कर सकते हैं, तो जब आपको समय एक्स के भीतर कुछ प्राप्त करने की आवश्यकता होती है तो आप उसे एस 3 से ला सकते हैं, पेज को कुछ भी करने की आवश्यकता नहीं है या इसे "स्थानीय" मेमोरी में भी पकड़ना है। जब भी आपको इसकी आवश्यकता हो, बस इसे एस 3 से प्राप्त करें, जितनी बार आपको इसकी आवश्यकता हो। (जाहिर है, इसमें लागत और नेटवर्क जैसे अन्य असर होंगे, लेकिन अब इसे अनदेखा करें)।
बेशक आप हमेशा कह सकते हैं कि बेहतर आप चाहते हैं स्मृति का उपयोग के रूप में तेजी से संभव है, और "काफी तेजी से" के रूप में होने के लिए शायद "सबसे तेज" की तुलना में धीमी है, इसलिए स्थानीय स्मृति का उपयोग आप बेहतर प्रदर्शन आदि देना होगा
और आखिरकार, अगर मुझे एक स्मृति की कल्पना करना पड़ा जो अनंत है और उसके पास एक ही पहुंच का समय है, इससे कोई फर्क नहीं पड़ता कि स्मृति इकाई से स्मृति इकाई कितनी दूर है, मुझे उस क्षेत्र को कल्पना करना होगा जहां प्रसंस्करण इकाई मध्य में है , ताकि आप तर्क न दे सकें कि दूरी की वजह से एक स्मृति इकाई दूसरे की तुलना में धीमी है। अन्यथा आप कह सकते हैं कि पेजिंग आंतरिक रूप से स्मृति के भीतर किया जाएगा ताकि उपयोग की जाने वाली मेमोरी इकाइयों तक पहुंच तेज हो (या जो भी एल्गोरिदम आप उपयोग करना चुनते हैं)।
मानते हैं कि "अनंत स्मृति" का मतलब असीमित यादृच्छिक रूप से पहुंच योग्य मेमोरी या रैम है, हमें अभी भी पेजिंग की आवश्यकता होगी। यद्यपि पेजिंग अक्सर स्मृति को बचाने के लिए हार्ड डिस्क पर रैम के अंदर और बाहर पृष्ठों को स्वैप करने की क्षमता से जुड़ा हुआ है, यह पेजिंग का केवल एक पहलू है। पेजिंग करने के कुछ अन्य कारण यहां दिए गए हैं:
- सुरक्षा। पेजिंग ऑपरेटिंग सिस्टम सुरक्षा और मेमोरी सुरक्षा को लागू करने का एक तरीका है यह सुनिश्चित करके कि एक प्रक्रिया किसी अन्य प्रक्रिया की स्मृति तक नहीं पहुंच पाती है और यह निवासी कर्नेल को संशोधित नहीं कर सकती है।
- मल्टीटास्किंग। मेमोरी स्पेस को वर्चुअलाइज करके मल्टीटास्किंग में पिंगिंग एड्स, यानी, प्रक्रिया ए में एड्रेस 0xFOO प्रक्रिया बी
- मेमोरी आवंटन में 0xFOO से कुछ अलग हो सकता है। विखंडन को कम करके स्मृति पहुंच में पेजिंग एड्स और रैम सुनिश्चित करने पर केवल आवंटित किया जाता है। इसका अर्थ यह है कि यद्यपि एक प्रक्रिया की आवश्यकता है, मान लीजिए, 100 एमबी निरंतर रैम स्पेस, यह शारीरिक रूप से निरंतर नहीं होना चाहिए। इसके अतिरिक्त, जब कोई प्रोग्राम 100 एमबी स्पेस का अनुरोध करता है, तो ऑपरेटिंग सिस्टम प्रोग्राम को बताएगा कि 100 एमबी स्पेस का उपयोग करना सुरक्षित है, फिर भी यह वास्तव में तब तक आवंटित नहीं किया जाएगा जब तक कि प्रोग्राम उस स्थान का पूर्ण उपयोग न करे।
मान्य है, अगर किसी के पास अनंत रैम था, तो बाद में पूरी तरह से जरूरी नहीं होगा; संसाधनों को सीमित करने के बावजूद यह हमेशा अच्छा अभ्यास है। यह पेजिंग के लिए भी एक प्रयोग का प्रदर्शन करता है जिसे कभी-कभी नहीं माना जाता है।
- 1. क्या हमें अभी भी इटरेटर डिजाइन पैटर्न की आवश्यकता है?
- 2. क्या हमें अभी भी रिचटर के AsyncEnumerator की आवश्यकता है?
- 3. हमें अभी भी जेनरेट कोड की आवश्यकता क्यों है?
- 4. यदि हमारे पास परिष्कृत उपकरण की पेशकश करने वाली उच्च स्तरीय भाषाएं हैं तो असेंबली भाषा की अभी भी आवश्यकता क्यों है?
- 5. यदि आप प्रोग्राम जोड़ते हैं, तो क्या आपको अभी भी एक सहकर्मी समीक्षा की आवश्यकता है?
- 6. क्या हमें अभी भी HTML5 में एंड स्लैश की आवश्यकता है?
- 7. राइनो मोक्स - क्या हमें वास्तव में स्टब्स की आवश्यकता है?
- 8. यदि प्रोफाइलर उत्तर नहीं है, तो हमारे पास अन्य विकल्प क्या हैं?
- 9. हमें लक्ष्य नामस्थान की आवश्यकता क्यों है?
- 10. स्थैतिक पुस्तकालय, लेकिन मुझे अभी भी हेडर की आवश्यकता है?
- 11. हमें "हटाएं []" ऑपरेटर की आवश्यकता क्यों है?
- 12. यदि आप एसएसएल पर हैं तो क्या आपको अभी भी पाचन प्रमाणीकरण का उपयोग करने की आवश्यकता है?
- 13. यदि @Entity है तो "एनोटेटेड क्लासेस" की आवश्यकता क्यों है?
- 14. रेजर/सीएसएचटीएमएल - हमारे पास क्या लाभ है?
- 15. जब हमारे पास स्पेकफ़्लो है तो हमें कोडित ui का उपयोग क्यों करना चाहिए?
- 16. हमें strdup() की आवश्यकता क्यों है?
- 17. क्या हमें अभी भी उन लोगों के लिए बैकअप कोड चाहिए जिनके पास जावास्क्रिप्ट अक्षम है?
- 18. , x86-64 को अभी भी स्थानान्तरण की आवश्यकता क्यों है?
- 19. हमें फ़ील्ड टैग की आवश्यकता क्यों है?
- 20. क्या मुझे अभी भी एडमोब से पैसा मिल सकता है यदि मेरे पास कंपनी नहीं है?
- 21. यदि ओपनआईडी, मुझे अभी भी
- 22. हमें वेब-सॉकेट की आवश्यकता क्यों है?
- 23. क्या हमें इस परिदृश्य में हाइबरनेट मैपिंग की आवश्यकता है?
- 24. हमें संरचना की आवश्यकता क्यों है? (सी #)
- 25. यदि प्रश्न बहुत छोटा है तो हमें log4j.xml
- 26. हमें एक निजी निर्माता की आवश्यकता क्यों है?
- 27. क्या हमें टीसीएल में चर "अनसेट" करने की आवश्यकता है?
- 28. सी #: सुपरक्लास के पास अभी भी उपशीर्षक की जानकारी है
- 29. हमें एक अस्थायी डेटाबेस की आवश्यकता क्यों है?
- 30. हमें "आउट" पैरामीटर की आवश्यकता क्यों है?
आईएमओ हमें अभी भी स्वैपिंग उद्देश्य के लिए पेजिंग की आवश्यकता होगी। और 'अनंत स्मृति' कहकर आप रैम भी शामिल कर रहे हैं? – exexzian