Outils d'analyse statique du code binaire

Calcul du pire temps d'exécution (WCET)

Détection des erreurs d'exécution et de concurrence

Qu'est-ce que le "délai d'exécution dans le pire des cas" ?

Les applications critiques exigent que le code source soit précis, cohérent et déterministe.

Par exemple, dans les applications aérospatiales, la norme DO-178C (ED-12C) exige cet objectif pour les niveaux de criticité DAL C et supérieurs.

 

Entre autres activités, la détermination et l'analyse du temps d'exécution le plus défavorable (WCET) de toutes les tâches existantes sont nécessaires pour garantir que les temps d'exécution requis sont respectés avec une certaine marge.

Comment est-elle calculée ?

Il est calculé en obtenant le pire temps d'exécution de la tâche ou du programme pour toutes les conditions d'exécution possibles. Il est nécessaire de prendre en compte les différentes branches du code ainsi que les éventuelles exécutions asynchrones dues à des interruptions ou à des changements de contexte d'exécution des différentes tâches.
 
Il existe d'autres effets de niveau inférieur, tels que les mécanismes du processeur destinés à accélérer l'exécution du programme, comme lepipelineet lamémoire cache, qui font que le temps d'exécution d'une instruction varie en fonction de ce qui a été exécuté précédemment. Enfin, avec les processeurs multicœurs , le calcul du WCET devient plus compliqué car il faut ajouter l'effet de la diaphonie entre lescœurs.
 
Par conséquent, l'obtention de la condition d'exécution du programme ou de la tâche qui provoque le pire temps d'exécution est impossible dans les applications d'aujourd'hui. Ce que l'on peut obtenir, c'est une limite supérieure du WCET qui sera plus élevée que la valeur réelle, mais avec une petite marge.

Analyse du WCET avec les outils AbsInt

Il existe trois outils AbsInt qui calculent la limite supérieure du WCET. Ces outils sont basés sur l'analyse statique du code binaire final : Timing Profiler, aiT et TimeWeaver.

S'abonner à notre lettre d'information