4.2.38 · D3 · HinglishOperating Systems

Worked examplesDisk scheduling — FCFS, SCAN, C-SCAN, LOOK

4,636 words21 min read↑ Read in English

4.2.38 · D3 · Coding › Operating Systems › Disk scheduling — FCFS, SCAN, C-SCAN, LOOK

Shuru karne se pehle, ek reminder uss single rule ka jo matter karta hai (parent mein build kiya gaya):


Scenario matrix

Har disk-scheduling problem kuch independent choices se bani hoti hai. Yeh table har case class list karta hai — woh odd corners jo logon ko trip karte hain — aur woh example jo usse solve karta hai.

# Case class Kya khaas baat hai Example
A Head beech mein, requests dono taraf "normal" case, charon algos Ex 1
B Head low edge par (0) neeche koi travel nahi; SCAN reversal trivial hai Ex 2
C Head high edge par (max) pehle se hi wall par start Ex 3
D Saare requests head ke upar direction neeche poora trip waste karta hai Ex 4
E Direction = pehle neeche mirror image; test karta hai ki tumne "upar" hard-code to nahi kiya Ex 5
F Degenerate: ek request (aur empty queue) limiting case, sum mein ek term ya zero Ex 6
G Duplicate / tie head par ya requests ke beech $ h_i-h_{i-1}
H Word problem in milliseconds (seek-rate given) cylinders → time convert karo, real units Ex 8
I Exam twist: C-LOOK + "charon compare karo" wrap-jump to last request, ranking Ex 9
J Circular scans pehle NEECHE jaate hain C-SCAN/C-LOOK wrap par upar jaata hai Ex 10
K Request bilkul wall par (0 ya 199) wall tak ka trip "free" hai ya paid? Ex 11

Hum ek fresh, chhoti queue use karte hain taaki arithmetic haath se check ho sake: Queue = {90, 20, 150, 60, 10}, disk range 0–199, jab tak koi case override na kare. Reference ke liye sorted: 10, 20, 60, 90, 150.

Neeche wali figure exactly yahi setup draw karti hai. Jab tum Case A padho tab isse dekhte raho — amber square head hai, cyan dots pending requests hain, aur do arrows dikhate hain ki head position queue ko up-side aur down-side mein kaise "cut" karta hai. Har algorithm neeche sirf un dono sides ko combine karne ka ek alag rule hai.

Figure — Disk scheduling — FCFS, SCAN, C-SCAN, LOOK
Figure s01 — cylinder axis (0 se 199) par standard scenario: amber square = head at 70, cyan dots = requests {10, 20, 60, 90, 150}. Amber arrow up-side requests {90, 150} ki taraf point karta hai; cyan arrow down-side requests {60, 20, 10} ki taraf point karta hai.


Case A — head beech mein, requests dono taraf


SCAN reversal "double" kyun karta hai bekar distance

Edge cases se pehle, ek fact nail karte hain jo hum baar-baar use karenge. Pehle, do naam jo hum use karte rahenge:

  • = "end", yaani physical wall jis taraf SCAN ja raha hai (high wall hai, low wall hai).
  • = "last real request", yaani us direction mein sabse door wala cylinder jahan koi actual request hai.

Maan lo SCAN upar sweep kar raha hai, toh last real request cylinder par hai, lekin SCAN wall tak chadhne par insist karta hai. Yeh extra upar travel karta hai wall reach karne ke liye, aur phir — kyunki yeh reverse karta hai aur usi stretch se waapas aata hai — yeh neeche bhi travel karta hai kisi request se milne se pehle. Toh ek unneeded wall ko touch karne ki bekar distance hai: Woh 2 ka factor up-then-back-down round trip hai. LOOK isse par reverse karke poori tarah bachata hai. Yeh exactly Case A mein 98 hai (, toh , ). Is "×2" ko dhyan mein rakho — yeh sirf tab aata hai jab head wall tak bhi jaata hai aur us hi gap se waapas bhi aata hai. Jab head wall par start karta hai, toh us gap se waapas aane ki zaroorat nahi, isliye ×2 apply nahi hota (Case B dekho).


Case B — head low edge par (cylinder 0)


Case C — head high edge par (cylinder max)


Case D — saare requests head ke upar


Case E — direction = pehle neeche (mirror image)


Case F — degenerate inputs (ek request, empty queue)


Case G — duplicates aur ties


Case H — word problem: cylinders ko milliseconds mein convert karo


Case I — exam twist: C-LOOK aur charon rank karo


Case J — circular scans pehle NEECHE jaate hain

Ab tak C-SCAN aur C-LOOK upar sweep karte the aur neeche wrap karte the (0 par ya lowest request par). Mirror case pehle neeche sweep karta hai aur isliye upar wrap karta hai — tumhe har "0/lowest" ko "199/highest" se flip karna hoga. Yeh woh case hai jo textbooks miss karte hain aur exams exploit karte hain.


Case K — ek request bilkul physical wall par



Recall Self-test — ek line each

Empty queue mein total head movement? ::: 0 (empty sum, head kabhi nahi hilta). C-LOOK kis cylinder par wrap karta hai wapas (up-first)? ::: Lowest pending request par, physical 0 par nahi. C-SCAN down-first jaate hue kis wall par jump karta hai? ::: High wall 199 par (phir neeche service karta rehta hai). Agar wall par exactly koi real request ho, toh SCAN aur LOOK kaise compare karte hain? ::: Woh coincide karte hain, kyunki ×2 waste zero kar deta hai. SCAN mein empty direction pehle choose karne ki cost? ::: Near wall tak distance ka (bekar round trip). Current head position ke equal ek request kitna travel add karta hai? ::: 0 cylinders (yeh free hai). Cylinders ko milliseconds mein convert karne ke liye tum kya multiply karte ho? ::: Seek rate (ms per cylinder).


Connections

  • 4.2.38 Disk scheduling — FCFS, SCAN, C-SCAN, LOOK (Hinglish) — parent (Hinglish)
  • Seek time vs Rotational latency — Case H mein ms conversion
  • Hard Disk Drive structure (cylinders, tracks, sectors) — cylinders unit kyun hain
  • SSTF (Shortest Seek Time First) — greedy cousin jo starve kar sakta hai
  • Starvation and Fairness in OS — C-SCAN/C-LOOK kyun exist karte hain
  • Process Scheduling — FCFS, SJF, Round Robin — same ordering trade-offs
  • I/O Subsystem and Device Drivers