वास्तव में लिनक्स पर "एक प्रक्रिया के ढेर आकार" जैसी कोई चीज नहीं है। प्रक्रियाओं में एक प्रारंभिक ढेर होता है, लेकिन जैसा कि आप देखते हैं, वे शायद ही कभी मानक स्टैक से बहुत अधिक आवंटित करते हैं। इसके बजाए, प्रक्रियाएं ऑपरेटिंग सिस्टम से जेनेरिक मेमोरी आवंटित करती हैं और इसे स्टैक के रूप में उपयोग करती हैं। तो ओएस के बारे में जानने का कोई तरीका नहीं है - वह विवरण केवल प्रक्रिया के अंदर से दिखाई देता है।
एक सामान्य, आधुनिक ओएस में ऑपरेटिंग सिस्टम द्वारा लगाए गए 8 एमबी की स्टैक आकार सीमा हो सकती है। फिर भी प्रक्रिया नियमित रूप से अपने ढेर पर बहुत बड़ी वस्तुओं को आवंटित करती है। ऐसा इसलिए है क्योंकि एप्लिकेशन एक स्टैक का उपयोग कर रहा है जो पूरी तरह से एप्लिकेशन-प्रबंधित है और ओएस के संबंध में एक स्टैक नहीं है।
यह बहु-थ्रेडेड प्रक्रियाओं के लिए हमेशा सत्य है। एकल-थ्रेडेड प्रक्रियाओं के लिए, यह संभव है कि वे वास्तव में बहुत ही बहुत कम ढेर का उपयोग कर रहे हों।
स्रोत
2012-12-06 17:58:46
क्या आप बहु-थ्रेडेड प्रक्रिया के अलग-अलग धागे के ढेर आकार प्राप्त करने की कोशिश कर रहे हैं? –