Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग · पाठ

पेजिंग और मेमोरी मैनेजमेंट यूनिट (MMU)

समझिए कि x86 MMU पेज टेबल और डायरेक्टरी का उपयोग करके आभासी पतों को भौतिक पतों में कैसे बदलता है।

पाठ 1, कुल 4 में से12 चरण

पेजिंग और मेमोरी मैनेजमेंट यूनिट (MMU), CoddyKit पर Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

पेजिंग क्या है

स्वागत है! आज हम x86 सिस्टम में मेमोरी प्रबंधन की एक महत्वपूर्ण तकनीक पेजिंग का अध्ययन करेंगे। इसी के माध्यम से आपका कंप्यूटर मेमोरी को सुरक्षित और कुशलता से संभालता है।

पेजिंग प्रोग्रामों को यह मानने देती है कि उनके पास मेमोरी का एक बहुत बड़ा, लगातार उपलब्ध ब्लॉक है, भले ही भौतिक RAM खंडित हो या प्रोग्राम की आवश्यकता से कम हो।

वर्चुअल और भौतिक पता

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

हालाँकि, CPU और वास्तविक RAM हार्डवेयर भौतिक पतों का उपयोग करते हैं। पेजिंग वह प्रणाली है जो वर्चुअल पतों को भौतिक पतों में बदलती है।

MMU की भूमिका

वर्चुअल पतों को भौतिक पतों में बदलने का कार्य CPU के अंदर मौजूद एक विशेष हार्डवेयर घटक करता है, जिसे मेमोरी मैनेजमेंट यूनिट (MMU) कहा जाता है।

MMU एक अत्यंत तेज अनुवादक की तरह काम करता है। यह सुनिश्चित करता है कि प्रोग्राम की प्रत्येक मेमोरी पहुँच RAM में सही भौतिक स्थान तक जाए, या पहुँच अमान्य होने पर त्रुटि का संकेत दे।

पेज और पेज फ़्रेम

पेजिंग के काम करने के लिए मेमोरी को निश्चित आकार के ब्लॉकों में बाँटा जाता है:

  • पेज: ये उस वर्चुअल मेमोरी के ब्लॉक होते हैं जिन्हें प्रोग्राम देखता है।
  • पेज फ़्रेम: ये भौतिक मेमोरी (RAM) के ब्लॉक होते हैं।

x86 सिस्टम में सामान्य पेज आकार 4 किलोबाइट (4KB) होता है। MMU वर्चुअल पेजों को भौतिक पेज फ़्रेमों में बदलता है।

पेज टेबल का परिचय

MMU को कैसे पता चलता है कि कौन-सा वर्चुअल पेज किस भौतिक पेज फ़्रेम से जुड़ा है? इसके लिए वह पेज टेबल नामक डेटा संरचनाओं का उपयोग करता है।

पेज टेबल मूलतः एक सारणी होती है, जिसमें प्रत्येक प्रविष्टि किसी वर्चुअल पेज संख्या को उसके संबंधित भौतिक पेज फ़्रेम पते से जोड़ती है। चल रही प्रत्येक प्रक्रिया के लिए पेज टेबल का अपना समूह होता है।

बहु-स्तरीय पेजिंग: पेज डायरेक्टरी

बहुत बड़े वर्चुअल पता-क्षेत्रों, जैसे 32-बिट या 64-बिट सिस्टम, के लिए एक अकेली पेज टेबल बहुत विशाल हो जाएगी। इसे व्यवस्थित करने के लिए x86 बहु-स्तरीय पेजिंग पदानुक्रम का उपयोग करता है।

पहला स्तर पेज डायरेक्टरी होता है। यह सीधे पेज फ़्रेमों की ओर संकेत नहीं करती, बल्कि अन्य पेज टेबलों की ओर संकेत करती है। ये द्वितीयक टेबलें आगे वास्तविक भौतिक पेज फ़्रेमों की ओर संकेत करती हैं।

पता रूपांतरण की प्रक्रिया

आइए 32-बिट पता रूपांतरण प्रक्रिया को सरल रूप में समझते हैं:

  1. CPU एक वर्चुअल पता तैयार करता है।
  2. MMU इस पते के ऊपरी बिट्स का उपयोग करके पेज डायरेक्टरी में एक प्रविष्टि खोजता है।
  3. वह प्रविष्टि किसी विशिष्ट पेज टेबल की ओर संकेत करती है।
  4. MMU वर्चुअल पते के मध्य बिट्स का उपयोग करके उस पेज टेबल में एक प्रविष्टि खोजता है।
  5. इस प्रविष्टि में पेज फ़्रेम का भौतिक पता होता है।
  6. मूल वर्चुअल पते के निचले बिट्स (ऑफ़सेट) को पेज फ़्रेम के पते में जोड़कर अंतिम भौतिक पता प्राप्त किया जाता है।

CR3: पेजिंग का मूल

MMU को कैसे पता चलता है कि वर्तमान प्रक्रिया के लिए पेज डायरेक्टरी कहाँ है?

CPU में CR3 नामक एक विशेष नियंत्रण रजिस्टर होता है। यह वर्तमान पेज डायरेक्टरी बेस रजिस्टर (PDBR) का भौतिक पता रखता है। यह MMU को ठीक-ठीक बताता है कि पेज डायरेक्टरी खोजना कहाँ से शुरू करना है।

PTE फ़्लैग और अनुमतियाँ

पेज टेबल की प्रत्येक प्रविष्टि (PTE - पेज टेबल प्रविष्टि) में केवल भौतिक पता ही नहीं होता। उसमें कई फ़्लैग भी होते हैं:

  • Present: क्या पेज इस समय भौतिक मेमोरी में मौजूद है?
  • Read/Write: क्या पेज में लिखा जा सकता है?
  • User/Supervisor: क्या उपयोगकर्ता-मोड के प्रोग्राम इस पेज तक पहुँच सकते हैं?
  • Accessed: क्या हाल में इस पेज तक पहुँचा गया है?
  • Dirty: क्या लोड किए जाने के बाद इस पेज में कुछ लिखा गया है?

मेमोरी सुरक्षा और वर्चुअलाइज़ेशन के लिए ये फ़्लैग अत्यंत महत्वपूर्ण हैं।

पेजिंग के लाभ

पेजिंग अपने अनेक लाभों के कारण आधुनिक ऑपरेटिंग सिस्टमों का मूलभूत हिस्सा है:

  • मेमोरी सुरक्षा: प्रक्रियाओं को अलग रखती है और उन्हें एक-दूसरे की मेमोरी खराब करने से रोकती है।
  • वर्चुअल मेमोरी: पेजों को डिस्क पर अदला-बदली करके प्रोग्रामों को उपलब्ध भौतिक मेमोरी से अधिक मेमोरी उपयोग करने देती है।
  • मेमोरी साझाकरण: अनेक प्रक्रियाएँ समान भौतिक पेज साझा कर सकती हैं, जैसे साझा लाइब्रेरी या प्रक्रियाओं के बीच संचार के लिए।
  • स्थानांतरण: प्रोग्रामों को भौतिक मेमोरी में कहीं भी लोड किया जा सकता है; मैपिंग का कार्य MMU संभालता है।

पेजिंग ज्ञान-जाँच

x86 सिस्टम में मेमोरी मैनेजमेंट यूनिट (MMU) के प्राथमिक कार्य का सबसे सही वर्णन निम्नलिखित में से कौन-सा करता है?

पेजिंग और MMU का पुनरावलोकन

बहुत अच्छा! आपने पेजिंग और MMU की महत्वपूर्ण भूमिका के बारे में सीखा है।

  • प्रोग्राम वर्चुअल पतों का उपयोग करते हैं, जबकि हार्डवेयर भौतिक पतों का उपयोग करता है।
  • MMU पेज डायरेक्टरी और पेज टेबल का उपयोग करके इन पतों का रूपांतरण करता है।
  • मेमोरी को पेजों (वर्चुअल) और पेज फ़्रेमों (भौतिक) में बाँटा जाता है।
  • CR3 रजिस्टर वर्तमान पेज डायरेक्टरी की ओर संकेत करता है।
  • PTE फ़्लैग अनुमतियों और पेज की स्थिति को नियंत्रित करते हैं।

यह प्रणाली सभी आधुनिक ऑपरेटिंग सिस्टमों के लिए आवश्यक मेमोरी सुरक्षा, वर्चुअल मेमोरी और लचीला मेमोरी प्रबंधन प्रदान करती है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Assembly सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “पेजिंग और मेमोरी मैनेजमेंट यूनिट (MMU)” पाठ निःशुल्क है?

हाँ—“पेजिंग और मेमोरी मैनेजमेंट यूनिट (MMU)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“पेजिंग और मेमोरी मैनेजमेंट यूनिट (MMU)” में मैं क्या सीखूँगा?

समझिए कि x86 MMU पेज टेबल और डायरेक्टरी का उपयोग करके आभासी पतों को भौतिक पतों में कैसे बदलता है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“पेजिंग और मेमोरी मैनेजमेंट यूनिट (MMU)” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. पेजिंग और मेमोरी मैनेजमेंट यूनिट (MMU)
  2. प्रोटेक्शन रिंग और विशेषाधिकार
  3. हाइपरवाइज़र और वर्चुअलाइज़ेशन की मूल बातें
  4. सेगमेंटेशन और ग्लोबल डिस्क्रिप्टर टेबल (GDT)
← Assembly भाषा और x86 निम्न-स्तरीय सिस्टम प्रोग्रामिंग पर वापस जाएँ