4.2.37 · D1 · HinglishOperating Systems

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

2,205 words10 min read↑ Read in English

4.2.37 · D1 · Coding › Operating Systems › I - O management — polling, interrupt-driven, DMA

Yeh page kuch bhi assume nahi karta. Agar parent note ne koi word ya symbol use kiya hai, toh hum use yahan ground up se banate hain, us order mein jisme har idea ko pehle waale ki zaroorat hoti hai.


0. "Device" asal mein kya hota hai?

Do boxes ki picture socho jo ek doosre ke andar nahi dekh sakte:

Figure — I - O management — polling, interrupt-driven, DMA
  • Left box CPU hai — woh brain jo calculations karta hai, ~nanosecond speed pe chalta hai.
  • Right box device hai — slow, ~millisecond speed pe chalta hai.
  • Unke beech ki red wire hi ek hi tarika hai communicate karne ka.

Poora topic usi red wire pe rehta hai: CPU uske across kaise baat karta hai.


1. Bit aur byte — data ki units

Picture: ek byte 8 light switches ki ek row hai.

  • Har switch ek bit hai (upar = 1, neeche = 0).
  • Aath switches milke = ek byte.
  • Parent note kehta hai "data ki ek unit transfer karo" — woh unit usually ek byte hoti hai (ya ek word, kuch bytes jo CPU ek saath handle karta hai).
Recall Yahan bytes mein kyun count karte hain?

Kyunki teen methods mein fark hai har byte par CPU work mein. Unhe compare karne ke liye humein per byte count karna hoga, toh byte ko hum apna ruler maante hain. ::: Ek byte ek single I/O transfer ki natural unit hai.

"4 KB" mein KB ka matlab hai kilobyte bytes (precisely memory contexts mein ). Toh KB bytes — parent ke example mein woh number sirf hai.


2. Registers — device pe mailboxes

CPU device ke andar nahi pahunch sakta. Iske bajaye device kuch tiny memory slots expose karta hai jinhein registers kehte hain. Inhe aisa labelled mailboxes socho jo device ke bahar bolted hain.

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

Picture teen mailboxes dikhati hai:

  • Red mailbox status register hai — woh red hai kyunki poora topic isi ek flag ko kaun check karta rehta hai, isi baare mein hai.
  • Status register device set karta hai, CPU read karta hai.
  • Command register CPU write karta hai, device read karta hai.

CPU in mailboxes tak kaise pahunchta hai (special I/O instructions vs. unhe ordinary memory addresses ki tarah treat karna) apna alag subject hai — Memory-mapped I/O vs Port-mapped I/O dekho.


3. Busy-wait loop aur symbol while

Parent dikhata hai:

while (status_register.busy == 1) ;

Ise ek sentence ki tarah padhte hain, symbol by symbol:

  • while (condition) ; matlab hai "kuch nahi karte raho, jab tak condition true hai." Akela semicolon ; ek empty action hai — loop ka poora kaam sirf dobara check karna hai.
  • status_register.busy status mailbox se busy flag read karta hai.
  • == 1 poochhta hai "kya yeh ke barabar hai?" (double-equals == ek sawaal hai, assignment nahi).

Toh poori line ka matlab hai: "Jab tak device busy=1 kehta hai, loop back karo aur dobara check karo, kuch useful nahi karte." Yahi busy-waiting hai — picture ek insaan ki hai jo baar baar page refresh karta rehta hai.


4. Time symbols — , ,

Parent ke formulas teen time symbols use karte hain. Har ek sirf "koi kaam kitna time leta hai" hai.

Ek lamba bar socho (device ka wait ) jo kai tiny slices mein kata hua hai (har slice = ek poll ):

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

Parent mein symbol ("") ka matlab hai "bahut zyada bada hai" — sirf bada nahi, bahut hi zyada bada. Yeh us condition ko mark karta hai jisme interrupts clearly polling se behtar hote hain.


5. Interrupt, ISR, aur "context"

Is snapshot ko save aur restore karna khud kaam hai — woh ka ek bada hissa hai. Poori mechanics Context switching mein hain.


6. Bus aur DMA

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

Picture single-lane bus dikhati hai:

  • Normally CPU us par drive karta hai.
  • DMA transfer ke dauran red DMA controller ek block move karne ke liye hop on karta hai.
  • Kyunki ek hi lane hai, jab DMA drive kar raha hai, CPU ko thodi der wait karna padta hai — yahi cycle stealing hai (DMA ek bus cycle "chura" leta hai). Isliye parent warn karta hai ki DMA CPU ko 100% free nahi karta.

Prerequisite map

bit and byte

device registers

status register and busy flag

busy-wait loop

Polling

time symbols Tdev tpoll tint

Interrupt driven IO

interrupt signal

context save and restore

memory bus one lane

DMA controller

DMA

Compare CPU work


Equipment checklist

Parent note padhne se pehle, tumhe in mein se har ek ka jawab dena aana chahiye. Right side cover karo aur khud test karo.

Ek bit kya hota hai, aur ek byte mein kitne bits hote hain?
Ek bit ek single 0/1 hai; ek byte 8 bits hai.
Roughly ek CPU (ns) ek disk (ms) se kitna zyada fast hai?
Lagbhag ek million se das million guna zyada fast.
Teen device registers ke naam batao aur kaun unhe write karta hai.
Status (device set karta hai, CPU read karta hai), Data (byte transfer hoti hai), Command (CPU write karta hai).
Busy-wait line while(busy==1); kya karta hai?
Kuch nahi karte hue loop karta hai, status flag ko tab tak dobara check karta hai jab tak device ready nahi ho jaata.
= aur == mein kya fark hai?
= ek value set karta hai; == ek yes/no sawaal poochhta hai.
, , mein se har ek kya measure karta hai?
Device ready-time, ek poll ki cost, ek interrupt service karne ki cost.
wasted polls kyun count karta hai?
Yeh hai ki kitne tiny poll-slices lambe device wait ke andar fit hote hain.
Symbol ka kya matlab hai?
"Bahut zyada bada hai."
Interrupt kya hai aur ISR kya hai?
Ek hardware "dhyan do" signal; ek chhoti routine jo CPU use handle karne ke liye run karta hai.
"Context" kya hai aur use kyun save karte hain?
CPU ka current instruction aur register snapshot; use save karo taaki ISR ke baad exactly wahin se resume kar sako jahan chhoda tha.
CPU DMA ke dauran fully free kyun nahi ho sakta?
DMA aur CPU ek bus lane share karte hain; DMA cycles steal karta hai (cycle stealing).
Plain words mein aur ka kya matlab hai?
Kaam N bytes ke saath badhta hai vs. kaam N ki parwah kiye bina constant rehta hai.

Ab tumhare paas woh har symbol hai jo parent note ne assume kiya tha. main I/O management note aur Hinglish version par wapas jao, aur har formula plain English ki tarah padha jayega.