4. Page faults

Page Fault 

Page fault तब होता है जब कोई program ऐसे data या code को access करने की कोशिश करता है जो उसके address space में तो होता है, लेकिन वह उस समय RAM (main memory) में मौजूद नहीं होता।

इस situation में Operating System (OS) एक process शुरू करता है जिसमें:

  • missing data को secondary storage (disk) से लाया जाता है
  • और उसे RAM में load किया जाता है

इस पूरी process को handle करने के लिए OS को कुछ steps follow करने पड़ते हैं, ताकि program सही तरीके से continue कर सके।

page-fault

Page Fault Handling

  1. Trap to Kernel
    जब CPU किसी ऐसे page को access करता है जो RAM में नहीं है, तो hardware kernel को signal देता है।
    इस समय Program Counter (PC) और CPU की current state save कर ली जाती है।
  2. Save State Information
    OS एक assembly routine की मदद से CPU के registers और जरूरी data को save करता है ताकि information lost न हो।
  3. Determine Cause of Fault
    OS पता लगाता है कि कौन सा virtual page चाहिए और page fault क्यों हुआ।
  4. Validate Address
    OS check करता है कि requested address valid है या नहीं और कोई protection violation तो नहीं है।
  5. Allocate Page Frame
    OS देखता है कि कोई free frame available है या नहीं।
    अगर नहीं है तो page replacement algorithm apply किया जाता है।
  6. Handle Dirty Pages
    अगर selected page dirty है (modified है), तो उसे पहले disk में save किया जाता है, और process temporarily suspend हो जाता है।
  7. Load Page into Memory
    OS required page को secondary storage (disk) से लेकर RAM में load करता है।
  8. Update Page Table
    Page आने के बाद page table update की जाती है और frame को normal state में mark किया जाता है।
  9. Restore State & Continue Execution
    Saved state वापस load होती है और program फिर से वहीं से execute होता है जहाँ रुका था।

📌 Causes of Page Fault (कारण)

  • Demand Paging → page memory में loaded नहीं था
  • Invalid Memory Access → गलत address access करना
  • Process Violation → read-only page पर write करने की कोशिश

📌 Types of Page Fault

  • Minor Page Fault → page memory में है, पर current process में नहीं
  • Major Page Fault → page disk से load करना पड़ता है
  • Invalid Page Fault → invalid memory access

📌 Impact of Page Fault on System Performance

  • Thrashing → बार-बार page fault होने से system slow हो जाता है
  • Increased Latency → disk से data लाने में ज्यादा time लगता है
  • CPU Utilization कम हो जाता है → CPU idle रहता है memory wait करते समय