Bare-metal vs RTOS — when to use each
5.5.15· Coding › Embedded Systems & Real-Time Software
HUM COMPARE KYA KAR RAHE HAIN?
CHOICE KYU MAAYANE RAKHTI HAI? (first principles)
Tumhare paas ek CPU hai aur N jobs hain, har ek ka apna period aur deadline hai. CPU ek waqt mein sirf ek kaam kar sakta hai, isliye jobs ko interleave karna padta hai. Do philosophies hain:
1. The super-loop (bare-metal)
while (1) {
read_sensor(); // ~2 ms
update_control(); // ~1 ms
update_display(); // ~30 ms <-- the troublemaker
handle_uart(); // ~5 ms
}Kyun kaam karta hai: simple hai, koi kernel nahi, tiny RAM/flash.
Kyun scale par toot ta hai: worst-case loop time har job ka sum hota hai. Agar update_display() 30 ms leta hai, toh tumhara sensor 38 ms tak starve ho sakta hai bhale hi use har 5 ms par servicing chahiye thi. Sabse slow job sabko poison karta hai.
2. Pre-emptive scheduling (RTOS)
RTOS ek high-priority task ko ek low-priority wale ko beech mein rok kar interrupt (pre-empt) karne deta hai. Ab ek job ki latency sirf higher-priority kaam par depend karti hai, slow low-priority kaam par nahi.

DECIDE KAISE KAREIN — 80/20 rule of thumb
| Bare-metal use karo jab… | RTOS use karo jab… |
|---|---|
| Tiny MCU, few KB RAM | Zyada RAM ho (RTOS kernel + per-task stacks RAM khaate hain) |
| 1–4 simple, similar-rate jobs | Kai tasks alag periods/priorities ke saath |
| ISRs ke zariye hard determinism kaafi hai | Clean concurrency + blocking calls chahiye |
| Lowest power / cost / certification simplicity | Networking (TCP/IP), filesystems, USB stacks |
| Tum har cycle samajhna chahte ho | Tum scheduling rewrite kiye bina features scale karna chahte ho |
Recall Feynman: ek 12-saal ke bacche ko explain karo (click to reveal)
Socho ek cook (CPU) hai aur kai dishes (jobs) hain. Bare-metal wo cook hai jo har dish poori finish karta hai, fixed order mein, baar baar. Follow karna aasaan hai — lekin agar ek dish bahut time le, toh jo soup lagaataar hilana tha woh jal jaata hai. RTOS ek smart timer wala cook hai: "Sab kuch chhodo aur abhi soup hilao — urgent hai!" Woh slow dish pause kar sakta hai, urgent waali handle karta hai, phir wapas aata hai. Overall thoda slow hai (tasks switch karne mein kuch seconds waste hote hain), lekin koi important cheez kabhi nahi jaati. Tum smart cook tab hire karte ho jab urgent + slow dishes attention ke liye ladte hon.
Flashcards
"Real-time" ka matlab asliyat mein kya hai?
Super-loop mein ek job ki worst-case latency kya hoti hai?
RTOS ek critical task ki latency kyun reduce karta hai?
Fixed-priority pre-emption ke liye response-time recurrence likho.
Rate-Monotonic ke liye Liu & Layland utilisation bound batao.
Teen costs batao jo RTOS bare-metal se zyada add karta hai.
RTOS choose karne ka 80/20 sawaal?
RTOS kab use karein ka mnemonic?
Super-loop mein slow display job sensor ko kyun hurt karta hai?
Concurrency ke liye RTOS kaun se primitives deta hai?
Connections
- Interrupts and ISRs — bare-metal ka scheduler ke bina "real-time" paane ka tarika
- Rate-Monotonic Scheduling — RTOS column ke peeche ki priority-assignment theory
- Priority Inversion and Mutexes — ek classic RTOS pitfall (Mars Pathfinder)
- Context Switching — wo overhead jo RTOS CPU share karne ke liye pay karta hai
- Watchdog Timers — dono paradigms mein safety net
- Worst-Case Execution Time (WCET) — upar ki har formula mein jaane wala