Visual walkthrough — Disk scheduling — FCFS, SCAN, C-SCAN, LOOK
4.2.38 · D2· Coding › Operating Systems › Disk scheduling — FCFS, SCAN, C-SCAN, LOOK
Hum poore walkthrough mein same setup rakhte hain taaki pictures ek doosre ke upar stack ho sakein:
Step 1 — Disk ko ruler ki tarah draw karo
KYA: Kisi bhi algorithm se pehle, hum physical stage lay out karte hain. Hard disk ke cylinders numbered concentric rings hote hain. Hum unhe se tak ki straight number line mein flatten karte hain. Read/write head ek waqt ek number par baith ta hai; yahan yeh par start karta hai.
KYU ek straight line, real circular platter nahi? Kyunki jo cost hum care karte hain — seek time — sirf is baat par depend karti hai ki head cylinders ke across kitna slide karta hai, yaani ki do cylinder numbers ka difference. Physical circle par direction matter nahi karta; sirf ruler-along-ki-distance matter karti hai. Toh ek 1-D ruler woh sab 100% capture karta hai jo humein chahiye aur kuch bhi important nahi chhodta.
PICTURE: Aath requests pink ticks hain; head par yellow dot hai. Dekho requests kitni scattered hain — kuch ke neeche, zyaadatar upar. Yahi scatter poora problem hai: humein har pink tick visit karni hai, aur hum shortest walk chahte hain.

Step 2 — "Cost" ko ek path ki length ki tarah define karo
KYA: Ab hum precisely kehte hain "better" ka matlab kya hai. Maano algorithm decide karta hai requests ko kisi order mein serve karne ka, toh head positions us sequence mein visit karta hai. se tak ek single move head ko cylinders slide karata hai.
KYU absolute value ? Distance negative nahi ho sakti. Agar head se tak neeche jaata hai, toh number negative hai, lekin effort cylinders of sliding hai. Bars ka matlab hai "minus sign phenko — mujhe sirf kitna door, kaunsi direction nahi."
KYU hum moves add karte hain? Kyunki head physically ek segment slide karta hai, phir agla, phir agla. Total wear = segment + segment + Travel additive hai, bilkul ek road trip ki legs add karne ki tarah.
PICTURE: Ruler ke upar do example moves arcs ki tarah drawn hain, har ek apni length ke saath labelled. Har arc ke neeche ka number sum mein ek term hai. Ek algorithm bas ek choice hai ki kaun se arcs draw karein aur kis order mein — total wahi picture hai jise ruler se measure kiya.

Step 3 — FCFS: queue ki obey karo, zig-zag ka daam chukao
KYA: First-Come-First-Served koi bhi choice nahi karta — yeh requests ko arrival order mein visit karta hai. Toh path forced hai:
KYU pehle yeh dikhayein? Yeh baseline "dumb" walk hai. Kyunki yeh kabhi reorder nahi karta, head bahut upar () phir bahut neeche () phir wapas upar lurch karta hai — har reversal wasted travel hai. Yeh hamara yardstick hai: har clever algorithm ko beat karna chahiye.
PICTURE: Path ko ek time-graph ki tarah draw kiya gaya hai — vertical axis cylinder number hai, horizontal axis hai "order mein kaun si request." Line ko upar neeche ek heartbeat ki tarah stab karte dekho. Har near-vertical plunge (jaise ) sum mein ek giant term hai.

Step 4 — SCAN: wall tak upar sweep karo, phir wapas neeche
KYA: SCAN requests ko sort karta hai aur pehle ek direction mein sweep karta hai. se upar jaate hue, yeh har request ko increasing order mein serve karta hai jab tak yeh physical end ("wall") hit nahi karta, chahe par koi request na ho. Phir yeh turn karta hai aur baaki lower requests ko waapas neeche jaate hue serve karta hai.
Path: .
KYU tak jaao? Yahi SCAN ka defining rule hai — yeh ek building elevator ki tarah behave karta hai jo reverse karne se pehle hamesha top floor tak jaata hai. Yeh agle step mein LOOK ke contrast fuel hai: khali wall tak jaana optional travel hai.
KYU yeh FCFS ko beat karta hai? Koi zig-zag nahi. Saari up-requests ek clean climb mein done, saari down-requests ek clean descent mein. Line mein exactly ek turn hai instead of chhe.
PICTURE: Same time-graph style. tak ek smooth climb (yellow), tak ek smooth descent (blue). se wall tak aur wapas neeche chota stub highlight kiya gaya hai — wahi stub hai jo LOOK delete karega.

Step 5 — LOOK: khali wall tak mat jao
KYA: LOOK woh SCAN hai jo peek karta hai aage: yeh us direction mein last actual request () par climbing band kar deta hai wall () ki jagah, phir reverse karta hai.
Path: .
KYU yeh hamesha SCAN se kam se kam utna hi achha hota hai? Kyunki yeh wall tak pointless out-and-back delete kar deta hai. SCAN tak climb kiya tha phir se wapas neeche aaya — yeh extra stub cylinders karti hai. LOOK simply kabhi yeh pay hi nahi karta.
PICTURE: SCAN path background mein faint draw kiya gaya hai; LOOK upar bold draw kiya gaya hai. Sirf ek visible difference hai upar missing triangle (deleted stub), pink shaded aur " saved" labelled.

Step 6 — C-SCAN: one-way service, ghar jump karo, phir se sweep karo
KYA: C-SCAN (Circular SCAN) sirf upar jaate waqt serve karta hai. Yeh wall tak climb karta hai, phir bina kuch serve kiye seedha tak jump karta hai, aur un requests ko pick karne ke liye ek fresh upward sweep start karta hai jo skip ho gayi theen (, phir ).
Path: .
KYU return trip phenko? Fairness. SCAN mein, ek request jo upward sweep barely miss kar gayi woh poore down-and-up cycle ka wait karti hai — edges sabse zyaada wait karti hain. C-SCAN har request ko same style ki trip wait karaata hai (hamesha upar jaate serve hona), toh koi bhi cylinder far edge par starve nahi karta. Iski keemat hai bada khali jump.
PICTURE: tak climb (yellow), phir tak seedha dashed vertical drop "wrap jump — no service" mark kiya, phir tak short climb (blue). Dashed segment visually chillata hai "yahi fairness ki keemat hai."

Step 7 — Edge & degenerate cases (kabhi surprise mat ho)
KYA: Rules tab bhi work karne chahiye jab inputs weird hon. Chaar scenarios, sab tiny rulers par drawn:
- Saari requests start ke upar — tab "pehle neeche" kuch bhi serve nahi karta neeche jaate waqt; head seedha upar jaata hai. SCAN/LOOK effectively ek direction mein hain.
- Saari requests start ke neeche — mirror image; pehle upar jaana ek trip waste karta hai.
- Head exactly ek request par start karta hai — pehli move distance hai; woh request free serve ho jaati hai, double counting nahi.
- Empty queue — total head movement hai; kuch karna hi nahi.
KYU care karein? Parent note warn karta hai ki tumhe ek start aur ek direction choose karni hai. Yeh cases dikhate hain ki direction choice total dramatically change kar sakti hai, aur formula tab bhi hold karta hai (sirf kam, ya zero, terms add karta hai).
PICTURE: Chaar mini-rulers side by side, har ek apne head dot aur requests ke saath, aur resulting one-turn path. Case 4 sirf ek lone dot hai: "path length ."

Ek-picture summary
KYA: Saare chaar paths ek ruler-vs-time chart par, taaki tum literally dekh sako kaun si line shortest hai. FCFS zig-zag karta hai (sabse lamba, ). SCAN aur LOOK mein se har ek ek clean turn karta hai (LOOK deleted wall-stub se chota). C-SCAN tall dashed wrap jump add karta hai.
KYU yeh payoff hai: total head movement = drawn line ki length. Choti line = kam seek time. Lekin C-SCAN ki lambi line fairness khareedti hai — proof ki "sabse chota total" automatically "sabse achha" nahi hai.

| Algo | Path shape | Total (is setup mein) | Tumhe milta hai |
|---|---|---|---|
| FCFS | zig-zag | simplicity, order ki fairness | |
| SCAN | up→wall→down | elevator smoothness | |
| LOOK | up→last→down | yahan least travel | |
| C-SCAN | up→wall→jump→up | uniform waiting |
Recall Feynman: saara walkthrough plain words mein
Socho ek hallway se numbered hai aur ek cleaning robot door par khada hai. Uske paas doors ki ek list hai visit karne ki. Dumb robot (FCFS) uss door par jaata hai jo pehle request hua tha, toh yeh hallway mein upar sprint karta hai, wapas neeche, phir upar — exhausting ( steps). Elevator robot (SCAN) zyaada smart hai: yeh hallway mein upar walk karta hai har door kholte hue, par far wall tak march karta hai (chahe last door tha), phir turn karta hai aur baaki kholte hue wapas walk karta hai (). Peeking robot (LOOK) same hai lekin kehta hai "wall kyun touch karein? mera last door yahan hai, main wahan turn kar lunga" — woh wasted steps bachata hai (). One-way robot (C-SCAN) sirf upar jaate waqt doors kholta hai; wall pahunche ke baad woh seedha door par zoom karta hai bina kuch khole, phir fresh sweep upar — toh door waala kabhi forever wait nahi karta, lekin khali sprint wapas bahut cost karta hai (). Har robot ke footprints measure karo: uske path ki length hi seek cost hai. Sabse chote footprints speed mein win karte hain — lekin one-way robot fair hone mein win karta hai.
Connections
- 4.2.38 Disk scheduling — FCFS, SCAN, C-SCAN, LOOK (Hinglish) — parent, Hinglish version
- Seek time vs Rotational latency — path length actually time mein kya cost karti hai
- Hard Disk Drive structure (cylinders, tracks, sectors) — kyun cylinders hamaara ruler banaate hain
- SSTF (Shortest Seek Time First) — in algorithms ka greedy cousin
- Starvation and Fairness in OS — kyun C-SCAN fairness ke liye pay karta hai
- Process Scheduling — FCFS, SJF, Round Robin — CPU ke liye wahi ordering trade-offs
- I/O Subsystem and Device Drivers — jahan request queue rehti hai