Demand Segmentation क्या है?
Demand Segmentation एक memory management technique है जिसमें segments को memory में तभी load किया जाता है जब उनकी जरूरत होती है।
मतलब:
पूरे program के सभी segments एक साथ load नहीं होते, बल्कि केवल required segments ही RAM में आते हैं।
Basic Concept
- Program को segments में divide किया जाता है
- सभी segments शुरुआत में RAM में नहीं होते
- कुछ segments RAM में होते हैं, बाकी disk में रहते हैं
- जब किसी segment की जरूरत होती है, तब उसे RAM में लाया जाता है
Working of Demand Segmentation
- Program start होता है
- कुछ segments RAM में load होते हैं
- CPU किसी segment को access करता है
- अगर segment RAM में नहीं है → Segment Fault होता है
- OS उस segment को disk से RAM में लाता है
- Execution continue होता है
Segment Fault
Segment Fault क्या है?
जब CPU जिस segment को access करना चाहता है वह RAM में नहीं मिलता, तब Segment Fault होता है।
Steps in Segment Fault Handling
- OS check करता है कि segment valid है या नहीं
- अगर valid है → disk में search किया जाता है
- Free memory space मिलता है या replacement किया जाता है
- Segment को RAM में load किया जाता है
- Segment Table update होती है
- Instruction फिर से execute होती है
Advantages of Demand Segmentation
- Memory का efficient use होता है
- केवल required segments load होते हैं
- Large programs आसानी से run होते हैं
- Memory saving होती है
Disadvantages of Demand Segmentation
- Segment fault होने पर delay होता है
- External Fragmentation हो सकती है
- Management complex होता है
Example
मान लो program में 3 segments हैं:
Code, Data, Stack
Start में सिर्फ Code segment RAM में है
अगर CPU को Data segment चाहिए:
- Data RAM में नहीं है → Segment Fault
- OS Data segment को disk से RAM में लाता है
Short Conclusion
Demand Segmentation एक technique है जिसमें segments को RAM में तभी load किया जाता है जब उनकी जरूरत होती है। इससे memory का efficient उपयोग होता है, लेकिन segment fault होने पर delay हो सकता है।