TheHingineer

  • Operating System


  • OS Part-1

  • OS Part-2

  • OS Part-3

  • OS Part-4

  • OS Part-5

  • Demand Segmentation in Operating System

    🔹 Introduction

    Demand Segmentation ek memory management technique hai jo Segmentation aur Demand Paging ka combination hai.

    • Traditional Segmentation me pura segment memory me load hota hai.

    • Demand Segmentation me sirf required segment ko memory me load kiya jata hai, baaki secondary storage (disk) me rehta hai.

    Benefit: Memory wastage kam hoti hai aur system ki efficiency improve hoti hai.


    🔹 Working of Demand Segmentation

    🔹 Jab program execute hota hai, tab uske sabhi segments ko RAM me load karna zaroori nahi hota.
    🔹 Only active segments ko RAM me load kiya jata hai, baaki disk par rehte hain.
    🔹 Jab bhi ek segment ki zaroorat hoti hai jo memory me available nahi hota, tab “segment fault” hota hai.
    🔹 OS us segment ko disk se memory me load karta hai aur execution continue hoti hai.

    💡 Example:
    Maan lo ek program ke 3 segments hain:
    1️⃣ Code Segment (CS)
    2️⃣ Data Segment (DS)
    3️⃣ Stack Segment (SS)

    • Agar process sirf Code Segment ko use kar raha hai, to sirf wahi RAM me load hoga.

    • Jab Data Segment ki zaroorat hogi, tab OS usko disk se RAM me load karega.


    🔹 Components of Demand Segmentation

    1️⃣ Segment Table

    • Har process ka ek Segment Table hota hai jo segments ki location aur status store karta hai.

    • Segment Table ka format:

    Segment NumberBase AddressLimitPresence Bit
    0 (Code)50004001 (Present)
    1 (Data)90008000 (Not Present)
    2 (Stack)120006001 (Present)

    Presence Bit:
    1 → Segment RAM me hai
    0 → Segment disk me hai


    2️⃣ Segment Fault

    • Jab processor ek segment ko access karta hai jo RAM me nahi hai, to segment fault hota hai.

    • OS us segment ko disk se memory me load karta hai.


    3️⃣ Segment Swapping

    • Agar memory full ho, to kisi unused segment ko disk me swap karke naye segment ke liye jagah banayi jati hai.

    • LRU (Least Recently Used) algorithm ka use karke least used segment ko swap kiya jata hai.


    🔹 Advantages of Demand Segmentation

    Memory Wastage Kam Hoti Hai:

    • Sirf required segments ko RAM me load kiya jata hai, jo memory efficient hota hai.

    Large Programs ko Run Karna Possible Hota Hai:

    • Agar RAM kam hai, tab bhi large programs execute ho sakte hain kyunki poora program ek saath load nahi hota.

    Less Page Faults as Compared to Paging:

    • Demand paging me page faults zyada hote hain, lekin demand segmentation me comparatively kam hote hain.

    Better Performance:

    • Segment fault hone par sirf ek segment ko load kiya jata hai, jo paging se better performance deta hai.


    🔹 Disadvantages of Demand Segmentation

    Segment Table Overhead:

    • Har process ke liye Segment Table maintain karna padta hai, jo extra memory consume karta hai.

    Complex Implementation:

    • Paging ke comparison me segmentation implementation thoda complex hota hai.

    Swapping Overhead:

    • Agar segment fault zyada hote hain, to swapping overhead badh sakta hai.


    🔹 Demand Segmentation vs Demand Paging

    FeatureDemand SegmentationDemand Paging
    Unit of AllocationSegmentPage
    SizeVariableFixed
    FragmentationExternal FragmentationInternal Fragmentation
    Table UsedSegment TablePage Table
    OverheadHighMedium
    UsageCompiler, OS ModulesVirtual Memory

    🔹 Conclusion

    Demand Segmentation ek powerful technique hai jo segmentation aur demand paging ka combination use karti hai.
    Sirf required segments ko RAM me load karne se memory efficiently use hoti hai.
    Segment faults hone par OS segment ko disk se RAM me load karta hai.
    Demand Segmentation ka use compiler, operating system modules, aur large applications me hota hai.

    Scroll to Top