5.5.9 · D1 · Coding › Embedded Systems & Real-Time Software › RTOS concepts — task, scheduler, preemption, context switch
Ek computer ka processor (CPU) ek waqt mein sirf ek kaam kar sakta hai, phir bhi ek robot, drone, ya smartwatch ko aise lagta hai jaise wo kai saare kaam ek saath kar raha ho. Ek RTOS ye illusion is tarah banata hai ki wo ek hi CPU ko itni tezi se — aur itne carefully chosen order mein — alag-alag jobs ke beech jump karata hai ki har urgent job apni deadline ke andar complete ho jaati hai.
Parent note RTOS Concepts ko fluently padhne se pehle, tumhe wo har word aur symbol khud se pata hona chahiye jo wo assume karta hai. Ye page un sab ko, ground se, ek aisi order mein build karta hai jahan har idea sirf pehle wale ideas pe lean karta hai.
Intuition Machine se hi shuru karo
Ek single office worker ko imagine karo ek single desk pe. Desk pe kuch slips of paper hain jo worker abhi actively hold kar raha hai — wo number jo wo add kar raha hai, wo page jis pe hai, wo jagah jahan instruction manual mein hai. Worker ek waqt mein sirf ek manual follow kar sakta hai. Wo worker hai CPU (Central Processing Unit); wo slips of paper hain uske registers .
Definition CPU aur instruction stream
Ek CPU chip ka wo part hai jo instructions ko ek ke baad ek read karta hai aur unhe carry out karta hai. Instructions ki wo ordered list jis par wo abhi chal raha hai use instruction stream kehte hain. Key fact jis par pura topic tika hai: ek CPU core kisi bhi instant mein exactly ek instruction stream run karta hai.
Jo kuch bhi ek RTOS karta hai wo is ek worker ko kai saare manuals ke beech share karne ka ek clever tarika hai.
Ek register CPU ke andar ek tiny, ultra-fast storage slot hai jo koi aise value hold karta hai jo CPU abhi use kar raha hai. Inki ginti sirf kuch dozen hi hoti hai. Picture: wo muthi bhar slips jo worker physically hold kar raha hai — woh filing cabinet nahi jo room ke doosri taraf hai (wo RAM hai).
Parent note kuch specific registers ka naam leta hai. Har ek, simple words mein:
Definition Wo registers jo topic care karta hai
PC — Program Counter : "main kaun si instruction pe hoon?" → worker ki ungli manual mein ek line pe point karti hui.
SP — Stack Pointer : "mere private scratch-pad ka top kahan hai?" → worker ke personal notepad mein ek bookmark.
r0–r12 — general registers : wo numbers jo abhi add, compare, move ho rahe hain → working numbers wali slips.
Status flags (xPSR) : tiny yes/no results, jaise "kya last result zero tha?" → ek sticky note jis pe likha ho "carry: yes".
Intuition Topic ko registers ki zaroorat kyun hai
Ek job ko pause karne ke liye, doosri run karne ke liye, aur baad mein perfectly wapas aane ke liye , tumhe har slip jo worker hold kar raha hai copy karni hogi — warna, wapas aane par, worker apna number, apni line, sab bhool chuka hoga. Ye akela fact hi reason hai ki ek "context switch" (Section 6) exist karta hai.
RAM (Random-Access Memory) badi filing cabinet hai: registers se slower lekin bahut badi, program ka saara data hold karti hai. Ek stack RAM ka ek special region hai jo spring-loaded stack of plates ki tarah use hota hai: tum upar ek plate push karte ho, aur baad mein top plate pop karte ho — hamesha last-in, first-out.
Intuition "Push" aur "pop" kyun
Jab CPU ko temporarily ek slip of paper side pe rakhni ho, wo use stack par push karta hai (ek plate add karta hai). Use wapas paane ke liye wo use pop karta hai (top plate uthata hai). Kyunki tum hamesha sabse recent wala pehle lete ho, kuch bhi mix nahi hota. Stack pointer (SP) hamesha top plate mark karta hai — isliye SP save karna pura pile save karna hai.
Har RTOS task ko apna khud ka stack milta hai — apna private pile of plates — isliye parent kehta hai ki task ka "apna stack hai." Zyada padhne ke liye Stack memory and TCB dekhein.
Intuition Wo starting point jis se parent contrast karta hai
while(1) ka matlab hai "hamesha repeat karo". Ek super-loop ek aisa program hai jo job A karta hai, phir job B, phir job C, phir wapas A, hamesha, usi fixed order mein. Ye kai saari jobs run karne ka sabse simple tarika hai — aur iska weakness exactly wo hai jo RTOS ko motivate karta hai.
Definition Super-loop (bare-metal)
Ek single endless loop jo har job ko source-code order mein, ek ke baad ek, run karti hai. Sochlo ek to-do list jise worker top-to-bottom baar baar chalata hai. Agar job B wait karti hai (maan lo 50 ms kisi sensor ke liye), toh uske peeche ki jobs C aur A simply stuck rahti hain jab tak B khatam na ho. Compare karein Bare-metal super-loop vs RTOS se.
Ye "ek slow job sabko freeze kar deta hai" problem woh villain hai jise poora RTOS topic defeat karta hai.
Definition Interrupt aur ISR
Ek interrupt ek hardware signal hai jo CPU ko instantly kandhe pe tap karta hai: "jo kar raha hai chhodo, abhi ye handle karo." Jo short function ise handle karta hai wo hai ISR (Interrupt Service Routine). Sochlo office ka phone bajana: worker apna manual bookmark karta hai, call attend karta hai, phir wapas aata hai.
Ek tick ek regular interrupt hai jo ek hardware timer se fire hota hai — maan lo 1000 baar per second. Ye RTOS ki heartbeat hai: har tick par, scheduler uthta hai aur poochta hai "kya ab koi zyada urgent job run karni chahiye?" Sochlo ek metronome click karta hua; har click par manager priority board check karta hai.
Intuition Scheduling samajhne se pehle interrupts kyun chahiye
Interrupts ke bina, CPU kisi running job ko kabhi nahi rokata kuch check karne ke liye — wo job A ko end tak chalata rehta. Interrupts wo mechanism hai jo kisi baahri event (button, timer) ko CPU seize karne deta hai. Parent ka context switch ke liye "trigger" hamesha ek interrupt hota hai. Dekhein Interrupts and ISR latency .
Parent ke formulas inhe use karte hain; ye raha zero se.
Definition Frequency aur period
Frequency f = "ek second mein kuch kitni baar hota hai", hertz (Hz) mein measure hota hai. Period T = "ek event aur agli ke beech kitne seconds hain". Ye dono opposite hain:
f = T 1 T = f 1
Sochlo ek ticking clock: 1000 ticks per second (f = 1000 Hz ) matlab ticks ke beech gap hai T = 1/1000 = 0.001 s = ek millisecond.
Definition Time-unit symbols
ms = millisecond = 1 0 − 3 s (second ka hazarwaan hissa).
μ s = microsecond = 1 0 − 6 s (second ka laakwaan hissa). Symbol μ (Greek "mu") ka matlab hai "ek millionth of".
Intuition Topic µs aur ms mein kyun measure karta hai
Ek context switch kuch millionths of a second leta hai; ek deadline kuch thousandths ki ho sakti hai. "Switching ka cost" ko "time budget" se compare karne ke liye, humein ye tiny units chahiye. Ye directly parent ke overhead formula η = T cs f t i c k mein jaata hai — ek time (µs) ek rate (Hz) se multiply hota hai toh ek pure fraction milta hai, kyunki seconds cancel ho jaate hain per-second se.
η = T cs f t i c k mein units cancel hona
T cs = 2 μ s = 2 × 1 0 − 6 s , f t i c k = 1000 Hz = 1000 s 1 .
η = ( 2 × 1 0 − 6 s ) × ( 1000 s 1 ) = 2 × 1 0 − 3 = 0.2%
Upar ke seconds (s ) neeche ke per-second (1/ s ) ko cancel karte hain, ek plain number bacha rehta hai — CPU ka ek fraction. Isliye formula dimensionless hai .
Ek priority ek number hai jo batata hai ki task kitna urgent hai; zyada number = zyada urgent (FreeRTOS convention mein). Sochlo ek colour-coded board: red jobs queue mein aage jaati hain, grey jobs wait karti hain. Scheduler ka poora rule hai "hamesha sabse high-priority job run karo jo run ho sake ."
Intuition "Blocked" hero state kyun hai
Ek job jo Blocked ho ke politely wait karti hai wo CPU ko kisi aur ko de deti hai. Ek job jo busy-wait karti hai (while(!ready);) Running rehti hai aur worker ko hog karti hai. Ye ek distinction — Blocked vs Running — RTOS ki power ka source hai, aur parent ka Example 3 poori tarah isi pe turn karta hai. Clean block karne ke tools ke liye Semaphores and Queues dekhein.
Definition Task Control Block (TCB)
Ek TCB ek chhota record hai jo RTOS har task ke liye rakhta hai: uski priority, uski state, aur — importantly — uska saved stack pointer . Sochlo ek index card per worker, ek box mein filed; card pe likha hai "priority 3, Blocked, notepad-bookmark = address 0x2000A0". Jab RTOS koi task resume karta hai, wo us card ko padhta hai task ka saved pile of plates dhundhne ke liye. Detail mein Stack memory and TCB mein hai.
Intuition TCB mein sirf SP kyun poori state restore karne ke liye kaafi hai
Yaad karo (Section 2) ki task ke saare saved slips of paper uski stack par hain, aur SP us pile ka top mark karta hai. Toh ek saved number — SP — poori frozen state ka handle hai. Isliye parent ka switch procedure sirf SP ko TCB mein store karta hai.
CPU one worker one stream
Scheduler picks next task
Frequency and period f and T
Map ko top-down padhein: registers aur stack, TCB aur context switch banate hain; interrupts aur tick, scheduler ko drive karte hain; frequency, overhead maths ko feed karta hai — aur ye sab kyun ek RTOS exist karta hai pe land karta hai.
Recall Self-test: kya tum parent note kholne se pehle har ek ka jawab de sakte ho?
Ek CPU core ek waqt mein kitne instruction streams run karta hai? ::: Exactly ek.
Register kya hai, ek phrase mein? ::: CPU ke andar ek tiny fast storage slot jo abhi use ho rahi value hold karta hai.
PC (program counter) kya hold karta hai? ::: Current instruction ka address — "main kaun si line pe hoon".
SP (stack pointer) kya mark karta hai? ::: Task ki private stack ka top (uska pile of plates).
Stack items kaise add aur remove karta hai? ::: Top pe push, top se pop — last-in, first-out.
Interrupt kya hai? ::: Ek hardware signal jo CPU ko pause karke kuch abhi handle karne pe majboor karta hai.
Tick kya hai? ::: Ek regular timer interrupt — RTOS ki heartbeat jo scheduler ko jagati hai.
f = 1000 Hz ko period mein convert karo. ::: T = 1/ f = 0.001 s = 1 ms .
Ek second mein kitne microseconds hote hain? ::: Ek million (1 0 6 ).
Chaar task states ke naam batao. ::: Running, Ready, Blocked, Suspended.
"Blocked" system ki help kyun karta hai? ::: Ek Blocked task CPU release kar deta hai taki doosre tasks run ho sakein.
TCB mein kaun sa single value kisi task ki poori saved state ka handle hai? ::: Uska saved stack pointer (SP).
Ek super-loop mein, agar ek job 50 ms wait karti hai toh kya hota hai? ::: Us ke peeche ki har job us 50 ms ke liye stall ho jaati hai.