4.2.28 · HinglishOperating Systems

Demand paging — page fault handling steps

2,036 words9 min readRead in English

4.2.28 · Coding › Operating Systems


WHY demand paging exist karta hai?


WHAT hai ek page fault?


HOW: Page-fault handling steps (is note ka dil)

Jab CPU ek aisa address issue karta hai jiska PTE valid bit 0 hai, MMU trap karta hai. OS service routine yeh steps perform karta hai:

  1. OS mein Trap karo. Hardware faulting instruction ki state (PC, registers) save karta hai taaki usse baad mein restart kiya ja sake.
  2. Legality check karo. OS ek internal table (often VMA/segment list) consult karta hai: kya yeh reference address space ke valid part ka hai, ya genuinely illegal address hai?
    • Illegal ⇒ process ko terminate karo (segmentation fault).
    • Valid lekin memory mein nahi ⇒ continue karo.
  3. Free-frame list se ek free frame dhundo.
    • Agar koi free frame nahi ⇒ ek victim ko evict karne ke liye page replacement run karo (jaise LRU/Clock). Agar victim dirty hai, toh pehle usse disk par write back karo.
  4. Disk read schedule karo. Backing store (disk/swap) se needed page ko chosen frame mein read karne ke liye I/O issue karo. Process block ho jaata hai (CPU meanwhile doosre process ko de diya jaata hai).
  5. Disk I/O complete hoti hai → interrupt. OS update karta hai: page table ab virtual page ko naye frame se map karta hai, aur ==valid bit = 1== set karta hai.
  6. Us instruction ko restart karo jisne fault cause ki thi. Ab access succeed ho jaata hai aur execution aisa resume hoti hai jaise kuch hua hi nahi.
Figure — Demand paging — page fault handling steps

Worked examples


Common mistakes (Steel-man + fix)


Active recall

Recall Quick self-test (answers hide karo, pehle predict karo — Forecast-then-Verify)
  • MMU har access par kaunsa bit check karta hai? ⇒ valid/present bit.
  • Legality check ke do outcomes? ⇒ terminate (illegal) / page fetch (valid-absent).
  • Advance karne ki bajaye instruction restart kyun karte hain? ⇒ woh kabhi complete nahi hui.
  • Victim ko disk par likhna kab skip kar sakte hain? ⇒ jab uska dirty bit = 0 ho (clean).
  • EAT likho. ⇒ .
What is demand paging?
Ek lazy-loading scheme jahan ek page RAM mein tab laaya jaata hai jab pehli baar reference kiya jaata hai, load time par nahi.
What triggers a page fault?
Ek aisi page ka memory access jiska PTE valid/present bit = 0 ho (page physical frame mein nahi hai).
Is a page fault always an error?
Nahi — sirf tab jab address illegal ho. Ek valid-but-absent page demand paging ka normal trigger hai.
List the page-fault handling steps.
1) OS mein Trap karo, state save karo. 2) Legality check karo. 3) Free frame dhundo (nahi toh replace karo). 4) Disk read schedule karo; process block hoti hai. 5) I/O completion par PTE update karo & valid bit set karo. 6) Faulting instruction restart karo.
What happens if there is no free frame?
Page replacement run karo ek victim ko evict karne ke liye; agar victim dirty ho toh pehle usse disk par write back karo.
Why must the OS restart (not advance past) the faulting instruction?
Instruction kabhi complete nahi hui; hardware ne uski state save ki thi taaki use re-execute kiya ja sake aur ab succeed ho.
Give the Effective Access Time formula.
EAT = (1-p)·m + p·s, jahan m = memory access time, p = page-fault rate, s = fault service time.
Why does a tiny page-fault rate cripple performance?
Kyunki service time s (≈ms, disk) m (≈ns) se millions of times bada hai, isliye term p·s EAT mein dominate karta hai.
What does the dirty bit let the OS avoid?
Disk par write-back skip karna jab ek clean victim page evict hoti hai.
What is the backing store in demand paging?
Woh disk/swap area jo un pages ko hold karta hai jo abhi physical memory mein nahi hain.
Recall Feynman: 12-saal-ke-bachche ko explain karo

Socho tumhara backpack (RAM) chhota hai lekin tumhara locker (disk) bahut bada hai. Tum har kitaab poore din nahi uthate — tum locker se kitaab sirf us moment lete ho jab zaroorat ho. Jab tum kisi aisi kitaab ke liye haath badhate ho jo tumhari bag mein nahi hai, tum "pause" karte ho, locker tak jaate ho, jo kitaab chahiye nahi usse swap karte ho us kitaab se jo chahiye, aur phir same page redo karte ho jo tum padhne ki koshish kar rahe the. Woh pause-and-fetch hi page fault hai, aur grab-only-when-needed ki yeh poori aadat demand paging hai. Locker tak jaana bag se padhne se bohot zyaada time leta hai, isliye tum wakai nahi chahte ki books bhool jaao!


Connections

  • Virtual Memory — demand paging iska core mechanism hai.
  • Page Replacement Algorithms — step 3 par invoke hota hai jab koi free frame nahi (LRU, Clock, FIFO).
  • Page Table / TLB — jahan valid & dirty bits rehte hain; TLB miss vs page fault.
  • Thrashing — kya hota hai jab bahut zyaada high rehta hai.
  • Belady's Anomaly — kuch replacement policies ki ek quirk.
  • Context Switching — process step 4 ke disk I/O ke dauran block hoti hai.

Concept Map

marks pages absent

valid bit 0 triggers

traps to OS

illegal address

valid not in memory

no free frame

dirty victim written back

frame ready

I/O completes

resume execution

page-fault rate p affects

Demand paging: lazy loading

Page-table entry with valid bit

Page fault trap

Check legality

Terminate process

Find free frame

Page replacement evicts victim

Schedule disk read

Update PTE, valid bit = 1

Restart instruction

Effective Access Time