क्या किसी प्रक्रिया में 4GB तार्किक पता स्थान हो सकता है? [बन्द है]


0

तो एक एकल प्रक्रिया में 2 ^ 32 बाइट्स पता स्थान होगा, क्या यह बहुत बड़ा नहीं है?

यदि किसी एकल प्रक्रिया का पता स्थान बड़ा है, तो क्या यह मुख्य मेमोरी और बैकिंग स्टोर के बीच स्वैप-इन / आउट में बहुत अधिक समय खर्च नहीं करेगा? और यदि किसी एकल प्रक्रिया में 4GB पता स्थान आवंटित किया गया है, तो अन्य प्रक्रिया में कितनी जगह हो सकती है?

मैं ऑपरेटिंग सिस्टम कॉन्सेप्ट्स, 9 वां संस्करण, सिल्ब्सचैट्स, पेज 379 पढ़ रहा हूं

4 जी?


बहुत बड़ा किस लिए? आप इसे समस्या क्यों मानते हैं? कृपया अपना प्रश्न संपादित करें, यह स्पष्ट नहीं है कि आप क्या पूछ रहे हैं।
ग्रोनोस्तज

पेजिंग पेज स्तर पर काम करता है। एक प्रक्रिया क्या बनाती है इसका विवरण प्रत्येक ऑपरेटिंग सिस्टम के लिए विशिष्ट होता है, हालांकि अधिकांश में कुछ सामान्य बिंदु होते हैं। // इसके अलावा, आप वर्चुअल मेमोरी को (आगे) शोध करना चाह सकते हैं। पता स्थान! = भस्म स्मृति
डेनियल बी

@ डैनियलबी: तो पाठ में, 4 जीबी प्रत्येक प्रक्रिया के लिए सैद्धांतिक अधिकतम है, लेकिन जरूरी नहीं कि ऐसा हो और विवरण ओएस पर छोड़ दिया जाए, क्या यह सही है?
निंग जूल

वैसे भी 32-बिट ऑपरेटिंग सिस्टम में यह केवल 4 जीबी है। लेकिन हाँ, ओएस तकनीकी सीमाओं के अलावा मनमानी सीमाएं लगा सकता है।
डेनियल बी

जवाबों:


1

32 बिट युग के अंत में, 4 जीबी रैम कैप वास्तव में महसूस किया जाने लगा था। उदाहरण के लिए इस तथ्य को लें कि 2000 के दशक के शुरुआती वर्षों के कई कंप्यूटरों को 512mb या 1gb सिस्टम रैम के साथ भेजा गया था, जो कि पहले से ही 32 बिट स्पेस द्वारा लगाई गई सीमा के पास था। न केवल 32 बिट एप्लिकेशन 4 जीबी मेमोरी तक सीमित हैं, पूरी प्रणाली थी, जो कि एक सिंगल कोर प्रोसेसर के साथ मिलकर मल्टीटास्किंग को मार देगा। अब कंप्यूटर 64 बिट सिस्टम के रूप में काम करते हैं, जिससे सैद्धांतिक 18.4 रैम की छूट मिलती है। यदि आज सभी सामान्य प्रोग्राम नहीं हैं (वर्कस्टेशन एप्लिकेशन को छोड़कर) 4GB से कम रैम का उपयोग करते हैं (कई हैं तो 64 बिट स्पेस में काम करने के लिए 32 बिट एप्लिकेशन का उपयोग किया जाता है।) जबकि 4 जीबी रैम एक प्रोग्राम के लिए बहुत कुछ लग सकता है (और आपके VAX मशीन के मामले में, डिज़ाइन द्वारा लागू की गई एक सैद्धांतिक सीमा, जबकि वास्तविकता में प्रत्येक कार्यक्रम के लिए उपलब्ध स्मृति बहुत कम थी), और कुछ मामलों में अभी भी है, मल्टीटास्किंग और कंप्यूटर ग्राफिक्स के एडवेंट ने और 64 बिट कंप्यूटर की आवश्यकता को तेज कर दिया है। (आशा है कि यह आपके प्रश्न का उत्तर देता है, जो मेरा मानना ​​है कि यह कहना है कि एक 32 बिट एड्रेस का आकार असंभव के बजाय बहुत बड़ा और अनावश्यक है) एक प्रक्रिया हो सकती है, जरूरी नहीं कि हमेशा, 4 जीबी रैम आवंटित हो


1

यह मुख्य मेमोरी और बैकिंग स्टोर के बीच स्वैप-इन / आउट में बहुत अधिक समय खर्च नहीं करेगा?

नहीं, क्योंकि प्रक्रियाओं के लिए मेमोरी को "पेज" के रूप में डिस्क पर धकेल दिया जाता है जो आमतौर पर आकार में 4KB होते हैं। हम एक बार में एक प्रक्रिया के पूरे पता स्थान को बाहर नहीं धकेलते हैं। आप यह मानने में सही हैं कि ऐसा करना बोझिल होगा और जल्दी से भारी मात्रा में डेटा डिस्क पर लिखा जा सकता है।

अधिकांश प्रक्रियाएँ अपने आवंटित 4GB पता स्थान को आवंटित नहीं करती हैं, वे केवल आवश्यकतानुसार कम मात्रा में मेमोरी का अनुरोध करती हैं। फिर से पूरे पते की जगह लिखना एक बेकार होगा क्योंकि इसमें से अधिकांश खाली होगा।

यदि किसी एकल प्रक्रिया में 4GB पता स्थान आवंटित किया गया है, तो अन्य प्रक्रिया में कितनी जगह हो सकती है?

प्रत्येक प्रक्रिया का अपना पता स्थान होता है जो हर दूसरी प्रक्रिया के लिए अलग होता है। ओएस अपने स्वयं के पते के स्थान में प्रक्रियाओं को अलग करता है और सीपीयू की सहायता से वर्चुअल पते को भौतिक मेमोरी पते में अनुवाद करता है। वास्तव में हर प्रक्रिया एक नई "वर्चुअल" एड्रेस स्पेस है जिसमें आवंटित मेमोरी को भौतिक रैम द्वारा समर्थित किया जाता है।

भौतिक मेमोरी को कभी भी किसी प्रोग्राम द्वारा संबोधित नहीं किया जाता है, डेटा को निश्चित रूप से मेमोरी में लिखा जाता है, लेकिन वास्तविक पता जो एक प्रक्रिया लिखता है वह एक वर्चुअल एड्रेस होता है जिसका भौतिक पते में अनुवाद किया जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.