2011-09-01 16 views
12

यह एक मूर्ख सवाल हो सकता है लेकिन यह मेरे दिमाग में बस आया। प्रक्रिया पता स्थान और वर्चुअल मेमोरी लेआउट के बारे में सभी पाठ उल्लेख करते हैं कि प्रक्रिया पता स्थान में स्थान कर्नेल के लिए आरक्षित है। उदा 32 बिट सिस्टम पर प्रक्रिया पता स्थान 4 जीबी है जिसमें से 1 जीबी लिनक्स में कर्नेल के लिए आरक्षित है (अन्य ओएस पर अलग हो सकता है)।कर्नेल प्रोसेस एड्रेस स्पेस में क्यों कहा जाता है?

मैं सोच रहा हूं कि कर्नेल प्रक्रिया प्रक्रिया स्थान में क्यों कहा जाता है जब कोई प्रक्रिया सीधे कर्नेल को संबोधित नहीं कर सकती है। हम क्यों नहीं कहते कि कर्नेल की प्रक्रिया से अलग पता स्थान है और हमारे पास कर्नेल के लिए एक अलग पृष्ठ तालिका क्यों नहीं हो सकती है जो प्रक्रियाओं के पृष्ठ सारणी से अलग है?

+0

क्या आप एक या अधिक विशिष्ट यूआरएल की पहचान कर सकते हैं जो बताते हैं कि प्रक्रिया पता स्थान में कर्नेल के लिए आरक्षित आरक्षित स्थान कैसे है? यह निश्चित रूप से सार्वभौमिक नहीं है; मैं सहिष्णुता से निश्चित हूं कि 32-बिट सिस्टम (जरूरी नहीं कि लिनक्स आधारित) एक ही प्रक्रिया में साझा जीमेल की 3 जीबी का उपयोग कर रहे हैं, जो कर्नेल के लिए 1 जीआईबी नहीं छोड़ता है। –

+0

मैं सिर्फ एक उदाहरण दे रहा था कि कुछ जगह कर्नेल के लिए आरक्षित है। विनिर्देश इस सवाल के लिए महत्वपूर्ण नहीं हैं। – vjain27

उत्तर

13

जब प्रक्रिया सिस्टम कॉल करती है, तो हमें सिस्टम कॉल की सेवा के लिए पेज टेबल (प्रक्रिया पता स्थान तालिका तालिका से कर्नेल पता स्थान पृष्ठ तालिका में) स्विच करने की आवश्यकता नहीं होती है (जो केवल कर्नेल मोड में किया जाना चाहिए)। ऐसा कहा जाता है कि कर्नेल प्रक्रिया संदर्भ में चल रहा है।

कुछ कर्नेल ईवेंट जो प्रक्रिया संदर्भ में नहीं चलेंगे, केवल कर्नेल के लिए पेज टेबल लोड करेंगे।

समझे?

संबंधित मुद्दे