4.2.37 · HinglishOperating Systems

I - O management — polling, interrupt-driven, DMA

1,819 words8 min readRead in English

4.2.37 · Coding › Operating Systems


HUM isko kyun chahte hain?

Ek device (maano ek disk) aur CPU independently chalte hain. CPU ko jaanna chahiye:

  • status — kya device busy / ready / error mein hai?
  • data — actual bytes jo read ya write karne hain.
  • control — commands jaise "reading shuru karo".

Yeh sab device registers mein hote hain (status register, data register, command register), jo ya toh special I/O instructions se ya memory-mapped addresses se access kiye jaate hain. Teen techniques mein fark yeh hai ki status register kaun dekhta hai aur data kaun copy karta hai.


1. Polling (Programmed I/O)

Yeh kaise kaam karta hai (per byte):

while (status_register.busy == 1) ;   // busy-wait loop
data_register = byte;                 // CPU byte likhta hai
command_register = WRITE;             // device ko kaam karne bolo

Yeh theek kyun lagta hai: yeh bilkul simple hai — koi extra hardware nahi, koi interrupt setup nahi. Kisi aise device ke liye jo almost always ready ho aur bahut fast ho, polling fastest option bhi ho sakta hai (koi interrupt overhead nahi).

Yeh generally bura kyun hai: agar device 10 ms leta hai aur CPU loop nanoseconds mein spin karta hai, toh CPU lakhon cycles barbad karta hai kuch nahi karte karte. CPU "busy" hai lekin bekar hai.


2. Interrupt-driven I/O

Yeh kaise kaam karta hai:

  1. CPU command bhejta hai, doosre tasks pe wapas jaata hai.
  2. Device khatam karta hai → interrupt line assert karta hai.
  3. CPU current instruction khatam karta hai, context save karta hai, ISR pe jump karta hai (interrupt vector ke zariye).
  4. ISR byte move karta hai, interrupt clear karta hai, context restore karta hai, return karta hai.

3. DMA (Direct Memory Access)

Yeh kaise kaam karta hai:

  1. CPU DMA controller ko program karta hai: source/dest address, count (#bytes), direction.
  2. CPU doosra kaam karne chala jaata hai.
  3. DMA controller bus pe bytes device↔memory move karta hai, count ghatata rehta hai.
  4. Jab count = 0, DMA ek interrupt raise karta hai: "block done."
Figure — I - O management — polling, interrupt-driven, DMA

Sab ek saath — Forecast then Verify


Flashcards

Saara I/O management kaunsi problem solve karta hai?
Ek fast CPU ko slow devices ke saath coordinate karna bina CPU time waste kiye.
Polling mein CPU baar baar kya read karta hai?
Device ka status register (busy-wait loop).
Polling ka main disadvantage kya hai?
CPU busy-wait karta hai, cycles waste karta hai jab slow device ready nahi hota.
Ek situation jahan polling actually best hoti hai?
Jab device almost always ready ho aur bahut fast ho, toh interrupt overhead poll cost se zyada hoga.
Interrupt-driven I/O mein device readiness kaise signal karta hai?
Woh interrupt raise karta hai; CPU ISR run karta hai.
High-rate devices ke liye interrupt-driven I/O polling se BURA kyun ho sakta hai?
Per byte ek interrupt matlab high data rates pe huge ISR overhead.
DMA ka full form kya hai aur yeh kya karta hai?
Direct Memory Access — hardware poora block device↔memory move karta hai bina CPU ke har byte copy kiye.
DMA N-byte block per kitne interrupts raise karta hai?
Exactly ek, completion pe.
Cycle stealing kya hai?
DMA ek cycle ke liye memory bus udhaarta hai, briefly CPU ko stall karta hai.
N-byte transfer mein CPU involvement: polling vs DMA?
Polling O(N) moves; DMA O(1) (constant, N se independent).
I/O mein teen device registers kaun se hain?
Status, data, aur command/control registers.
Teen methods ko increasing CPU offloading ke order mein lagao.
Polling < Interrupt-driven < DMA.

Recall Feynman: 12-saal ke bache ko samjhao

Socho tum khaana bana rahe ho aur oven slow hai. Polling = tum poore time oven ke saamne khade rehte ho ghoorte hue — tum kuch aur nahi kar sakte, total waste. Interrupts = tum timer bell set karte ho; tum jaake khelne lagte ho, aur jab woh ting kare tum wapas daudo, ek cookie nikalo, phir jaao khelne — lekin agar bell har second bajti toh tum nonstop aage peechhe daur rahe hote. DMA = tum ek helper hire karte ho jo oven dekhta hai, saari cookies nikalata hai, aur tumhe sirf ek baar tab bulata hai jab sab ho jaata hai. Tum almost kuch nahi karte!

Connections

Concept Map

solved by

solved by

solved by

watched during

read by

uses

causes

device raises

transfers one byte

enables

frees CPU from

escalates to

escalates to

costs

Core problem: fast CPU, slow I/O

Device registers: status, data, command

Polling / Programmed I/O

Interrupt-driven I/O

DMA engine

Busy-wait loop

Interrupt service routine

Wasted CPU cycles

Overlap with useful work

More hardware complexity