Sommaire

L’analyse des variables partagées Analyse:des variables partagées

Les variables partagées sont des variables qui peuvent être écrites de manière concurrentielle par divers écrivains logiciels simultanément. Les écrivains simultanés peuvent être les tâches (OS préemptif), les interruptions, les périphériques et leurs registres matériels ou des « cores » distincts dans les microcontrôleurs « multicores ».

Le risque est d’avoir des conflits d’accès sur ces variables qui peuvent se manifester par des variables écrasées ou corrompues dans le cas d’écritures non atomiques. Par exemple, une tâche écrit une variable de 4 octets, en assembleur ; les deux premiers octets viennent d’être écrits lorsqu’une interruption arrive dont le corps écrit également cette variable partagée. Le résultat de cette situation est que les deux premiers octets écrits par la tâche sont perdus ; la variable est donc un mélange des deux premiers octets écrits par l’interruption et des deux derniers octets écrits par la tâche. Ceci conduit la variable à avoir une valeur incohérente.

Pour éviter cette situation, il faut vérifier que les accès concurrentiels sont protégés ou atomiques (écrits en une seule fois par une instruction ...