सवाल क्या 32-बिट ओएस मशीन सभी 8 जीबी रैम + 20 जीबी पेज फ़ाइल का उपयोग कर सकती है?


मैं 32-बिट ओएस के बारे में क्या समझता हूं, पता 32 बिट्स में व्यक्त किया गया है, इसलिए अधिकांश ओएस 2 का उपयोग कर सकता है32 = 4 जी मेमोरी स्पेस - मुझे लगता है कि इकाई बाइट्स है, इसलिए 4 जीबी।

क्या इसका मतलब यह है कि यदि 32-बिट ओएस (चाहे वह विंडोज या यूनिक्स हो) के साथ कोई मशीन हार्ड डिस्क पर 4 जीबी से अधिक रैम + पेज फ़ाइल है, उदाहरण के लिए 8 जीबी रैम और 20 जीबी पेज फ़ाइल, इसकी याददाश्त कभी भी " "?

द्वारा "एकदम समाप्त" मेरा मतलब है कि रैम या पेज फ़ाइल बढ़ाना प्रदर्शन में मदद नहीं करेगा; बेशक, यह हमेशा संभव है कि एक एप्लिकेशन ओएस से स्मृति का अनुरोध करता रहे लेकिन असफल रहा।

इसी तरह, यदि इस 32-बिट ओएस मशीन में 2 जीबी रैम और 2 जीबी पेज फ़ाइल है, तो पृष्ठ फ़ाइल आकार में वृद्धि प्रदर्शन में मदद नहीं करेगी। क्या ये सच है?


96
2017-12-13 12:59


मूल


एक साइड नोट के रूप में, यदि आपके पास 4 जीबी रैम और केवल 32 बिट ओएस है, तो आप रैम डिस्क बना सकते हैं। यह आपकी रैम में एक हार्ड ड्राइव है, और आप इसे इस्तेमाल करने के लिए अप्रयुक्त / अनैडड रैम का उपयोग कर सकते हैं। - Simon Verbeke
आप नहीं कर सकते ओएस के माध्यम से अभी भी एक रैमडिस्क बनाया जाना है, यदि ओएस स्मृति का उपयोग नहीं कर सकता है तो आप वहां रैमडिस्क नहीं बना सकते हैं। (जब तक आपका बायोस रैमडिस्क नहीं बना सकता, जो दुर्लभ है)। - AVee
छोटा जवाब हां है"। यद्यपि आम तौर पर एक प्रक्रिया को 32 बिट एड्रेस स्पेस का उपयोग करने के लिए दिया जाता है, ओएस स्वयं से अधिक उपयोग कर सकता है (या तो बैंक स्विचिंग द्वारा हमने 80 के दशक में या एड्रेस के पीएई के रूप में एड्रेस एक्सटेंशन ट्रिक्स स्कूल द्वारा किया था। साथ ही, याद रखें कि आप से अधिक रन एक समय में एक प्रोग्राम, जो एक से अधिक प्रक्रियाओं से बना हो सकता है (क्रोम विभिन्न प्रक्रियाओं में टैब रखता है)। और ओएस स्थानीय फिक्स्ड डिस्क से डेटा कैशिंग जैसे चीजों के लिए मेमोरी का उपयोग करेगा ताकि आप पहले से ही डेटा तक तेजी से पहुंच सकें उपयोग किया गया। - rbanffy


जवाब:


मैं 32-बिट ओएस के बारे में क्या समझता हूं, पता 32 बिट्स में व्यक्त किया गया है, इसलिए अधिकांश ओएस 2 ^ 32 = 4 जीबी मेमोरी स्पेस का उपयोग कर सकता है

सबसे अधिक है कि प्रक्रिया कर सकते हैं पता 4 जीबी है आप संभावित रूप से भ्रमित हैं याद साथ में पता स्थानएक प्रक्रिया में पता स्थान की तुलना में अधिक स्मृति हो सकती है। अर्थात् पूरी तरह से कानूनी तथा वीडियो प्रोसेसिंग और अन्य मेमोरी गहन अनुप्रयोगों में काफी आम है।  एक प्रक्रिया को जीबी की दर्जनों मेमोरी आवंटित की जा सकती है और इच्छानुसार पता स्थान के अंदर और बाहर स्वैप कर सकती है। केवल 2 जीबी में जा सकते हैं उपयोगकर्ता एक समय में पता स्थान।

अगर आपके घर में चार कार गेराज है, तो भी आप पचास कारों का मालिक बन सकते हैं। आप उन्हें अपने गेराज में नहीं रख सकते हैं। उनमें से कम से कम 46 स्टोर करने के लिए आपको कहीं और सहायक भंडारण होना होगा; आप अपनी गेराज में कौन सी कारें रखते हैं और आप सड़क के नीचे पार्किंग स्थल में जो भी रखते हैं वह आपके ऊपर है।

क्या इसका मतलब 32-बिट ओएस है, चाहे वह विंडोज या यूनिक्स हो, अगर मशीन में 4 जीबी से अधिक हार्ड डिस्क पर रैम + पेज फ़ाइल है, उदाहरण के लिए 8 जीबी रैम और 20 जीबी पेज फाइल, तो कभी भी "मेमोरी का इस्तेमाल नहीं किया जाएगा"?

बिल्कुल इसका मतलब यह नहीं है। एक प्रक्रिया एक से अधिक स्मृति का उपयोग कर सकती है! फिर एक प्रक्रिया का उपयोग करने वाली स्मृति की मात्रा एक प्रक्रिया का उपयोग करने वाले वर्चुअल एड्रेस स्पेस की मात्रा से लगभग पूरी तरह से असंबंधित है। जैसे ही आप अपने गेराज में रखी गई कारों की संख्या पूरी तरह से कारों की संख्या से असंबंधित हैं।

इसके अलावा, दो प्रक्रियाएं गैर-निजी मेमोरी पेज साझा कर सकती हैं। यदि बीस प्रक्रियाएं सभी एक ही डीएलएल लोड करती हैं, तो प्रक्रियाएं उस कोड के लिए मेमोरी पेज साझा करती हैं। वे साझा नहीं करते हैं आभासी स्मृति पता स्थान, वे साँझा करते है याद

मेरा मुद्दा, अगर यह स्पष्ट नहीं है, तो वह है आपको स्मृति और पता स्थान की एक ही चीज़ के रूप में सोचना बंद कर देना चाहिए, क्योंकि वे बिल्कुल वही नहीं हैं।

अगर इस 32-बिट ओएस मशीन में 2 जीबी रैम और 2 जीबी पेज फ़ाइल है, तो पृष्ठ फ़ाइल आकार में वृद्धि प्रदर्शन में मदद नहीं करेगी। क्या ये सच है?

आपके पास पचास कारें और एक चार कार गेराज है, और सड़क के नीचे एक 100 कार पार्किंग स्थल है। आप पार्किंग स्थल के आकार को 200 धब्बे तक बढ़ाते हैं। 50 अतिरिक्त पार्किंग रिक्त स्थान की जगह 150 अतिरिक्त पार्किंग रिक्त स्थान होने के परिणामस्वरूप आपकी कोई भी कार तेजी से बढ़ती है?


145
2017-12-13 15:17



मुझे यह जवाब हाथ में प्रश्न को संबोधित करने के लिए नहीं मिलता है और लगभग अंक पर भ्रामक है। - Rig
@Rig: बहुत बढ़िया, मुझे आपकी रचनात्मक आलोचना सुनकर खुशी हुई। अब आपका मौका है एक बेहतर जवाब लिखें और हमें बताएं कि आपको लगता है कि किस प्रकार का जवाब कम भ्रामक और अधिक प्रासंगिक है। - Eric Lippert
@ ब्लूराजा: मुझे संदेह है कि आप भ्रमित हैं भौतिक स्मृति साथ में याद। भौतिक स्मृति सिर्फ एक अनुकूलन है जो स्मृति तक तेजी से पहुंच की अनुमति देता है। जैसे प्रोसेसर कैश एक अनुकूलन है जो स्मृति तक तेजी से पहुंच की अनुमति देता है। याद सभी उद्देश्यों और उद्देश्यों के लिए है पृष्ठ फ़ाइल में आरक्षित आरक्षित। चाहे पृष्ठ फ़ाइल में दिया गया पृष्ठ (1) वर्चुअल मेमोरी एड्रेस पर मैप किया गया हो या (2) डिस्क से भौतिक मेमोरी में कॉपी किया गया हो, यह सवाल है कि यह है या नहीं आवंटित या नहीं। - Eric Lippert
@ ब्लूराजा: विषय पर रेमंड चेन का लेख मदद कर सकता है। वह दिखाता है कि पृष्ठ फ़ाइल से 4 जीबी आवंटित कैसे करें; अर्थात् स्मृति है कि प्रक्रिया का मालिक है। प्रक्रिया नहीं कर सकते हैं पता पूरी बात एक बार में, लेकिन यह पता कर सकते हैं कोई पेज किसी पृष्ठ को एक अप्रयुक्त वीएम पृष्ठ में मैप करके, इसे थोड़ी देर के लिए उपयोग करके, और फिर इसे छोड़कर। blogs.msdn.com/b/oldnewthing/archive/2004/08/10/211890.aspx - Eric Lippert
यह उत्तर स्पष्ट होगा, एरिक, अगर आपने स्पष्ट रूप से कहा था कि विंडोज (और अन्य ओएस) आपको वास्तव में अपने वर्चुअल एड्रेस स्पेस में बिना "रिजर्व" स्मृति की अनुमति देता है, और उसके बाद स्पष्ट प्रश्न का उत्तर देता है "तो आप कैसे करते हैं पता डालो?"। मुझे लगता है कि इसका उत्तर यह है कि "कुछ प्रकार की पेज आईडी है जिसका उपयोग आप इसे वर्चुअल एड्रेस स्पेस में पेज करने के लिए संदर्भित करने के लिए करते हैं, और फिर आप उसे वहां संबोधित कर सकते हैं", लेकिन मुझे नहीं पता, और आपका जवाब नहीं कहता :) - Timwi


यह सच है कि सीपीयू केवल अधिकतम 4 जीबी रैम को संबोधित कर सकता है। हालांकि, वर्तमान सीपीयू का उपयोग एक एमएमयू (मेमोरी प्रबंधन इकाई) प्रक्रिया-विशिष्ट स्मृति पतों को भौतिक स्मृति पते में अनुवाद करने के लिए।

यह एमएमयू विभिन्न प्रकार के विभिन्न चालों के लिए प्रयोग किया जाता है, मेमोरी अलगाव (प्रक्रिया ए मेमोरी साझा करने के लिए प्रक्रिया बी की स्मृति में हेरफेर नहीं कर सकता) (प्रक्रिया ए एक ही भौतिक स्मृति क्षेत्र को प्रक्रिया बी के रूप में एक्सेस कर सकता है और इस तरह डेटा का आदान-प्रदान कर सकता है)।

हालांकि 32-बिट सीपीयू का प्रति प्रक्रिया 4 जीबी मेमोरी का समर्थन करता है, लेकिन इसका उपयोग करते समय यह 64 जीबी रैम को संबोधित कर सकता है भौतिक पता विस्तार। यह प्रक्रिया ए को स्मृति के पहले 4 जीबी का उपयोग करने की अनुमति देता है, जबकि प्रक्रिया बी अगले 4 जीबी का उपयोग करता है। कुल मिलाकर, 4 जीबी से अधिक भौतिक स्मृति का उपयोग किया जाता है, लेकिन एक ही प्रक्रिया का उपयोग करने वाली स्मृति की कुल मात्रा अभी भी 4 जीबी पर है

पीएई को कर्नेल संस्करण 2.3.23 और विंडोज सर्वर के कुछ 32-बिट स्वादों पर लिनक्स पर समर्थित है, लेकिन 32-बिट विंडोज एक्सपी, विस्टा या 7 पर नहीं।

यदि आपका सीपीयू पीएई का समर्थन नहीं करता है तो आप 4 जीबी की भौतिक मेमोरी तक सीमित रहेंगे (या अन्य कारकों के आधार पर कम)।

कृपया ध्यान दें कि आपके ऑपरेटिंग सिस्टम अभी भी CPU समर्थन पीएई के बावजूद डिस्क (पृष्ठ फ़ाइल) पर भौतिक स्मृति के कुछ हिस्सों को बेदखल कर सकते हैं। यह सुनिश्चित करता है कि आप कई प्रक्रियाओं को शुरू कर सकते हैं जो 4 जीबी से अधिक संयुक्त का उपयोग करते हैं। पीएई का एकमात्र प्रभाव यह है कि क्या आप प्रक्रिया ए चलाते समय 4 जीबी प्रक्रिया बी को भौतिक स्मृति में रख सकते हैं।


67
2017-12-13 13:02



इसका मतलब यह है कि अगर यह समर्थन नहीं करता है, तो मैंने ऊपर क्या कहा है?
विंडोज एक्सपी पीएई का समर्थन करता है (एसपी 2 के साथ शुरू होता है, मुझे लगता है), लेकिन जब मशीन पीएई का समर्थन करती है तब भी 4 जीबी से अधिक रैम को अनदेखा करता है; देख यहाँ। इसका उपयोग हार्डवेयर-आधारित डेटा निष्पादन रोकथाम के लिए किया जाता है - एनएक्स / एक्सडी बिट केवल पीएई पेज टेबल एंट्री में उपलब्ध है, न कि "नियमित" पृष्ठ तालिका प्रविष्टि। - Wyzard
चिपसेट भी एक सीमित कारक हो सकता है कि आप किस ओएस या हैक को चुनते हैं, इस पर ध्यान दिए बिना कितनी मेमोरी समर्थित / उपयोग की जा सकती है। - Moab
मैं उस कारण को जोड़ूंगा कि 32 बिट विंडोज़ के उपभोक्ता संस्करणों का समर्थन नहीं है> 4 जीबी रैम यह था कि हार्डवेयर ड्राइव की एक बड़ी संख्या उस स्मृति के साथ सही तरीके से काम नहीं करती थी; और उस समय से 4 जीबी रैम सर्वर / अल्ट्रा हाई एंड वर्कस्टेशंस के बाहर बेहद दुर्लभ था, जो ड्राइवरों को बनाए रखने वाली अधिकांश कंपनियों को ड्राइवरों को अद्यतन करने के लिए पैसे खर्च करने में कोई दिलचस्पी नहीं थी, जिसका उपयोग केवल 0.1% ग्राहक आधार द्वारा किया जाएगा। - Dan Neely
@DanNeely ओएस कर देता है समर्थन है स्मृति के लिए, यह सीमित है लाइसेंसिंग मुद्दों के कारण। हालांकि मैं सहमत हूं कि यह एक तृतीय पक्ष हैक है, यह केवल विंडोज के उपभोक्ता रूपों के लिए है। सर्वर से आधारित विंडोज वितरण, से शुरू विंडोज 2000, 4 जीबी से अधिक स्मृति (पहले लिंक को रेफरी) के लिए समर्थन मिला है। - Breakthrough


विशेष रूप से 32-बिट विंडोज संस्करणों के बारे में बोलते हुए, विंडोज 2003 के संस्करणों के बाद से 4 जीबी से अधिक रैम के लिए उन्हें समर्थन मिला है (और आप एक भी प्राप्त कर सकते हैं विंडोज 7 के लिए कर्नेल हैक आपको 32-बिट में अपनी सभी रैम का उपयोग करने की अनुमति देने के लिए)। हालांकि, यह एक लागत पर आता है, जैसा कि आपने अपने प्रश्न के पहले भाग में उल्लिखित किया है।

32-बिट ऑपरेटिंग सिस्टम में, पॉइंटर (मेमोरी एड्रेस) का आकार सीपीयू की शब्द लंबाई के समान होता है, 32-बिट्स, जो एक 2 ^ 32 = 4 जीबी मेमोरी स्पेस की अनुमति देता है (जैसा आपने बताया)। विंडोज़ अनुप्रयोगों के लिए "वर्चुअल मेमोरी" दृष्टिकोण भी लेता है, इसलिए प्रत्येक एप्लिकेशन में इसकी अपनी मेमोरी स्पेस होती है।

चूंकि प्रत्येक सूचक केवल 32-बिट चौड़ा है, प्रत्येक आवेदनके पॉइंटर्स केवल 4 जीबी मेमोरी को संबोधित कर सकते हैं, भले ही सिस्टम 4 जीबी रैम का समर्थन कर सके। जहां तक ​​मुझे पता है, 32-बिट ऑपरेटिंग सिस्टम में 4 जीबी से अधिक रैम का उपयोग करने के लिए यह एकमात्र चेतावनी है। कुल मिलाकर, आपके पास 4 जीबी से अधिक रैम संयुक्त का उपयोग करके कई एप्लिकेशन हो सकते हैं, लेकिन कोई भी विशेष प्रक्रिया केवल 4 जीबी तक आवंटित / एक्सेस कर सकती है।


अपने प्रश्न पर वापस जाएं, मान लें कि आपके पास एक प्रोग्राम है जो 2 जीबी रैम का उपयोग करता है। यदि आपके पास इस कार्यक्रम के 10 उदाहरण हैं, तो यह 20 जीबी है। आपकी सभी 8 जीबी रैम का उपयोग किया जाएगा, साथ ही पेजफाइल का एक और 12 जीबी भी इस्तेमाल किया जाएगा। तो हाँ, 32-बिट ऑपरेटिंग सिस्टम के तहत, इस मेमोरी का उपयोग करना संभव है।

अगर इस 32-बिट ओएस मशीन में 2 जीबी रैम और 2 जीबी पेज फ़ाइल है, तो बढ़ रहा है   पेज फ़ाइल का आकार प्रदर्शन में मदद नहीं करेगा। क्या ये सच है?

पेजफाइल आकार में वृद्धि होगी आमतौर पर नहीं प्रदर्शन बढ़ाएं (जब तक कि आपकी रैम और पेजफाइल पूर्ण न्यूनतम पर सेट न हो, या आपके कंप्यूटर को लगातार उतना ही कम सेट करें)। हालांकि, यह आपके कंप्यूटर को (वर्चुअल) मेमोरी से बाहर होने से रोक देगा। जब भी पेजफाइल पर कुछ भी शुद्ध करने की आवश्यकता होती है, तो आप पहले से ही एक ले रहे हैं विशाल प्रदर्शन हिट (चूंकि हार्ड ड्राइव तीव्रता के आदेश है तो आपकी रैम)।


15
2017-12-13 13:18



4 जीबी पता स्थान में से प्रत्येक प्रक्रिया को प्राप्त करने के लिए, कार्यक्रम के लिए केवल 2 जीबी वास्तव में उपलब्ध है; कर्नेल द्वारा उपयोग के लिए अन्य 2 जीबी आरक्षित है। / 3GB बूट विकल्प कुछ प्रोग्रामों को और रैम का उपयोग करने की अनुमति दे सकता है। - Wyzard
@ ब्रेकथ्रू: "पेजफाइल आकार में वृद्धि कभी भी प्रदर्शन में वृद्धि नहीं करेगी" मुझे नहीं लगता कि यह सच है। उदाहरण के लिए, यदि अधिक स्वैप है, तो ओएस अप्रयुक्त प्रोग्राम डेटा को अधिक आक्रामक रूप से स्वैप कर सकता है, और उदाहरण के लिए फ्री रैम का उपयोग कर सकता है डिस्क कैशिंग कुछ विन्यास में, यह बेहतर प्रदर्शन पैदा कर सकता है। सर्वरफॉल्ट पर एक अच्छा जवाब है कि पेजफाइल क्यों महत्वपूर्ण है, जो इन मुद्दों पर छूता है: serverfault.com/questions/23621/... - sleske
कंबल कथन की तरह सावधान रहें "पृष्ठफाइल आकार को बढ़ाने से प्रदर्शन में कभी वृद्धि नहीं होगी", यह एक पृष्ठ फ़ाइल के लिए पूरी तरह से संभव है जो एक बड़ी पेज फ़ाइल होने की तुलना में अधिक डिस्क थ्रैशिंग के परिणामस्वरूप बहुत छोटा है! जवाब और टिप्पणियां देखें यह प्रश्न। - Mark Booth
@sleske अच्छा बिंदु, मैंने इसे "आमतौर पर नहीं" प्रकार के अधिक होने के लिए अपडेट किया। हालांकि मैं मानता हूं कि यह सर्वर में एक बड़ा अंतर डाल सकता है, ज्यादातर लोगों के लिए, जिस बिंदु पर मैं पार करने की कोशिश कर रहा था वह यह है कि वे अधिक रैम प्राप्त करने से बेहतर होंगे (जब आप पेजिंग कर रहे हैं, तो प्रदर्शन धीमा जितना धीमा है जैसा कि यह मिल सकता है)। - Breakthrough


जब एक प्रोसेसर 32-बिट कहा जाता है, तो इसका मतलब है कि यह एक ही निर्देश का उपयोग कर 32-बिट संख्याओं के साथ काम कर सकता है। इसकी पता बस की चौड़ाई के साथ इसका कोई संबंध नहीं है, जो इंटेल आर्किटेक्चर पर 36-बिट है पेंटियम प्रो 1 99 5 में जारी

प्रसिद्ध 4 जीबी सीमा इस तथ्य से आती है कि अधिकांश पीसी सॉफ्टवेयर उपयोग करते हैं फ्लैट मेमोरी मॉडल जहां स्मृति के प्रत्येक बाइट को एक सूचक द्वारा संबोधित किया जा सकता है। चूंकि एक सूचक को उपयोग करने के लिए एक रजिस्टर में फिट होना चाहिए, और रजिस्ट्रार 32-बिट चौड़े हैं, तो आप 4 जीबी तक सीमित हैं।


0
2018-06-17 13:33



यह गलत है, जैसा उपर्युक्त अन्य उत्तरों में बताया गया है। - ChrisInEdmonton
क्या आप एक विशेष तथ्य बता सकते हैं कि मुझे गलत मिला? - Dmitry Grigoryev
एक एकल प्रक्रिया 4 जीबी से अधिक का उपयोग कर सकते हैं। विशेष रूप से, पिछले उत्तरों बताते हैं "एक प्रक्रिया में पता स्थान की तुलना में अधिक स्मृति हो सकती है"। - ChrisInEdmonton
उदाहरण के लिए देखें, blog.superuser.com/2011/04/23/... अब, निश्चित रूप से, आप एक साथ 4 जीबी से अधिक का उपयोग नहीं कर सकते हैं, लेकिन एक ही प्रक्रिया मेमोरी को अनैप और रीमेप कर सकती है, इसलिए एक ही प्रक्रिया में 4 जीबी से अधिक का उपयोग कर सकते हैं, बस कुछ ही बहीखाता है। वह ब्लॉग पोस्ट विंडोज-विशिष्ट है। मैंने 32-बिट लिनक्स इंस्टॉल पर आवंटित 4 जीबी मेमोरी के साथ डेटाबेस सर्वर चलाए हैं। इन दिनों, निश्चित रूप से, आप बस 64-बिट लिनक्स चलाएंगे। - ChrisInEdmonton
ठीक है, मेरी माफ़ी। मैंने संभावना के बारे में नहीं सोचा था mmap अतिरिक्त स्मृति - Dmitry Grigoryev