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.
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.
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!