Visual walkthrough — Real-time constraints — hard and soft deadlines
5.5.12 · D2· Coding › Embedded Systems & Real-Time Software › Real-time constraints — hard and soft deadlines
Yeh parent topic ka picture-first companion hai. Har symbol pehle draw kiya jaata hai, use karne se pehle. Agar aapne kabhi letters wala fraction nahi dekha, tab bhi aap sahi jagah par hain.
Step 1 — Timeline par ek single job kaisa dikhta hai
KYA. Ek horizontal line draw karo: yeh time hai, jo left se right flow karta hai. Ek job kaam ka ek tukda hai jo computer ko karna hai. Yeh kisi moment par appear hota hai, kuch der chalta hai, aur khatam hota hai.
KYU. "Deadlines meet karna" ki baat karne se pehle hamein un teen moments ko dekhna hoga jo matter karte hain. Baad ki saari cheez sirf is ek line par distances count karna hai.
PICTURE. Neeche ke figure mein, time line par teen marks hain:
- ==Release time == (deep teal tick): woh instant jab job ready ho jaati hai — jaise homework aapko diya jaane ka moment.
- ==Deadline == (plum tick): latest allowed finish time — bus yahan se jaati hai.
- Finish time (burnt-orange dot): jab job actually khatam hui.

Step 2 — Response time, aur woh ek rule jo "on time" define karta hai
KYA. Release se actual finish tak ka distance measure karo. Isse ==response time == kaho. Release se deadline tak ka distance measure karo. Isse ==relative deadline == kaho, toh .
KYU. "On time" koi feeling nahi hai — yeh do lengths ka comparison hai. Hume ek single, checkable rule chahiye. Yeh raha:
Agar orange finish plum deadline par ya pehle aata hai, toh aur hum kehte hain job ne deadline meet ki. Agar baad mein aata hai, toh — ek miss.
PICTURE. Green arrow (neeche) ko span karta hai; plum arrow ko span karta hai. On time bas yahi hai: green arrow plum arrow se lamba na ho.

Step 3 — "Worst case" kyun, na ki "usual case" (WCET)
KYA. Ek job hamesha same time nahi leti — cache miss, branch, slow sensor read sab isko stretch karte hain. Hum sabse zyada woh time lete hain jo yeh kabhi bhi run kar sakti hai aur ise ==WCET == (Worst-Case Execution Time) kehte hain. Worst-Case Execution Time analysis dekho.
KYU. Deadline bure din miss hoti hai, average din kabhi nahi. Agar hum average length se plan karein, toh hum ek aise din ke liye plan kar rahe hain jo shayad humein kabhi bachaye nahi. Picture danger ko obvious bana deti hai.
PICTURE. Ek hi job ke kai possible run-lengths faint bars ke roop mein stack ki gayi hain; average comfortably deadline ke andar hai, lekin sabse lamba bar (burnt orange, WCET) plum deadline ke baahr jhankta hai. Uss bar ke liye plan karo, average ke liye nahi.

Step 4 — Ek repeating task: "utilisation" kya measure karta hai
KYA. Ek periodic task sirf ek baar nahi chalti — yeh har ==period == seconds mein re-release hoti hai (dekho Periodic vs Aperiodic Tasks). length ki har window mein ise seconds CPU chahiye. CPU ka fraction jo yeh consume karta hai:
KYU. Hum ek ratio introduce kar rahe hain kyunki hum ek single number chahte hain — ek share — jise hum tasks ke across add kar sakein. Akele seconds fairly add nahi hote (har 2 s mein ek 1-second job aur har 100 s mein ek 1-second job wildly different loads hain). Period se divide karne par raw seconds machine ka comparable percentage ban jaate hain.
PICTURE. Width ka ek box ki tarah draw kiya ek period; width ka orange work-bar uske andar baitha hai. literally "box ka kitna fraction orange hai" hai.

Step 5 — Kai tasks ek CPU share karte hain: slices add karo
KYA. Ek CPU par tasks ke saath, unki demands same resource ke shares hain, toh yeh add hoti hain:
Bada ("sigma") ka matlab sirf "in sabko se tak add karo" hai.
KYU. Ek pie, kaafi saare khaane waale. Agar maange gaye slices puri pie se zyada sum karein, koi bhookha rahega — ek deadline zaroor miss hogi. Yeh pehla, unbreakable gate hai.
PICTURE. Teen orange slices ek single CPU bar mein stack ki gayi hain. Agar yeh 100% line se overflow ho jaayein, toh CPU over-subscribed hai — physically impossible satisfy karna.

Step 6 — Catch: fixed priority ke liye kaafi nahi
KYA. Rate-Monotonic scheduling (Rate-Monotonic Scheduling) ke under — shorter period ko higher, fixed priority milti hai — yahan tak ki 100% se neeche hone par bhi miss ho sakta hai. Worst phasing par (jab ek bada low-priority job kai high-priority arrivals ke beech mein caught hota hai) CPU bilkul galat moment par idle baithne par majboor hota hai.
KYU. Fixed priorities rigid hote hain: ek high-priority task hamesha queue jump karta hai, chahe ek low-priority task apni deadline blow karne wala ho. Yeh rigidity usable time waste karti hai, isliye ek safe fixed-priority system mein headroom chhodni chahiye.
PICTURE. Worst-case line-up: ek low-priority job (plum) baar baar high-priority arrivals (orange) se preempted hoti rehti hai (related hazard ke liye dekho Priority Inversion and Priority Inheritance), apna finish deadline ke baad push karte hue — even though total load 100% se neeche hai.

Step 7 — Liu–Layland ceiling, aur 0.693 kahan se aata hai
KYA. Liu & Layland ne RM ke liye ek sufficient bound prove kiya:
Har symbol: = tasks ki sankhya; = 2 ka -th root; puri right side badhne par shrink hoti hai.
KYU. Yeh exactly utni headroom hai jitni Step 6 ne demand ki thi, worst phasing ke liye compute ki gayi. Jaise aap zyada tasks pile karte hain () ceiling tak sink hoti hai — aap safely sirf CPU ka lagbhag 69% use kar sakte hain fixed priorities ke saath.
PICTURE. ke versus ceiling ka ek curve: par se shuru hota hai, par tak girta hai, par , aur dotted plum line par par flatten ho jaata hai. Full-CPU line par (Earliest Deadline First (EDF) ceiling) contrast ke liye upar baithti hai.

Step 8 — Real numbers par test run karna
KYA. Tasks: ; ; .
ke liye RM ceiling: .
KYU. Step 5 physical gate check karta hai ( ✓). Step 7 RM ceiling check karta hai: ✓. Ek sufficient test pass karna ek proof hai ki saari hard deadlines meet ho rahi hain.
PICTURE. Ek thermometer: measured load (orange fill) RM red line se neeche baitha hai, jo EDF line se neeche baitha hai. Green zone = provably safe.

Step 9 — Degenerate case: jab ceiling "don't know" kehti hai
KYA. Ab imagine karo with . Yeh RM ceiling fail karta hai (). Kya iska matlab unschedulable hai?
KYU. Nahi — kyunki ceiling sufficient hai, necessary nahi. Ek sufficient test fail karna kuch bhi prove nahi karta. Pakka decide karne ke liye hum exact Response-Time Analysis (RTOS scheduler design) run karte hain:
= se higher priority wale tasks ka set. Ceiling brackets upar round karte hain: ek task jo window ke andar ek bhi baar arrive kare woh poora churata hai. Hum iterate karke solve karte hain jab tak yeh change karna band na ho; schedulable iff .
PICTURE. Load axis ka teen-zone map: green (RM ceiling se neeche → proven safe), amber (ceiling se upar lekin → unknown, exact analysis run karo, aur jitter/latency matter karta hai — dekho Jitter and Latency), red (1 se upar → proven impossible).

Ek-picture summary
Sab kuch ek single decision funnel mein compress hota hai: worst-case load measure karo, ceilings se compare karo, colour padho.

Recall Feynman: poora walkthrough simple words mein
Ek bus imagine karo jo aapko pakadni hai. Ek job hai aapka ghar se nikalna; deadline hai jab bus jaati hai. Pehle humne ek trip ko line par draw kiya aur kaha "on time" ka matlab sirf yahi hai ki aapka finish arrow aapke allowed arrow se lamba na ho. Phir humne maana ki kuch sawere slow hote hain — isliye hum aapki sabse buri sawer ke liye plan karte hain (WCET), average ke liye kabhi nahi. Aage humne notice kiya ki aap yeh bus har roz pakdte hain (ek period), aur aapke din ka fraction jo yeh khaata hai woh hai. Kai rozaana kaam stack karo aur unke fractions add hote hain — poore din se zyada maango aur kuch zaroor drop hoga. Lekin ek twist hai: ek rigid "hamesha urgent wala pehle karo" rule (Rate-Monotonic) ke saath, aap worst moments par thoda time waste karte hain, isliye aap safely apna sirf lagbhag 69% din fill kar sakte hain, 100% nahi. Woh safe ceiling hai . Humne real kaam test kiye: load , ceiling → provably fine. Finally, honest caveat: agar aapka load ceiling se upar jata hai lekin poore din se neeche rehta hai, toh simple test bas shrug karta hai — exact preemptions simulate karne padenge (Response-Time Analysis) pakka jaanne ke liye. Green = safe, amber = dhyan se check karo, red = chhod do. Yahi hai hard real-time: fast nahi, balki provable.
Recall Quick self-check
"On time" ke liye compare ki jaane wali do lengths? ::: Response time vs relative deadline ; met iff . ko se kyun divide karte hain? ::: Raw seconds ko ek comparable CPU fraction mein convert karne ke liye jo tasks ke across sum ki ja sake. ke liye RM ceiling? ::: . , RM fail karta hai — unschedulable? ::: Nahi — bound sirf sufficient hai; Response-Time Analysis run karo. kyun? ::: Count karta hai kitni baar higher-priority task , task ko ke andar preempt karta hai.