5.5.15 · HinglishEmbedded Systems & Real-Time Software

Bare-metal vs RTOS — when to use each

1,721 words8 min readRead in English

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.

Figure — Bare-metal vs RTOS — when to use each

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?
Deterministic / bounded, predictable timing jo deadlines meet kare — raw speed NAHI.
Super-loop mein ek job ki worst-case latency kya hoti hai?
SAARI jobs ke worst-case execution times ka sum, — har job har doosri job ka wait karti hai.
RTOS ek critical task ki latency kyun reduce karta hai?
Pre-emption: sirf higher-priority tasks usse delay karte hain; slow low-priority jobs kuch contribute nahi karte.
Fixed-priority pre-emption ke liye response-time recurrence likho.
, iteratively solve hota hai.
Rate-Monotonic ke liye Liu & Layland utilisation bound batao.
; limit .
Teen costs batao jo RTOS bare-metal se zyada add karta hai.
RAM (kernel + per-task stacks), context-switch overhead, aur worst case mein added complexity/non-determinism.
RTOS choose karne ka 80/20 sawaal?
"Kya meri jobs ki conflicting timing requirements hain?" Agar haan → RTOS; agar nahi → bare-metal.
RTOS kab use karein ka mnemonic?
SLAP — Several tasks, Latency-critical, Async/blocking I/O, Priorities differ.
Super-loop mein slow display job sensor ko kyun hurt karta hai?
Sensor sirf ek baar per loop service hota hai, isliye use poore loop time tak wait karna padta hai jisme slow display bhi included hai.
Concurrency ke liye RTOS kaun se primitives deta hai?
Tasks/threads, scheduler, semaphores, mutexes, message queues, timers.

Connections

Concept Map

option A

option B

uses

worst case

slow job starves all

wins on

provides

latency via

only higher-priority delays

guarantees

wins on

means predictable not fast

One CPU many jobs

Bare-metal super-loop

RTOS with scheduler

Interrupts / ISRs

Real-time = deterministic

Pre-emptive scheduling

Lworst = sum of all Ci

Ri depends on hp tasks only

Simplicity + tiny RAM

Scalability + timing guarantees