Qu-est-ce que la fiabilité d'un système embarqué ? Comment l'améliorer ?

Introduction

Définition de la fiabilité d’un système : La fiabilité est la capacité d’un système à fournir un service dont on peut faire confiance. La fiabilité c’est aussi la capacité d’un système à éviter les pannes les plus fréquentes ou qui ne sont pas acceptable.

Explication Fiabilité

Probabilité sur la fiabilité

Taux de défaillance

Le taux de défaillance λ est le nombre attendu de défaillances par rapport au temps. Comme on peut voir sur la formule à droite on fait la somme de toute les défaillances détectées pour avoir le taux de défaillance global.

Temps moyen jusqu'à la défaillance

Le temps moyen avant défaillance d’un système est le temps avant l’apparition de la première défaillance du système. N corresponds au nombre de composant, et t c’est le temps.

Temps moyen de réparation

Le temps moyen de réparation d’un système est la moyenne temps nécessaire pour réparer le système. Le taux de réparation µ est le nombre prévu de réparations par rapport au temps.

Disponibilité du système embarqué

La disponibilité A(t) est la probabilité que le système fonctionne à l’instant t. Cela corresponds à la moyenne de A(t) pour chaque mission du système embarqué.

Temps moyen entre les défaillances

Le temps moyen entre les défaillances du système, c’est l’addition du temps moyen jusqu’à la défaillance plus le temps moyen de réparation.

Probabilité sur la fiabilité

Voici un graphique montrant quand se trouve la majorité des bugs durant la vie d’un logiciel.

Comme on peut voir  les premiers bugs sont lors de la création du logiciel à cause de bug de conception.

Les bugs durant la vie du logicile arrivent  à chaque mise à jour du logiciel qui apporte sont lots de bugs.

Une fois les mises à jours finit le nombre de bugs stagnent.

Taux de défaillances observé

Le taux de défaillance peut être décrit par le graphique juste à droite. La courbe la plus importante (et la plus connue) est celle qui est en bleu (Observed Failure Rate).

La courbe bleu (courbe appelé baignoire) peut décrire la variance du taux d’échec indiqué.

La première partie montre un taux de défaillance décroissant, appelé défaillance précoce ; la seconde partie est un taux de défaillance constant, dit de défaillance aléatoire ; et la troisième partie est un taux de défaillance croissant, qui est la défaillance par usure.

 En général, le taux de défaillance d’un produit est élevé au début de l’exploitation en raison de la défaillance précoce des composants. Son taux de défaillance diminuera très rapidement lorsqu’un composant défectueux du produit est identifié et mis au rebut.

Une fois les défaillances précoces éliminées, le produit entre dans un état de fonctionnement stable avec un taux de défaillance faible et constant. Pendant cette période, les pannes sont causées par des facteurs aléatoires.

Dans la dernière période de vie du produit, le taux de défaillance augmente avec l’âge de maturation du produit causé par l’usure progressive. La majeure partie du cycle de vie du produit se comporte selon la courbe de la baignoire.

Les différents types de système

Système en série

Si un système est en série, si un des composants donnent le mauvais résultat alors il y aura une erreur.

Avantage : Temps le plus rapide

Inconvénient : Une erreur ne peut être corrigé

Système en Parallèle

Un système en parallèle permet d’avoir plusieurs calculateurs qui font le même calcul en même temps  et donc d’avoir un des calculateurs qui donnent le bon résultat. Ceci permet d’avoir une garantit que si l’un des composants en parallèle ne fonctionne pas le système foncitnne quand même.

Par exemple si C1 et C2 sont les mêmes composants et que C3 et C4 sont aussi les mêmes composants :

  • Si C1 est en défaut alors C2 peut prendre le relais et inversement
  • Si C3 est en défaut alors C4 peut prendre le relais et inversement

Avantage : Plusieurs erreurs peut-être corrigé

Inconvénient : Temps moins rapide  que série mais d’augmentation de coût (car pas plus de composant).

Conclusion : Système en parallèle peut être un bon compromis car on n’augmente pas le coût tout en ayant une correction des erreurs.

Système en combiné série-Parallèle

Le système combiné série-parallèle permet d’avoir plus de garantie d’avoir un résultat correcte: 

  • C2 tombe en panne : Le résutat sera correcte grâce à C1 et C3.
  • C1 tombe en panne : Le résultat sera correcte grâce à C2 et C3.
  • C3 tombe en panne : Le résultat sera correcte grâce à C1 et C2.

Avantage : Plusieurs erreurs peuvent être corrigés.

Inconvénient : Temps peu rapide du au différent chemins et augmentation des coûts du à la redondance (car un peu de redondance).

Conclusion : Système en série-parallèle permet de corrigé des erreurs venant de plusieurs composants en ayant le même résultat. Néanmoins le système coute plus cher à cause de la redondance des composants.

Système non série-Parallèle

Le système non série-parallèle permet de corriger le maximum d’erreur venant d’un ou plusieurs composants. Ceci permet de ne pas augmenter le coût car il n’y a pas  de redondance de composant tout en corrigeant les erreurs.

Néanmoins le temps passé dans le système est beaucoup augmenté et c’est la solution la moins rapide.

Avantage : Plusieurs erreurs peuvent être corrigés.

Inconvénient : Temps peu rapide du au différent chemins et augmentation des coûts du à la redondance (car un peu de redondance).

Conclusion : Système en non série-parallèle permet de corrigé des erreurs venant de plusieurs composants en ayant le même résultat. Néanmoins c’est le système le moins rapide.

En conclusion, il y a pas de solution parfaite : améliorer la fiabilité signifie souvent augmenter le nombre de composant ou le temps passée dans le système, il y a donc un compromis à avoir entre le coût du système, le temps passé dedans et sa fiabilité afin d’avoir un système qui réponds à votre cahier des charges.

Les systèmes cohérents

Un système cohérent est un système qui n’a pas de composant qui “court-circuit” le système, c’est à dire un chemin qui serait plus facile par lesquel passer

Voici un exemple de système non cohérent : 

 

Le système à droite n’est pas cohérent car le système peut passer par C1 sans passer par C2 ce qui met C2 en défaut.

On va maintenant voir quelques fonctions qui permettent de définir un système cohérent.

La formule d'un système cohérent

Vecteur de trajectoire

Un vecteur chemin pour un système cohérent est un vecteur x tel que ξ(x) = 1.

Vecteur de coupe

Un vecteur de coupe pour un système cohérent est un vecteur x tel que ξ(x) = 0.

Chaîne de Markov

Un processus de Markov est un processus stochastique possédant la propriété de Markov : l’information utile pour la prédiction du futur est entièrement contenue dans l’état présent du processus et n’est pas dépendante des états antérieurs (le système n’a pas de « mémoire »).

On va appliquer les chaînes de Markov pour les systèmes embarqués avec l’exercice ci-dessous :

Exercice

L’exercice se porte sur la vie du chien Bob :

Quand Bob dort, il y a 9 chances sur 10 qu’il est allongé dans son lit la minute suivante. Quand il se réveille, il y a 1 chance sur 2 qu’il joue et 1 chance sur 2 qu’il mange.
Ses repas durent une minute puis il commence à jouer (3 chances sur 10) ou il s’endort (7 chances sur 10).

Bob se fatigue vite. Souvent, il se rendort (8 chances sur 10) mais, comme il aime son nouveau jouet, parfois
il continue à jouer.

Sachant que Bob est entrain de dormir, que fera-t’il dans 3 minutes ?

Corrigé

Pour la correction de cet exercice, nous utiliserons les chaînes de Markov.

  • Etape 1 : Le schéma de Markov :

Pour expliquer ce schéma, on va reprendre l’énoncé petit à petit afin d’expliquer ce schéma :

  1. Les trois actions que peut faire Bob sont : Dormir, manger et Jouer. Ce sont donc les trois cercles .
  2. Quand Bob dort, il y a 9 chances sur 10 qu’il est allongé dans son lit la minute suivante : on a donc une flèche qui boucle sur D avec une probabilité de 9/10 donc 0.9.
  3. Quand il se réveille, il y a 1 chance sur 2 qu’il joue et 1 chance sur 2 qu’il mange : On ajoute donc deux flèches partant de dormir vers Manger et vers jouer qui valent 0.05 car comme il y a 9/10 chance qu’il dorme, il reste donc 1/10 pour qu’il fasse autre chose. Il y a 50% de chance qu’il mange ou joue donc ca fait (1/10) /2 donc 0.05 qu’il joue ou mange.
  4. Ses repas durent une minute puis il commence à jouer (3 chances sur 10) ou il s’endort (7 chances sur 10) : On fait donc une flèche de manger vers jouer qui vaut (3/10 =0.3). On fait aussi une flèche de manger vers dormir avec comme valeur (7/10 = 0.7)
  5. Bob se fatigue vite. Souvent, il se rendort (8 chances sur 10) mais, comme il aime son nouveau jouet, parfois il continue à jouer : On fait donc une flèche partant de jouer jusqu’à dormir valant (8/10 =0.8). Comme Bob restent jouer s’il ne se rendort pas et bien on ajoute une boucle sur Jouer valant 0.2.
  • Etape 2 : La matrice de simulation

La matrice de simulation de Markov permet de faire de calcul de probabilité et qui va nous servir à déduire qu’elle est la probabilité que si Bob est entrain de dormir, qu’est-ce qu’il fera dans 3 minute ?

Pour remplir notre matrice, on va utiliser les probabilités de dormir, manger et jouer de Bob se situant sur le shéma de Markov. On va voir comment remplir la matrice à droite. (D = dormir, M= manger, J =jouer).

Pour remplir cette matrice, on va utiliser le schéma de Markov :

1ère ligne :

D/D : corresponds à la boucle  sur D donc la valeur 0.9

D/M : la flèche allant de D vers M donc 0.05

D/J : la flèche allant de D vers J donc 0.05

2ème lignes :

M/D : la flèche allant de M vers D donc 0.7

M/M : la boucle allant de M vers M. Comme il y a pas de boucle on met la valeur 0.

M/J : La flèche allant de M vers J donc 0.3.

3ème lignes :

J/D : La flèche allant de J vers D donc 0.8

J/M : La flèche allant de J vers M donc comme il n’y a pas de flèche donc 0.

J/J : La boucle allant de J vers J. On a donc la valeur 0.2.

 

Voici la matrice de simulation :

  • Etape 3 : Analyse de la matrice

On va maintenant utiliser la matrice pour obtenir la probabilité : Sachant que Bob est entrain de dormir, que fera-t’il dans 3 minutes ?

 

La probabilité adapté à la matrice est :

  • Pd : Corresponds à la probabilité de dormir
  • Pm : Corresponds à la probabilité de manger
  • Pj : Corresponds à la probabilité de jouer.

A l’état initial, Bob est entrain de dormir on a donc :

A chaque minute, Bob change d’état, on va donc calculer les trois états suivant après l’état initial :

A l’état initial, Bob est entrain de dormir on a donc :

 

Pour avoir l’état suivant il suffit de multiplier l’état P(0) par la matrice de simulation :

 

Pour avoir l’état suivant il suffit de multiplier l’état P(0) par la matrice de simulation :