linux - Is an entire process’s virtual address space split into pages -


ध्यान दें: मैं वर्चुअल मेमोरी आवंटन के एक उच्च स्तरीय अवलोकन का अध्ययन करने का प्रयास कर रहा हूं

क्या एक संपूर्ण प्रक्रिया का वर्चुअल पता स्थान, किसी विशेष आकार के पृष्ठों में विभाजित है:

  .text .bss .data   

क्या यह यह भी ढेर स्थान और स्टैक शामिल है - या यह हमेशा गैर-पृष्ठ योग्य है?

पहले ध्यान दें कि "पृष्ठ" केवल एक पते की जगह के क्षेत्र हैं जो क्षेत्र "गैर-पृष्ठ योग्य" (जिसके द्वारा मुझे लगता है कि इसका अर्थ है कि इसे डिस्क पर स्वैप नहीं किया जा सकता है) अभी भी तार्किक रूप से पृष्ठों में विभाजित है, लेकिन ओएस उन पृष्ठों पर एक अलग नीति लागू कर सकता है।

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

हर आभासी पृष्ठ में इसके साथ कुछ अनुमतियां संलग्न हैं, जैसे कि यह पठनीय, लिखने योग्य, निष्पादन योग्य (हार्डवेयर समर्थन के आधार पर भिन्न होता है)। ओएस इसका इस्तेमाल सुरक्षा, कैश कोजिस (साझा स्मृति के लिए), भौतिक मेमोरी के पृष्ठों को बाहर करने में मदद करने के लिए कर सकता है।

.text , .bss < / कोड> और .डेटा क्षेत्रों को ओएस के लिए जाना नहीं चाहिए (हालांकि अधिकांश ओएस उनके बारे में सुरक्षा और प्रदर्शन कारणों के लिए जानते हैं)।

ओएस वास्तव में आवंटित नहीं हो सकता एक स्टैक / हीप पेज के लिए पहली बार पेज तक पहुंचने के लिए मेमोरी। ओएएस / हेड / स्टैक स्पेस के अधिक पृष्ठों का अनुरोध करने के लिए ओएस सिस्टम कॉल प्रदान कर सकता है। कुछ ओएस साझा स्मृति या साझा लाइब्रेरी कार्यक्षमता प्रदान करते हैं जो पता स्थान में प्रदर्शित होने वाले अधिक क्षेत्र की ओर जाता है। ओएस पर निर्भर करता है।


Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

php - Multiple Select with Explode: only returns the word "Array" -

php - jQuery AJAX Post not working -