Task overrun in application process…

Chybová hláška ControlDesku, že se aplikace běžící na platformě nestihla spočítat ve stanoveném čase. Pro někoho novinka, pro jiné běžná součást ladění aplikace.

Jak aplikaci analyzovat a najít kritická místa, se dozvíte v následujícím tex­tu:

Nejdříve ale trochu teorie, aneb za vším hledej plánovač úloh (Kernel Scheduler). Úlohy se plánují dle priorit a mezi nimi je možné přeskakovat. Úlohy s vyšší prioritou se vykonají dříve než ty s nižší. Jednoduchý příklad: Děti dostanou v pondělí domácí úkol z matematiky a dějepisu. Matematika je každý den, dějepis až ve čtvrtek. Úkol z matematiky proto musí nebohé dítko udělat hned v pondělí, ale na dějepis má tři dny čas. Jestli dějepis udělá hned v pondělí, v úterý, nebo až ve středu, případně každý den kousek, je na jeho rozhodnutí. Plánovač funguje na obdobném principu – až na to, že neodmlouvá a úkoly nikdy neodkládá. Naopak, snaží se je řešit v co nejkratším čase. Přetečení je v tomto příkladu nedodání úkolu včas.

Když k přetečení dojde, je Profiler ideální pomocník pro časovou analýzu aplikace běžící na real-time platformě. dSPACE Profiler je volně ke stažení ze stránek dSPACE. Po instalaci je snadné se proklikat do pracovního okna a začít měřit data.

Na obrázku jsou zachyceny dvě úlohy: Periodic Task 1 a Bus Configuration. V grafu zleva vidíme první zelenou úsečku – plánované hardwarové přerušení (Sample time, typicky 1 ms, dle nastavení aplikace). Následuje zásah plánovače, který naplánuje dvě úlohy. Nejprve se vykoná úloha s vyšší prioritou (Bus Configuration) a teprve poté ta s nižší (Periodic Task 1).

<profiler>

Profiler tak umožňuje v jednoduché grafické formě porozumět procesům běžícím na výpočetním jádru.

Závěr? Pomocí Profileru rychle zjistíte, která část aplikace způsobuje zpoždění, a můžete cíleně optimalizovat. Při ladění real-time systému tak ušetříte čas, nervy i zbytečné pokusy metodou pokus–omyl.

dSPACE Profiler ke stažení

Tomáš Fridrich, 23.6.2025

close