Foundations — Bare-metal vs RTOS — when to use each
5.5.15 · D1· Coding › Embedded Systems & Real-Time Software › Bare-metal vs RTOS — when to use each
Parent note Bare-metal vs RTOS padhne se pehle, tumhe usme use hone wala har word clearly dikhna chahiye. Yeh page har ek ko zero se build karta hai.
1. CPU — ek worker, ek kaam ek baar mein
Yeh poora topic is bottleneck ki wajah se hi exist karta hai. Agar har kaam ke liye ek alag CPU hota, toh scheduling ki koi problem hi nahi hoti. Lekin nahi hota — isliye tumhe interleave karna padta hai.

Figure dekho: horizontal axis time hai jo left se right ki taraf flow ho raha hai. CPU ek single lane hai. Teen kaam (blue, yellow, green) — teeno us lane ko chahte hain, lekin time ke kisi bhi ek vertical slice mein sirf ek coloured block hi us lane mein ho sakta hai. Yahi hai jo "ek CPU" humpe force karta hai.
Yeh picture pehle kyun chahiye? Kyunki baad mein aane wala har symbol — koi kaam kitna time leta hai, kitna wait karta hai — is time axis ke saath hi measure hota hai.
2. "Job" / "Task" — kaam ka ek unit
Picture: Figure 1 mein har coloured block ek running job hai. Uski width batati hai woh kitna time leta hai; uski left edge batati hai kab shuru hua.
Parent note mein example jobs jaise read_sensor(), update_display() listed hain. Har ek ek job hai. Yeh word isliye chahiye kyunki scheduling sirf aur sirf yahi decide karna hai ki kaunsi job ka block time axis par kahan jaayega.
3. — execution time (block kitna wide hai)
Picture: Figure 1 mein block ki width hai — literally. Mota block = bada . Parent ka update_display() ~30 ms ek bahut mota block hai; update_control() ~1 ms ek patla sliver hai.
Topic ko yeh kyun chahiye: super-loop ka killer formula sirf saari block widths ko add karna hai. Ek single width ka matlab jaane bina woh formula padh nahi sakte.
4. Subscript aur sum — "saare jobs mein add karo"
Picture: chaar blocks ko bina gap ke ek line mein rakh do — us train ki total length sum hai. Isliye har job ko har doosre job ka wait karna padta hai: apni agli baari paane ke liye, use poori train guzarne ka wait karna hoga.
5. — period (kaam kitni baar karna hai)

Picture (Figure 2): coloured arrows har period ka start mark karte hain — woh moments jab koi job "ready ho jaata hai" aur CPU time chahta hai. Chhoti period wale job ke arrows paas paas hote hain; lambi period wale mein door door. Do arrows ke beech ka gap hai.
Topic ko yeh kyun chahiye: bare-metal aur RTOS ka fark tabhi matter karta hai jab jobs ki periods bahut alag alag hon (ek fast ms job ek slow ms job ke peeche fansa hua). woh number hai jo "kitna alag" capture karta hai.
6. Deadline aur latency — woh wait jo hurt karta hai
Picture: Figure 2 mein socho blue arrow (job ready ho gayi) lekin CPU kisi yellow block mein busy hai. Arrow se blue block ke start tak wala red bracket latency hai. Chauda bracket = khatre ki ghanti.
Topic ko yeh kyun chahiye: poori bare-metal-vs-RTOS argument yahi hai — "kaun sa approach mere urgent jobs ke liye red bracket chhota rakhta hai?" Super-loop ki worst-case latency hai; RTOS ki high-priority jobs ke liye bahut chhoti hai — yahi punch line hai.
7. Priority aur pre-emption — urgent jobs ko line cut karne dena

Picture (Figure 3): top row = super-loop — green urgent job ka arrow aaya jab fat yellow block chal raha tha, aur green ko yellow ke poora khatam hone ka wait karna pada (lamba red wait). Bottom row = pre-emptive RTOS — same green arrow aata hai, yellow instantly do pieces mein split ho jaata hai aur green turant run karta hai (chota red wait). Split yellow block pre-emption ko visible karta hai.
Topic ko yeh kyun chahiye: yeh akela picture hi woh reason hai kyun RTOSes exist karte hain. Isse related theory ki kaunse jobs ko kaunsi priority milti hai woh Rate-Monotonic Scheduling mein hai, aur woh subtle bug jahaan low task high wale ko block kar deta hai woh Priority Inversion and Mutexes mein hai.
8. , ceilings, aur response-time recurrence
Yeh kyun chahiye: yeh ka RTOS counterpart hai. Yeh mathematically dikhata hai ki slow low-priority jobs ( mein nahi hain) urgent task ke response time mein kuch bhi add nahi karte — RTOS ka poora selling point yahi hai.
9. — utilisation, "CPU kitna bhara hua hai?"

Picture (Figure 4): ek single bar = CPU ka 100%. Har job ka ek slice fill karta hai. Parent ke example bar ka fill karta hai — baaki idle head-room hai. par dashed line Liu & Layland safety limit hai: iske neeche raho aur har deadline guaranteed hai.
Prerequisite map
Equipment checklist
Parent note ke liye tum ready ho jab in sab ka jawab zor se de sako:
Ek CPU bahut saare jobs par kya force karta hai?
kya hai aur time diagram mein woh kya hota hai?
kya hai aur diagram mein use kya mark karta hai?
aur mein kya fark hai?
seedhe shabdon mein padho.
Latency kya hai?
Pre-emption kya hai?
Ceiling kya karta hai aur yahan kyun?
ka matlab kya hai?
kya measure karta hai?
Connections
- Interrupts and ISRs — pre-emption ke peeche hardware ka "line cut karna" mechanism
- Context Switching — woh machinery jo task ko pause aur resume karti hai
- Rate-Monotonic Scheduling — periods se priorities kaise assign ki jaati hain
- Priority Inversion and Mutexes — jab priority ordering galat ho jaaye
- Worst-Case Execution Time (WCET) — numbers kahan se aate hain
- Parent topic