Priority: kdo čeká na koho
Když v čipu běží víc periodických úloh, otázka „stihne se to?“ má přesnou odpověď. Není to odhad ani zkušenost — je to rovnice, která má jediné řešení.
Doba odezvy je pevný bod
Úloha čeká na všechny, kdo jsou nad ní — a ti se během jejího čekání můžou spustit znovu. Odtud rovnice, ve které je R na obou stranách:
Ta horní celá část je celý vtip: úloha s periodou 50 µs se během 300 µs čekání spustí šestkrát, ne 5,7krát. Proto odezva neroste plynule, ale skokem, kdykoli se do ní vejde jedno další spuštění něčeho rychlého.
Jak se to v téhle labce ověřuje: ta rovnice se dá napsat věrohodně a špatně, takže testy nestaví na ní — simulují skutečný rozvrh, takt po taktu, s preempcí a bez jediného vzorce, přes celou hyperperiodu. Analýza musí vyjít stejně, a nikdy optimističtěji. To je nejsilnější orákulum v celém McuLabu.
Nejvyšší priorita nikdy nečeká
Je to vidět v obrázku: první řádek nemá zlatou část. Odtud pravidlo rate monotonic — nejkratší perioda dostane nejvyšší prioritu — a je dokázané, že když to nejde takhle, nejde to žádným pevným přiřazením priorit.
Co se z toho dá číst
| co je vidět | co to znamená |
|---|---|
| zlatá část je velká | úloha víc čeká, než pracuje — jitter bude velký |
| přeteče nejnižší | obvyklé a nejméně bolestivé; log se prostě někdy nestihne |
| přeteče prostřední | špatně: nejde to spravit snížením priority |
| přeteče nejvyšší | úloha sama se nevejde do své periody |